11using System ;
22using System . Collections . Generic ;
3- using System . IO ;
43using System . Reflection ;
54using log4net ;
65using Parquet . Serialization ;
@@ -43,17 +42,18 @@ public override void Write(IRawDataPlus raw, int firstScanNumber, int lastScanNu
4342 throw new RawFileParserException ( "No MS data in RAW file, no output will be produced" ) ;
4443 }
4544
45+ //TODO: Correct iterator based on MS-level filter
4646 var enumerator = raw . GetFilteredScanEnumerator ( " " ) ;
4747
48- // NB: replace with more robust strategy?
49- var output = ParseInput . OutputDirectory + "//" + Path . GetFileNameWithoutExtension ( ParseInput . RawFilePath ) + ".mzparquet" ;
50-
48+ ConfigureWriter ( ".mzparquet" ) ;
49+
5150 ParquetSerializerOptions opts = new ParquetSerializerOptions ( ) ;
5251 opts . CompressionLevel = System . IO . Compression . CompressionLevel . Fastest ;
5352 opts . CompressionMethod = Parquet . CompressionMethod . Zstd ;
5453
5554 var data = new List < MzParquet > ( ) ;
5655
56+ //TODO Precursor tree
5757 // map last (msOrder - 1) -> scan number (e.g. mapping precursors)
5858 // note, this assumes time dependence of MS1 -> MS2 -> MSN
5959 var last_scans = new Dictionary < int , uint > ( ) ;
@@ -63,6 +63,7 @@ public override void Write(IRawDataPlus raw, int firstScanNumber, int lastScanNu
6363 {
6464 var scanFilter = raw . GetFilterForScanNumber ( scanNumber ) ;
6565
66+ //TODO Centroiding if centroidStream is not available
6667 CentroidStream centroidStream = new CentroidStream ( ) ;
6768
6869 // Pull out m/z and intensity values
@@ -170,7 +171,7 @@ public override void Write(IRawDataPlus raw, int firstScanNumber, int lastScanNu
170171 // present in the same row group (critical property of mzparquet)
171172 if ( data . Count >= 1_048_576 )
172173 {
173- var task = ParquetSerializer . SerializeAsync ( data , output , opts ) ;
174+ var task = ParquetSerializer . SerializeAsync ( data , Writer . BaseStream , opts ) ;
174175 task . Wait ( ) ;
175176 opts . Append = true ;
176177 data . Clear ( ) ;
@@ -182,7 +183,7 @@ public override void Write(IRawDataPlus raw, int firstScanNumber, int lastScanNu
182183 // serialize any remaining ions into the final row group
183184 if ( data . Count > 0 )
184185 {
185- var task = ParquetSerializer . SerializeAsync ( data , output , opts ) ;
186+ var task = ParquetSerializer . SerializeAsync ( data , Writer . BaseStream , opts ) ;
186187 task . Wait ( ) ;
187188 Log . Info ( "writing row group" ) ;
188189 }
0 commit comments