11using System ;
22using System . IO ;
3+ using System . Linq ;
4+ using System . Net . PeerToPeer . Collaboration ;
35using System . Xml . Serialization ;
46using IO . Mgf ;
7+ using MzLibUtil ;
58using NUnit . Framework ;
69using ThermoRawFileParser ;
710using ThermoRawFileParser . Writer . MzML ;
@@ -66,6 +69,8 @@ public void TestMzml()
6669
6770 Assert . AreEqual ( "1" , testMzMl . run . chromatogramList . count ) ;
6871 Assert . AreEqual ( 1 , testMzMl . run . chromatogramList . chromatogram . Length ) ;
72+
73+ Assert . AreEqual ( 48 , testMzMl . run . chromatogramList . chromatogram [ 0 ] . defaultArrayLength ) ;
6974 }
7075
7176 [ Test ]
@@ -98,5 +103,36 @@ public void TestIndexedMzML()
98103 Assert . AreEqual ( "chromatogram" , testMzMl . indexList . index [ 1 ] . name . ToString ( ) ) ;
99104 Assert . AreEqual ( 1 , testMzMl . indexList . index [ 1 ] . offset . Length ) ;
100105 }
106+
107+ [ Test ]
108+ public void TestMzML_MS2 ( )
109+ {
110+ // Get temp path for writing the test mzML
111+ var tempFilePath = Path . GetTempPath ( ) ;
112+
113+ var testRawFile = Path . Combine ( AppDomain . CurrentDomain . BaseDirectory , @"Data/small2.RAW" ) ;
114+ var parseInput = new ParseInput ( testRawFile , null , tempFilePath , OutputFormat . MzML ) ;
115+
116+ RawFileParser . Parse ( parseInput ) ;
117+
118+ // Deserialize the mzML file
119+ var xmlSerializer = new XmlSerializer ( typeof ( mzMLType ) ) ;
120+ var testMzMl = ( mzMLType ) xmlSerializer . Deserialize ( new FileStream (
121+ Path . Combine ( tempFilePath , "small2.mzML" ) , FileMode . Open , FileAccess . Read , FileShare . ReadWrite ) ) ;
122+
123+ Assert . AreEqual ( 95 , testMzMl . run . spectrumList . spectrum . Length ) ;
124+
125+ var precursor = testMzMl . run . spectrumList . spectrum [ 16 ] . precursorList . precursor [ 0 ] . selectedIonList . selectedIon [ 0 ] ;
126+ var selectedMz = Double . Parse ( precursor . cvParam . Where ( cv => cv . accession == "MS:1000744" ) . First ( ) . value ) ;
127+ Assert . IsTrue ( selectedMz - 604.7592 < 0.001 ) ;
128+
129+ var selectedZ = int . Parse ( precursor . cvParam . Where ( cv => cv . accession == "MS:1000041" ) . First ( ) . value ) ;
130+ Assert . AreEqual ( selectedZ , 2 ) ;
131+
132+ //var selectedI = Double.Parse(precursor.cvParam.Where(cv => cv.accession == "MS:1000042").First().value);
133+ //Assert.IsTrue(selectedI - 10073 < 1);
134+
135+ Assert . AreEqual ( 95 , testMzMl . run . chromatogramList . chromatogram [ 0 ] . defaultArrayLength ) ;
136+ }
101137 }
102138}
0 commit comments