private void GetPsmScore( SpectrumIdentificationItemType item, out double score, out string type, out Peptide.ConfidenceType confidence ) { score = -1.0; type = "N/A"; confidence = item.passThreshold ? Peptide.ConfidenceType.PassThreshold : Peptide.ConfidenceType.NoThreshold; if( item.Items == null ) return; foreach( AbstractParamType param in item.Items ) { if( !(param is CVParamType) ) continue; CVParamType cv = param as CVParamType; if( cv.accession == "MS:1001155" ) { score = double.Parse(cv.value, m_Format); type = "ProteomeDiscoverer/SEQUEST Confidence XCorr"; if( score >= m_GreenTh[item.chargeState-1] ) confidence = Peptide.ConfidenceType.Green; else if( score >= m_YellowTh[item.chargeState-1] ) confidence = Peptide.ConfidenceType.Yellow; else confidence = Peptide.ConfidenceType.Red; break; } else if( cv.accession == "MS:1001172" ) { score = double.Parse(cv.value, m_Format); type = "Mascot expectation value"; break; } else if( cv.accession == "MS:1001330" ) { score = double.Parse( cv.value, m_Format ); type = "X!Tandem expect"; break; } } }
/// <summary> /// Create an object using the contents of the corresponding MzIdentML object /// </summary> /// <param name="sii"></param> /// <param name="idata"></param> public SpectrumIdentificationItemObj(SpectrumIdentificationItemType sii, IdentDataObj idata) : base(sii, idata) { Id = sii.id; Name = sii.name; ChargeState = sii.chargeState; ExperimentalMassToCharge = sii.experimentalMassToCharge; _calculatedMassToCharge = sii.calculatedMassToCharge; CalculatedMassToChargeSpecified = sii.calculatedMassToChargeSpecified; _calculatedPI = sii.calculatedPI; CalculatedPISpecified = sii.calculatedPISpecified; PeptideRef = sii.peptide_ref; Rank = sii.rank; PassThreshold = sii.passThreshold; MassTableRef = sii.massTable_ref; SampleRef = sii.sample_ref; PeptideEvidences = new IdentDataList <PeptideEvidenceRefObj>(1); Fragmentations = new IdentDataList <IonTypeObj>(1); if (sii.PeptideEvidenceRef?.Count > 0) { PeptideEvidences.AddRange(sii.PeptideEvidenceRef, pe => new PeptideEvidenceRefObj(pe, IdentData)); } if (sii.Fragmentation?.Count > 0) { Fragmentations.AddRange(sii.Fragmentation, f => new IonTypeObj(f, IdentData)); } }
/// <summary> /// Create an object using the contents of the corresponding MzIdentML object /// </summary> /// <param name="sii"></param> /// <param name="idata"></param> public SpectrumIdentificationItemObj(SpectrumIdentificationItemType sii, IdentDataObj idata) : base(sii, idata) { Id = sii.id; Name = sii.name; ChargeState = sii.chargeState; ExperimentalMassToCharge = sii.experimentalMassToCharge; _calculatedMassToCharge = sii.calculatedMassToCharge; CalculatedMassToChargeSpecified = sii.calculatedMassToChargeSpecified; _calculatedPI = sii.calculatedPI; CalculatedPISpecified = sii.calculatedPISpecified; PeptideRef = sii.peptide_ref; Rank = sii.rank; PassThreshold = sii.passThreshold; MassTableRef = sii.massTable_ref; SampleRef = sii.sample_ref; _peptideEvidences = null; _fragmentations = null; if ((sii.PeptideEvidenceRef != null) && (sii.PeptideEvidenceRef.Count > 0)) { PeptideEvidences = new IdentDataList <PeptideEvidenceRefObj>(); foreach (var pe in sii.PeptideEvidenceRef) { PeptideEvidences.Add(new PeptideEvidenceRefObj(pe, IdentData)); } } if ((sii.Fragmentation != null) && (sii.Fragmentation.Count > 0)) { Fragmentations = new IdentDataList <IonTypeObj>(); foreach (var f in sii.Fragmentation) { Fragmentations.Add(new IonTypeObj(f, IdentData)); } } }