Write isolationWindow/selectedIon for PRM data by lazear · Pull Request #164 · CompOmics/ThermoRawFileParser

Reference #163

This PR adds support for writing isolationWindow/selectionIon information for runs without MS1 info (e.g. PRM, some DIA datasets). This information is needed to search PRM with Sage (and presumably other search engines). This should have the same behavior as MSConvert.

I tested this on ~1,500 raw files and it appears to work well :)

This branch:

<precursorList count="1">
            <precursor>
              <isolationWindow>
                <cvParam cvRef="MS" accession="MS:1000827" value="543.272338867188" name="isolation window target m/z" unitAccession="MS:1000040" unitName="m/z" unitCvRef="MS" />
                <cvParam cvRef="MS" accession="MS:1000828" value="0.6" name="isolation window lower offset" unitAccession="MS:1000040" unitName="m/z" unitCvRef="MS" />
                <cvParam cvRef="MS" accession="MS:1000829" value="0.6" name="isolation window upper offset" unitAccession="MS:1000040" unitName="m/z" unitCvRef="MS" />
              </isolationWindow>
              <selectedIonList count="1">
                <selectedIon>
                  <cvParam cvRef="MS" accession="MS:1000744" value="543.272338867188" name="selected ion m/z" unitAccession="MS:1000040" unitName="m/z" unitCvRef="MS" />
                  <cvParam cvRef="MS" accession="MS:1000041" value="2" name="charge state" />
                </selectedIon>
              </selectedIonList>
              <activation>
                <cvParam cvRef="MS" accession="MS:1000045" value="23" name="collision energy" unitAccession="UO:0000266" unitName="electronvolt" unitCvRef="UO" />
                <cvParam cvRef="MS" accession="MS:1000422" value="" name="beam-type collision-induced dissociation" />
              </activation>
            </precursor>
          </precursorList>

MSConvert:

<precursorList count="1">
          <precursor>
            <isolationWindow>
              <cvParam cvRef="MS" accession="MS:1000827" name="isolation window target m/z" value="543.272338867188" unitCvRef="MS" unitAccession="MS:1000040" unitName="m/z"/>
              <cvParam cvRef="MS" accession="MS:1000828" name="isolation window lower offset" value="0.600000023842" unitCvRef="MS" unitAccession="MS:1000040" unitName="m/z"/>
              <cvParam cvRef="MS" accession="MS:1000829" name="isolation window upper offset" value="0.600000023842" unitCvRef="MS" unitAccession="MS:1000040" unitName="m/z"/>
              <userParam name="ms level" value="1"/>
            </isolationWindow>
            <selectedIonList count="1">
              <selectedIon>
                <cvParam cvRef="MS" accession="MS:1000744" name="selected ion m/z" value="543.272338867188" unitCvRef="MS" unitAccession="MS:1000040" unitName="m/z"/>
                <cvParam cvRef="MS" accession="MS:1000041" name="charge state" value="2"/>
              </selectedIon>
            </selectedIonList>
            <activation>
              <cvParam cvRef="MS" accession="MS:1000422" name="beam-type collision-induced dissociation" value=""/>
              <cvParam cvRef="MS" accession="MS:1000045" name="collision energy" value="23.0" unitCvRef="UO" unitAccession="UO:0000266" unitName="electronvolt"/>
            </activation>
          </precursor>
        </precursorList>