public PrecursorQuantificationResult GetPrecursorQuantificationResult(int replicateIndex, TransitionGroupDocNode transitionGroupDocNode) { PrecursorQuantificationResult result = null; if (IsotopologResponseCurve) { result = new PrecursorQuantificationResult(); var calibrationPoint = new CalibrationPoint(replicateIndex, transitionGroupDocNode.LabelType); CalibrationCurve calibrationCurve = GetCalibrationCurve(); result = (PrecursorQuantificationResult)result.ChangeNormalizedArea(GetNormalizedPeakArea(calibrationPoint)); if (HasExternalStandards() || HasInternalStandardConcentration()) { double?calculatedConcentration = GetCalculatedConcentration(calibrationCurve, calibrationPoint); result = (PrecursorQuantificationResult)result.ChangeCalculatedConcentration(calculatedConcentration); double?expectedConcentration = transitionGroupDocNode.PrecursorConcentration; result = (PrecursorQuantificationResult)result.ChangeAccuracy(calculatedConcentration / expectedConcentration); result = (PrecursorQuantificationResult)result.ChangeUnits(QuantificationSettings.Units); } } var targetIonRatio = GetTargetIonRatio(transitionGroupDocNode); var ionRatio = PeptideQuantifier.GetQualitativeIonRatio(SrmSettings, transitionGroupDocNode, replicateIndex); if (targetIonRatio.HasValue || ionRatio.HasValue) { result = result ?? new PrecursorQuantificationResult(); var status = ValueStatus.GetStatus(ionRatio, GetTargetIonRatio(transitionGroupDocNode), SrmSettings.PeptideSettings.Quantification.QualitativeIonRatioThreshold / 100); result = result.ChangeIonRatio(targetIonRatio, ionRatio, status); } return(result); }
public double?GetSpecifiedXValue(CalibrationPoint calibrationPoint) { var chromatogramSet = GetChromatogramSet(calibrationPoint.ReplicateIndex); if (chromatogramSet == null) { return(null); } if (null != calibrationPoint.LabelType) { var transitionGroup = PeptideQuantifier.PeptideDocNode.TransitionGroups.FirstOrDefault(tg => Equals(tg.LabelType, calibrationPoint.LabelType) && tg.PrecursorConcentration.HasValue); if (transitionGroup != null) { return(transitionGroup.PrecursorConcentration / chromatogramSet.SampleDilutionFactor); } return(null); } double?peptideConcentration = GetPeptideConcentration(chromatogramSet); if (peptideConcentration.HasValue) { if (HasExternalStandards() && HasInternalStandardConcentration()) { return(peptideConcentration / PeptideQuantifier.PeptideDocNode.InternalStandardConcentration); } return(peptideConcentration); } return(null); }
public double?GetCalculatedConcentration(CalibrationCurve calibrationCurve, CalibrationPoint calibrationPoint) { if (!HasExternalStandards() && !HasInternalStandardConcentration()) { return(null); } return(GetConcentrationFromXValue(GetCalculatedXValue(calibrationCurve, calibrationPoint) * GetDilutionFactor(calibrationPoint.ReplicateIndex))); }
public SampleType GetSampleType(CalibrationPoint calibrationPoint) { if (null == calibrationPoint.LabelType) { ChromatogramSet chromatogramSet = SrmSettings.MeasuredResults.Chromatograms[calibrationPoint.ReplicateIndex]; return(chromatogramSet.SampleType); } return(GetSpecifiedXValue(calibrationPoint).HasValue ? SampleType.STANDARD : SampleType.UNKNOWN); }
public QuantificationResult GetPrecursorQuantificationResult(int replicateIndex, TransitionGroupDocNode transitionGroupDocNode) { QuantificationResult result = new QuantificationResult(); var calibrationPoint = new CalibrationPoint(replicateIndex, transitionGroupDocNode.LabelType); CalibrationCurve calibrationCurve = GetCalibrationCurve(); result = result.ChangeNormalizedArea(GetNormalizedPeakArea(calibrationPoint)); if (HasExternalStandards() || HasInternalStandardConcentration()) { double?calculatedConcentration = GetCalculatedConcentration(calibrationCurve, calibrationPoint); result = result.ChangeCalculatedConcentration(calculatedConcentration); double?expectedConcentration = transitionGroupDocNode.PrecursorConcentration; result = result.ChangeAccuracy(calculatedConcentration / expectedConcentration); result = result.ChangeUnits(SrmSettings.PeptideSettings.Quantification.Units); } return(result); }
public IDictionary <CalibrationPoint, double> GetStandardConcentrations() { Dictionary <CalibrationPoint, double> result = new Dictionary <CalibrationPoint, double>(); var measuredResults = SrmSettings.MeasuredResults; if (null == measuredResults) { return(result); } if (IsotopologResponseCurve) { foreach (var precursor in PeptideQuantifier.PeptideDocNode.TransitionGroups) { if (precursor.PrecursorConcentration.HasValue) { foreach (var replicateIndex in EnumerateReplicates()) { var standardIdentifier = new CalibrationPoint(replicateIndex, precursor.LabelType); result[standardIdentifier] = precursor.PrecursorConcentration.Value / measuredResults.Chromatograms[replicateIndex].SampleDilutionFactor; } } } } else { foreach (int replicateIndex in EnumerateReplicates()) { var chromatogramSet = measuredResults.Chromatograms[replicateIndex]; if (!SampleType.STANDARD.Equals(chromatogramSet.SampleType)) { continue; } if (PeptideQuantifier.PeptideDocNode.IsExcludeFromCalibration(replicateIndex)) { continue; } double?concentration = GetPeptideConcentration(chromatogramSet); if (concentration.HasValue) { result.Add(new CalibrationPoint(replicateIndex, null), concentration.Value); } } } return(result); }
public double?GetPeptideConcentration(CalibrationPoint calibrationPoint) { var chromatogramSet = GetChromatogramSet(calibrationPoint.ReplicateIndex); if (chromatogramSet == null) { return(null); } if (calibrationPoint.LabelType != null) { var transitionGroup = PeptideQuantifier.PeptideDocNode.TransitionGroups.FirstOrDefault(tg => Equals(tg.LabelType, calibrationPoint.LabelType) && tg.PrecursorConcentration.HasValue); if (transitionGroup == null) { return(null); } return(transitionGroup.PrecursorConcentration / chromatogramSet.SampleDilutionFactor); } return(GetPeptideConcentration(chromatogramSet)); }
public double?GetNormalizedPeakArea(CalibrationPoint calibrationPoint) { var allTransitionQuantities = GetTransitionQuantities(calibrationPoint); ICollection <PeptideQuantifier.Quantity> quantitiesToSum; if (!IsAllowMissingTransitions()) { var completeTransitionSet = GetTransitionsToQuantifyOn(); quantitiesToSum = allTransitionQuantities .Where(entry => completeTransitionSet.Contains(entry.Key)) .Select(entry => entry.Value) .ToArray(); if (quantitiesToSum.Count != completeTransitionSet.Count) { return(null); } } else { quantitiesToSum = allTransitionQuantities.Values; } return(PeptideQuantifier.SumQuantities(quantitiesToSum, PeptideQuantifier.NormalizationMethod)); }
public IDictionary <IdentityPath, PeptideQuantifier.Quantity> GetTransitionQuantities(CalibrationPoint calibrationPoint) { IDictionary <IdentityPath, PeptideQuantifier.Quantity> result; if (!_replicateQuantities.TryGetValue(calibrationPoint, out result)) { if (calibrationPoint.LabelType == null) { result = PeptideQuantifier.GetTransitionIntensities(SrmSettings, calibrationPoint.ReplicateIndex, false); } else { result = new Dictionary <IdentityPath, PeptideQuantifier.Quantity> { { IdentityPath.ROOT, new PeptideQuantifier.Quantity(PeptideQuantifier.GetIsotopologArea(SrmSettings, calibrationPoint.ReplicateIndex, calibrationPoint.LabelType), 1) } }; } _replicateQuantities.Add(calibrationPoint, result); } return(result); }
public double?GetYValue(CalibrationPoint calibrationPoint) { return(GetNormalizedPeakArea(calibrationPoint)); }
public double?GetCalculatedXValue(CalibrationCurve calibrationCurve, CalibrationPoint calibrationPoint) { return(calibrationCurve.GetX(GetYValue(calibrationPoint))); }