@@ -38,17 +38,23 @@ public MgfSpectrumWriter(ParseInput parseInput) : base(parseInput)
3838 /// <inheritdoc />
3939 public override void Write ( IRawDataPlus rawFile , int firstScanNumber , int lastScanNumber )
4040 {
41+ if ( ! rawFile . HasMsData )
42+ {
43+ throw new RawFileParserException ( "No MS data in RAW file, no output will be produced" ) ;
44+ }
45+
4146 ConfigureWriter ( ".mgf" ) ;
4247 using ( Writer )
4348 {
49+
4450 Log . Info ( "Processing " + ( lastScanNumber - firstScanNumber + 1 ) + " scans" ) ;
4551
4652 var lastScanProgress = 0 ;
4753 for ( var scanNumber = firstScanNumber ; scanNumber <= lastScanNumber ; scanNumber ++ )
4854 {
4955 if ( ParseInput . LogFormat == LogFormat . DEFAULT )
5056 {
51- var scanProgress = ( int ) ( ( double ) scanNumber / ( lastScanNumber - firstScanNumber + 1 ) * 100 ) ;
57+ var scanProgress = ( int ) ( ( double ) scanNumber / ( lastScanNumber - firstScanNumber + 1 ) * 100 ) ;
5258 if ( scanProgress % ProgressPercentageStep == 0 )
5359 {
5460 if ( scanProgress != lastScanProgress )
@@ -160,12 +166,12 @@ public override void Write(IRawDataPlus rawFile, int firstScanNumber, int lastSc
160166 Writer . WriteLine ( "BEGIN IONS" ) ;
161167 if ( ! ParseInput . MgfPrecursor )
162168 {
163- Writer . WriteLine ( $ "TITLE={ ConstructSpectrumTitle ( ( int ) Device . MS , 1 , scanNumber ) } ") ;
169+ Writer . WriteLine ( $ "TITLE={ ConstructSpectrumTitle ( ( int ) Device . MS , 1 , scanNumber ) } ") ;
164170 }
165171 else
166172 {
167173 Writer . WriteLine (
168- $ "TITLE={ ConstructSpectrumTitle ( ( int ) Device . MS , 1 , scanNumber ) } [PRECURSOR={ precursorReference } ]") ;
174+ $ "TITLE={ ConstructSpectrumTitle ( ( int ) Device . MS , 1 , scanNumber ) } [PRECURSOR={ precursorReference } ]") ;
169175 }
170176
171177 Writer . WriteLine ( $ "SCANS={ scanNumber } ") ;
@@ -250,6 +256,7 @@ public override void Write(IRawDataPlus rawFile, int firstScanNumber, int lastSc
250256 {
251257 Console . WriteLine ( ) ;
252258 }
259+
253260 }
254261 }
255262 }
0 commit comments