private static DeuterationResult GenerateDeuterationResult(Peptide peptide, ProteinState proteinState, Labeling labeling, Experiment experiment, Result result) { List<RunResult> replicates = new List<RunResult>(); foreach (Run run in experiment.GetRunsByProteinState(proteinState)) { if (run.Labeling == labeling) { RunResult runResult = experiment.GetRunResult(result, run, peptide); if (runResult != null) { replicates.Add(runResult); } } } DeuterationResult deuterationResult = new DeuterationResult(peptide, proteinState, labeling, replicates); deuterationResult.AmountDeut = Math.Round(MathUtility.GetAverage(deuterationResult.DeuterationValues), 5); deuterationResult.AmountDeuterationStandardDeviation = Math.Round(MathUtility.GetStandardDeviation(deuterationResult.DeuterationValues), 5); deuterationResult.AmountDeuterationFromDeuterationDistribution = Math.Round(MathUtility.GetAverage(deuterationResult.DeuterationDistributedDeuterationValues), 5); deuterationResult.AmountDeuterationFromDeuterationDistributionStandardDeviation = Math.Round(MathUtility.GetStandardDeviation(deuterationResult.DeuterationDistributedDeuterationValues), 5); deuterationResult.CentroidMass = Math.Round(MathUtility.GetAverage(deuterationResult.CentroidMassValues), 5); deuterationResult.CentroidMassStandardDeviation = Math.Round(MathUtility.GetStandardDeviation(deuterationResult.CentroidMassValues), 5); if (replicates.Count > 0) { deuterationResult.TheoreticalCentroidMass = Math.Round(replicates.Average(item => item.TheoreticalAverageMass), 5); } return deuterationResult; }
public DeuterationResult Clone() { DeuterationResult clonedDeutResult = new DeuterationResult(Peptide, ProteinState, Labeling, ReplicateResults); clonedDeutResult.AmountDeut = AmountDeut; clonedDeutResult.AmountDeuterationFromDeuterationDistribution = AmountDeuterationFromDeuterationDistribution; clonedDeutResult.CentroidMass = CentroidMass; clonedDeutResult.CentroidMassStandardDeviation = CentroidMassStandardDeviation; clonedDeutResult.AmountDeuterationFromDeuterationDistributionStandardDeviation = AmountDeuterationFromDeuterationDistributionStandardDeviation; clonedDeutResult.AmountDeuterationStandardDeviation = AmountDeuterationStandardDeviation; return clonedDeutResult; }
private void AssertResult(DeuterationResult result, double labelingPercent, double labelingTime, string sequence, double amountDeut) { Assert.AreEqual(labelingPercent, result.Labeling.LabelingPercent); Assert.AreEqual(labelingTime, result.Labeling.LabelingTime); Assert.AreEqual(sequence, result.Peptide.Sequence); Assert.AreEqual(0, result.ReplicateResults.Count); Assert.AreEqual(amountDeut, Math.Round(result.AmountDeut, 5)); }