mwalzer / psi-pi

Automatically exported from code.google.com/p/psi-pi
0 stars 0 forks source link

Support for crosslinking in mzid #76

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
At PSI 2013 some preliminary work was done on supporting crosslinking in 
mzIdentML. A sketch of one possible solution is as follows:

<Peptide id="RVDSGLHCPLLPDDR_XL_donor">
    <PeptideSequence>RVDKSGLHCPLLPDDR</PeptideSequence>
    <Modification location="3" monoisotopicMassDelta="167.99">
        <cvParam cvRef="UNIMOD" accession="unimodX" name="dss"/>
        <cvParam cvRef="PSI-MS" accession="" name="crosslinked mod" value="1"/>
    </Modification>
</Peptide>
<Peptide id="NGVTLSNDAELSATDSR_XL_receptor">
    <PeptideSequence>NGVTLSNDAELSATDSR</PeptideSequence>
    <Modification location="3" monoisotopicMassDelta="0">
        <cvParam cvRef="PSI-MS" accession="MS:100XXX" name="crosslinked neutral acceptor"/>
        <cvParam cvRef="PSI-MS" accession="" name="crosslinked mod" value="1"/>
    </Modification>
</Peptide>

SpectrumIdentificationResult spectraData_ref="SID_1" spectrumID="index=137" 
id="SIR_1">
        <!-- calc mass to charge is the mass to charge of peptides from both SII_1_1 and SII1_2 and the crosslinking reagent  -->
        <SpectrumIdentificationItem passThreshold="false" rank="1" peptide_ref="RVDSGLHCPLLPDDR_XL_donor" calculatedMassToCharge="582.954" experimentalMassToCharge="582.931" chargeState="3" id="SII_1_1">
            <PeptideEvidenceRef peptideEvidence_ref="PE1_2_0"/>
            <cvParam accession="MS:1001328" cvRef="PSI-MS" value="0.05609" name="pp:evalue"/>
            <cvParam accession="MS:1001328" cvRef="PSI-MS" value="0.005609" name="pp:xlevalue"/>
            <cvParam accession="MS:100XXX" name="crosslinked identification" value="1" cvRef="PSI-MS"/> <!-- Local unique ID for tying together two XL PSMs as one unit -->
        </SpectrumIdentificationItem>
        <SpectrumIdentificationItem passThreshold="false" rank="1" peptide_ref="NGVTLSNDAELSATDSR_XL_receptor" calculatedMassToCharge="582.939" experimentalMassToCharge="582.931" chargeState="3" id="SII_1_2">
            <PeptideEvidenceRef peptideEvidence_ref="PE1_3_1"/>
            <cvParam accession="MS:1001328" cvRef="PSI-MS" value="0.1609" name="pp:evalue"/>
            <cvParam accession="MS:1001328" cvRef="PSI-MS" value="0.005609" name="pp:xlevalue"/>
            <cvParam accession="" name="crosslinked identification" value="1"  cvRef="PSI-MS"/>
        </SpectrumIdentificationItem>

        <!-- Can also report non-XL PSMs for same spectrum -->
        <SpectrumIdentificationItem passThreshold="false" rank="3" peptide_ref="AKIEHWLAQIAWAGR" calculatedMassToCharge="582.982" experimentalMassToCharge="582.931" chargeState="3" id="SII_1_3">
            <PeptideEvidenceRef peptideEvidence_ref="PE1_4_2"/>
            <cvParam accession="MS:1001328" cvRef="PSI-MS" value="1.44629572525444" name="OMSSA:evalue"/>
            <cvParam accession="MS:1001329" cvRef="PSI-MS" value="3.47416700757731E-4" name="OMSSA:pvalue"/>
        </SpectrumIdentificationItem>
        <SpectrumIdentificationItem passThreshold="false" rank="4" peptide_ref="YQLARQQLLSSLSSR" calculatedMassToCharge="582.984" experimentalMassToCharge="582.931" chargeState="3" id="SII_1_4">
            <PeptideEvidenceRef peptideEvidence_ref="PE1_5_3"/>
            <cvParam accession="MS:1001328" cvRef="PSI-MS" value="9.87084386113905" name="OMSSA:evalue"/>
            <cvParam accession="MS:1001329" cvRef="PSI-MS" value="0.00237108908506823" name="OMSSA:pvalue"/>
        </SpectrumIdentificationItem>
        <cvParam accession="MS:1000796" cvRef="PSI-MS" value="55.574.579.3.dta" name="spectrum title"/>
    </SpectrumIdentificationResult>

Basic idea is to flag two (or more) PSMs as actually being one single 
identification, since both have the same local identifier:

            <cvParam accession="" name="crosslinked identification" value="1"  cvRef="PSI-MS"/>

Both will have at least one identical score (in most cases), and both with have 
identical rank, m/z charge etc.

The two PSMs then reference to different peptides and peptideevidences.

One of the peptide elements has the XL modification and location reported, the 
other peptide element has a new PSI-MS term for "neutral XL acceptor" or 
similar. Export software can choose which peptide takes the neutral term.

Reason for doing this is to ensure that mass of XL doesn't get counted twice. 
Some mods in Unimod do crosslinking by being a half-mod (i.e. half a disulphide 
bridge). We think this doesn't work in case any chemical formula has an odd 
number of atoms in!

As far as we know, real mass shifts of crosslinkers are not present in Unimod 
yet, only XL dead ends.

Think this model is not too bad, but need to try exporting from some software. 

ACTION: Lutz and Da to try implementing this in local software pacakges and see 
how it breaks.

ACTION: Andy to organise a PSI-PI call in say 4-6 weeks to discuss how this is 
coming along

Original issue reported on code.google.com by andrewro...@googlemail.com on 17 Apr 2013 at 1:11

GoogleCodeExporter commented 9 years ago
<cvParam cvRef="PSI-MS" accession="" name="crosslinked mod" value="1"/>

This is intended to be a local identifier (improved name needed) tying together 
two peptide+mod combinations, to support multiple crosslinks across a pair of 
peptides. 

Original comment by andrewro...@googlemail.com on 17 Apr 2013 at 1:13