Class: MzIdentMLDoc
- Inherits:
-
Object
- Object
- MzIdentMLDoc
- Defined in:
- lib/protk/mzidentml_doc.rb
Constant Summary collapse
- MZID_NS_PREFIX =
"mzidentml"- MZID_NS =
'http://psidev.info/psi/pi/mzIdentML/1.1'
Class Method Summary collapse
-
.find(node, expression, root = false) ⇒ Object
———————————————————–.
-
.get_best_psm_for_peptide(peptide_node) ⇒ Object
<PeptideHypothesis peptideEvidence_ref=“PepEv_1”> <SpectrumIdentificationItemRef spectrumIdentificationItem_ref=“SII_1_1”/> </PeptideHypothesis>.
- .get_cvParam(mzidnode, accession) ⇒ Object
- .get_dbsequence(mzidnode, accession) ⇒ Object
- .get_peptide_evidence_from_psm(psm_node) ⇒ Object
-
.get_peptides_for_protein(protein_node) ⇒ Object
def self.get_sister_proteins(protein_node) self.find(protein_node.parent,“ProteinDetectionHypothesis”) end.
-
.get_protein_probability(protein_node) ⇒ Object
As per PeptideShaker.
- .get_proteins_for_group(group_node) ⇒ Object
- .get_sequence_for_peptide(peptide_node) ⇒ Object
- .get_sequence_for_psm(psm_node) ⇒ Object
Instance Method Summary collapse
-
#initialize(path) ⇒ MzIdentMLDoc
constructor
A new instance of MzIdentMLDoc.
- #peptide_evidence ⇒ Object
-
#peptides ⇒ Object
Peptides are referenced in many ways in mzidentml.
- #protein_groups ⇒ Object
- #proteins ⇒ Object
- #psms ⇒ Object
- #spectrum_queries ⇒ Object
Constructor Details
#initialize(path) ⇒ MzIdentMLDoc
Returns a new instance of MzIdentMLDoc.
10 11 12 13 |
# File 'lib/protk/mzidentml_doc.rb', line 10 def initialize(path) parser=XML::Parser.file(path) @document=parser.parse end |
Class Method Details
.find(node, expression, root = false) ⇒ Object
Class Level Utility methods for searching from a given node
53 54 55 56 |
# File 'lib/protk/mzidentml_doc.rb', line 53 def self.find(node,expression,root=false) pp = root ? "//" : "./" node.find("#{pp}#{MZID_NS_PREFIX}:#{expression}","#{MZID_NS_PREFIX}:#{MZID_NS}") end |
.get_best_psm_for_peptide(peptide_node) ⇒ Object
<PeptideHypothesis peptideEvidence_ref=“PepEv_1”> <SpectrumIdentificationItemRef spectrumIdentificationItem_ref=“SII_1_1”/> </PeptideHypothesis>
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/protk/mzidentml_doc.rb', line 94 def self.get_best_psm_for_peptide(peptide_node) best_score=-1 best_psm=nil self.find(peptide_node,"SpectrumIdentificationItemRef").each do |id_ref_node| id_ref = id_ref_node.attributes['spectrumIdentificationItem_ref'] psm_node = self.find(peptide_node,"SpectrumIdentificationItem[@id=\'#{id_ref}\']",true)[0] score = self.get_cvParam(psm_node,"MS:1002466")['value'].to_f if score>best_score best_psm=psm_node best_score=score end end best_psm end |
.get_cvParam(mzidnode, accession) ⇒ Object
59 60 61 |
# File 'lib/protk/mzidentml_doc.rb', line 59 def self.get_cvParam(mzidnode,accession) self.find(mzidnode,"cvParam[@accession=\'#{accession}\']")[0] end |
.get_dbsequence(mzidnode, accession) ⇒ Object
63 64 65 |
# File 'lib/protk/mzidentml_doc.rb', line 63 def self.get_dbsequence(mzidnode,accession) self.find(mzidnode,"DBSequence[@accession=\'#{accession}\']",true)[0] end |
.get_peptide_evidence_from_psm(psm_node) ⇒ Object
124 125 126 127 128 129 130 131 |
# File 'lib/protk/mzidentml_doc.rb', line 124 def self.get_peptide_evidence_from_psm(psm_node) pe_nodes = [] self.find(psm_node,"PeptideEvidenceRef").each do |pe_node| ev_id=pe_node.attributes['peptideEvidence_ref'] pe_nodes << self.find(pe_node,"PeptideEvidence[@id=\'#{ev_id}\']",true)[0] end pe_nodes end |
.get_peptides_for_protein(protein_node) ⇒ Object
def self.get_sister_proteins(protein_node) self.find(protein_node.parent,“ProteinDetectionHypothesis”) end
87 88 89 |
# File 'lib/protk/mzidentml_doc.rb', line 87 def self.get_peptides_for_protein(protein_node) self.find(protein_node,"PeptideHypothesis") end |
.get_protein_probability(protein_node) ⇒ Object
As per PeptideShaker. Assume group probability used for protein if it is group rep otherwise 0
68 69 70 71 72 73 74 75 76 77 |
# File 'lib/protk/mzidentml_doc.rb', line 68 def self.get_protein_probability(protein_node) #MS:1002403 is_group_representative=(self.get_cvParam(protein_node,"MS:1002403")!=nil) if is_group_representative return self.get_cvParam(protein_node.parent,"MS:1002470").attributes['value'].to_f*0.01 else return 0 end end |
.get_proteins_for_group(group_node) ⇒ Object
79 80 81 |
# File 'lib/protk/mzidentml_doc.rb', line 79 def self.get_proteins_for_group(group_node) self.find(group_node,"ProteinDetectionHypothesis") end |
.get_sequence_for_peptide(peptide_node) ⇒ Object
110 111 112 113 114 115 116 |
# File 'lib/protk/mzidentml_doc.rb', line 110 def self.get_sequence_for_peptide(peptide_node) evidence_ref = peptide_node.attributes['peptideEvidence_ref'] pep_ref = peptide_node.find("//#{MZID_NS_PREFIX}:PeptideEvidence[@id=\'#{evidence_ref}\']","#{MZID_NS_PREFIX}:#{MZID_NS}")[0].attributes['peptide_ref'] peptide=peptide_node.find("//#{MZID_NS_PREFIX}:Peptide[@id=\'#{pep_ref}\']","#{MZID_NS_PREFIX}:#{MZID_NS}")[0] # require 'byebug';byebug peptide.find("./#{MZID_NS_PREFIX}:PeptideSequence","#{MZID_NS_PREFIX}:#{MZID_NS}")[0].content end |
.get_sequence_for_psm(psm_node) ⇒ Object
118 119 120 121 122 |
# File 'lib/protk/mzidentml_doc.rb', line 118 def self.get_sequence_for_psm(psm_node) pep_ref = psm_node.attributes['peptide_ref'] peptide=psm_node.find("//#{MZID_NS_PREFIX}:Peptide[@id=\'#{pep_ref}\']","#{MZID_NS_PREFIX}:#{MZID_NS}")[0] peptide.find("./#{MZID_NS_PREFIX}:PeptideSequence","#{MZID_NS_PREFIX}:#{MZID_NS}")[0].content end |
Instance Method Details
#peptide_evidence ⇒ Object
20 21 22 |
# File 'lib/protk/mzidentml_doc.rb', line 20 def peptide_evidence @document.find("//#{MZID_NS_PREFIX}:PeptideEvidence","#{MZID_NS_PREFIX}:#{MZID_NS}") end |
#peptides ⇒ Object
Peptides are referenced in many ways in mzidentml. We define a “Peptide” as a peptide supporting a particular protein Such peptides may encompass several PSM’s
41 42 43 |
# File 'lib/protk/mzidentml_doc.rb', line 41 def peptides @document.find("//#{MZID_NS_PREFIX}:PeptideHypothesis","#{MZID_NS_PREFIX}:#{MZID_NS}") end |
#protein_groups ⇒ Object
28 29 30 |
# File 'lib/protk/mzidentml_doc.rb', line 28 def protein_groups @document.find("//#{MZID_NS_PREFIX}:ProteinAmbiguityGroup","#{MZID_NS_PREFIX}:#{MZID_NS}") end |
#proteins ⇒ Object
33 34 35 |
# File 'lib/protk/mzidentml_doc.rb', line 33 def proteins @document.find("//#{MZID_NS_PREFIX}:ProteinDetectionHypothesis","#{MZID_NS_PREFIX}:#{MZID_NS}") end |
#psms ⇒ Object
24 25 26 |
# File 'lib/protk/mzidentml_doc.rb', line 24 def psms @document.find("//#{MZID_NS_PREFIX}:SpectrumIdentificationItem","#{MZID_NS_PREFIX}:#{MZID_NS}") end |
#spectrum_queries ⇒ Object
16 17 18 |
# File 'lib/protk/mzidentml_doc.rb', line 16 def spectrum_queries @document.find("//#{MZID_NS_PREFIX}:SpectrumIdentificationResult","#{MZID_NS_PREFIX}:#{MZID_NS}") end |