class PSM

<spectrum_query spectrum="mr176-BSA100fmole_BA3_01_8167.00003.00003.2" start_scan="3" end_scan="3"

precursor_neutral_mass=“1398.7082” assumed_charge=“2” index=“2” experiment_label=“mr176”>

<search_result>
<search_hit hit_rank="1" peptide="SQVFQLESTFDV" peptide_prev_aa="R" peptide_next_aa="K" protein="tr|Q90853|Q90853_CHICK" 
protein_descr="Homeobox protein OS=Gallus gallus GN=GH6 PE=2 SV=1" num_tot_proteins="1" 
num_matched_ions="9" tot_num_ions="22" calc_neutral_pep_mass="1380.6557" massdiff="18.053" num_tol_term="1" 
num_missed_cleavages="0" is_rejected="0">
<search_score name="hyperscore" value="23.9"/>
<search_score name="nextscore" value="19.3"/>
<search_score name="bscore" value="9.6"/>
<search_score name="yscore" value="7.6"/>
<search_score name="cscore" value="0"/>
<search_score name="zscore" value="0"/>
<search_score name="ascore" value="0"/>
<search_score name="xscore" value="0"/>
<search_score name="expect" value="0.099"/>
<analysis_result analysis="peptideprophet">
<peptideprophet_result probability="0.9997" all_ntt_prob="(0.0000,0.9997,0.9999)">
<search_score_summary>
<parameter name="fval" value="2.3571"/>
<parameter name="ntt" value="1"/>
<parameter name="nmc" value="0"/>
<parameter name="massd" value="18.053"/>
</search_score_summary>
</peptideprophet_result>
</analysis_result>
</search_hit>
</search_result>
</spectrum_query>

Attributes

calculated_mz[RW]
charge[RW]
experimental_mz[RW]
peptide[RW]
peptide_evidence[RW]
scores[RW]

Public Class Methods

from_mzid(psm_node,mzid_doc) click to toggle source

<SpectrumIdentificationResult spectraData_ref=“ma201_Vp_1-10.mzML.mgf” spectrumID=“index=3152” id=“SIR_1”>

<SpectrumIdentificationItem passThreshold="false"
rank="1" peptide_ref="KSPVYKVHFTR"
calculatedMassToCharge="1360.7615466836999"
experimentalMassToCharge="1362.805053710938"
chargeState="1" id="SII_1_1">
  <PeptideEvidenceRef peptideEvidence_ref="PepEv_1" />
  <Fragmentation>
    <IonType charge="1" index="1 4">
      <FragmentArray measure_ref="Measure_MZ"
      values="175.2081208 560.3388993" />
      <FragmentArray measure_ref="Measure_Int"
      values="94.0459823608 116.2766723633" />
      <FragmentArray measure_ref="Measure_Error"
      values="0.08916864948798775 0.0449421494880653" />
      <cvParam cvRef="PSI-MS" accession="MS:1001220"
      name="frag: y ion" />
    </IonType>
  </Fragmentation>
  <cvParam cvRef="PSI-MS" accession="MS:1002466"
  name="PeptideShaker PSM score" value="0.0" />
  <cvParam cvRef="PSI-MS" accession="MS:1002467"
  name="PeptideShaker PSM confidence" value="0.0" />
  <cvParam cvRef="PSI-MS" accession="MS:1002052"
  name="MS-GF:SpecEValue" value="1.4757611E-6" />
  <cvParam cvRef="PSI-MS" accession="MS:1001117"
  name="theoretical mass" value="1360.7615466836999" />
  <cvParam cvRef="PSI-MS" accession="MS:1002543"
  name="PeptideShaker PSM confidence type"
  value="Not Validated" />
</SpectrumIdentificationItem>
<cvParam cvRef="PSI-MS" accession="MS:1000796"
name="spectrum title"
value="Suresh Vp 1 to 10_BAF.3535.3535.1" />
<cvParam cvRef="PSI-MS" accession="MS:1000894"
name="retention time" value="6855.00001" unitCvRef="UO"
unitAccession="UO:0000010" unitName="seconds" />

</SpectrumIdentificationResult>

# File lib/protk/psm.rb, line 166
def from_mzid(psm_node,mzid_doc)
        psm = new()
        psm.peptide = mzid_doc.get_sequence_for_psm(psm_node)
        peptide_evidence_nodes = mzid_doc.get_peptide_evidence_from_psm(psm_node)
        psm.peptide_evidence = peptide_evidence_nodes.collect { |pe| PeptideEvidence.from_mzid(pe,mzid_doc) }

        psm.calculated_mz = psm_node.attributes['calculatedMassToCharge'].to_f
        psm.experimental_mz = psm_node.attributes['experimentalMassToCharge'].to_f
        psm.charge = psm_node.attributes['chargeState'].to_i

        psm
end
new() click to toggle source
# File lib/protk/psm.rb, line 183
def initialize()

end

Public Instance Methods

as_pepxml() click to toggle source

From what I can tell, search_hit is always trivially wrapped in search_result 1:1

# File lib/protk/psm.rb, line 199
def as_pepxml()
        hit_node = XML::Node.new('search_hit')
        hit_node['peptide']=self.peptide.to_s

        # require 'byebug';byebug
        first_evidence = self.peptide_evidence.first

        hit_node['peptide_prev_aa']=first_evidence.peptide_prev_aa
        hit_node['peptide_next_aa']=first_evidence.peptide_next_aa
        hit_node['protein']=first_evidence.protein
        hit_node['protein_descr']=first_evidence.protein_descr

        hit_node['num_tot_proteins']=self.peptide_evidence.length.to_s

        alt_evidence = peptide_evidence.drop(1)
        alt_evidence.each { |ae| hit_node << ae.as_pepxml }

        result_node = XML::Node.new('search_result')
        result_node << hit_node
        result_node
end