public double?CalculateIonRatio(Replicate replicate, Peptide peptide) { var numerator = new List <double>(); var denominator = new List <double>(); foreach (var transition in peptide.Precursors.SelectMany(precursor => precursor.Transitions)) { var transitionDocNode = transition.DocNode; var chromInfo = transitionDocNode.Results[replicate.ReplicateIndex].FirstOrDefault(); if (chromInfo == null || chromInfo.IsEmpty || chromInfo.IsTruncated.GetValueOrDefault()) { continue; } if (transition.Quantitative) { denominator.Add(chromInfo.Area); } else { numerator.Add(chromInfo.Area); } } if (numerator.Count == 0 || denominator.Count == 0) { return(null); } return(numerator.Sum() / denominator.Sum()); }
private void VerifyQuantificationResults(bool hasBatchNames) { var documentGrid = FindOpenForm <DocumentGridForm>(); RunUI(() => documentGrid.ChooseView("PeptideQuantificationResults")); WaitForConditionUI(() => documentGrid.IsComplete); var propertyPathResults = PropertyPath.Root .Property(nameof(Peptide.Results)).LookupAllItems() .Property(nameof(KeyValuePair <ResultKey, PeptideResult> .Value)); var colPeptide = documentGrid.FindColumn(PropertyPath.Root); var colReplicate = documentGrid.FindColumn(propertyPathResults .Property(nameof(PeptideResult.ResultFile)) .Property(nameof(ResultFile.Replicate))); var colCalibrationCurve = documentGrid.FindColumn(PropertyPath.Root.Property(nameof(Peptide.CalibrationCurve))); var colReplicateCalibrationCurve = documentGrid.FindColumn(propertyPathResults.Property(nameof(PeptideResult.ReplicateCalibrationCurve))); var colQuantification = documentGrid.FindColumn(propertyPathResults.Property(nameof(PeptideResult.Quantification))); for (int iRow = 0; iRow < documentGrid.RowCount; iRow++) { Peptide peptide = null; Replicate replicate = null; var calibrationCurve = default(LinkValue <CalibrationCurve>); var replicateCalibrationCurve = default(LinkValue <CalibrationCurve>); RunUI(() => { var row = documentGrid.DataGridView.Rows[iRow]; peptide = (Peptide)row.Cells[colPeptide.Index].Value; replicate = (Replicate)row.Cells[colReplicate.Index].Value; calibrationCurve = (LinkValue <CalibrationCurve>)row.Cells[colCalibrationCurve.Index].Value; replicateCalibrationCurve = (LinkValue <CalibrationCurve>)row.Cells[colReplicateCalibrationCurve.Index].Value; }); if (hasBatchNames) { Assert.AreNotEqual(calibrationCurve.Value.PointCount, replicateCalibrationCurve.Value.PointCount); } else { Assert.AreEqual(calibrationCurve.Value.PointCount, replicateCalibrationCurve.Value.PointCount); Assert.AreEqual(calibrationCurve.Value.Slope, replicateCalibrationCurve.Value.Slope); } int selectedResultsIndexOld = SkylineWindow.SelectedResultsIndex; RunUI(() => calibrationCurve.ClickEventHandler(new object(), new EventArgs())); var calibrationForm = FindOpenForm <CalibrationForm>(); Assert.IsNotNull(calibrationForm); WaitForGraphs(); Assert.AreEqual(peptide.IdentityPath, SkylineWindow.SelectedPath); Assert.AreEqual(selectedResultsIndexOld, SkylineWindow.SelectedResultsIndex); RunUI(() => replicateCalibrationCurve.ClickEventHandler(new object(), new EventArgs())); Assert.AreEqual(peptide.IdentityPath, SkylineWindow.SelectedPath); Assert.AreEqual(replicate.ReplicateIndex, SkylineWindow.SelectedResultsIndex); } }
private CalibrationCurveFitter GetCalibrationCurveFitter() { if (string.IsNullOrEmpty(ResultFile.Replicate.BatchName) && !Peptide.DocNode.HasPrecursorConcentrations) { return(Peptide.GetCalibrationCurveFitter()); } var calibrationCurveFitter = new CalibrationCurveFitter(Peptide.GetPeptideQuantifier(), SrmDocument.Settings); calibrationCurveFitter.SingleBatchReplicateIndex = ResultFile.Replicate.ReplicateIndex; return(calibrationCurveFitter); }
public PeptideResult(Peptide peptide, ResultFile file) : base(peptide, file) { _chromInfo = CachedValue.Create(DataSchema, () => ResultFile.FindChromInfo(peptide.DocNode.Results)); _quantificationResult = CachedValue.Create(DataSchema, GetQuantification); _calibrationCurveFitter = CachedValue.Create(DataSchema, GetCalibrationCurveFitter); }
public override ElementRef GetElementRef() { return(MoleculeResultRef.PROTOTYPE.ChangeChromInfo(ResultFile.Replicate.ChromatogramSet, ChromInfo) .ChangeParent(Peptide.GetElementRef())); }
public void ChangeChromInfo(EditDescription editDescription, Func <PeptideChromInfo, PeptideChromInfo> newChromInfo) { Peptide.ChangeDocNode(editDescription, docNode => docNode.ChangeResults(GetResultFile().ChangeChromInfo(docNode.Results, newChromInfo))); }
public QuantificationResult GetQuantification() { CalibrationCurveFitter curveFitter = Peptide.GetCalibrationCurveFitter(); return(curveFitter.GetQuantificationResult(ResultFile.Replicate.ReplicateIndex)); }