public void CompareAveragingWithMSstats() { var srmDocument = LoadRatPlasmaDocument(); var documentContainer = new MemoryDocumentContainer(); documentContainer.SetDocument(documentContainer.Document, srmDocument); GroupComparisonModel model = new GroupComparisonModel(documentContainer, null); model.GroupComparisonDef = GroupComparisonDef.EMPTY.ChangeControlAnnotation("Condition") .ChangeControlValue("Healthy") .ChangeIdentityAnnotation("BioReplicate") .ChangeSummarizationMethod(SummarizationMethod.AVERAGING) .ChangePerProtein(false); var expectedValues = MsStatsTestUtil.ReadExpectedResults(typeof(MSstatsAveragingTest), "RatPlasmaTestingResult.csv"); var groupComparer = new GroupComparer(model.GroupComparisonDef, srmDocument, new QrFactorizationCache()); foreach (var protein in srmDocument.PeptideGroups) { foreach (var peptide in protein.Peptides) { var result = groupComparer.CalculateFoldChange(new GroupComparisonSelector(protein, peptide, IsotopeLabelType.light, null, new GroupIdentifier("Diseased")), null); var expectedResult = expectedValues[peptide.Peptide.Sequence]; Assert.AreEqual(expectedResult.EstimatedValue, result.LinearFitResult.EstimatedValue, (expectedResult.StandardError + result.LinearFitResult.StandardError) * 2, peptide.Peptide.Sequence); } } }
public void TestProteinAbundance() { var srmDocument = LoadRatPlasmaDocument(); var documentContainer = new MemoryDocumentContainer(); documentContainer.SetDocument(srmDocument, documentContainer.Document); var skylineDataSchema = new SkylineDataSchema(documentContainer, DataSchemaLocalizer.INVARIANT); GroupComparisonModel model = new GroupComparisonModel(documentContainer, null); model.GroupComparisonDef = GroupComparisonDef.EMPTY.ChangeControlAnnotation("Condition") .ChangeControlValue("Healthy") .ChangeSummarizationMethod(SummarizationMethod.AVERAGING) .ChangePerProtein(true); var groupComparer = new GroupComparer(model.GroupComparisonDef, srmDocument, new QrFactorizationCache()); foreach (var moleculeGroup in srmDocument.MoleculeGroups) { if (moleculeGroup.Molecules.Any(mol => null != mol.GlobalStandardType)) { continue; } var foldChangeResult = groupComparer.CalculateFoldChange(new GroupComparisonSelector(moleculeGroup, null, IsotopeLabelType.light, null, new GroupIdentifier("Diseased")), null); var xValues = new List <double>(); var yValues = new List <double>(); var protein = new Protein(skylineDataSchema, new IdentityPath(moleculeGroup.PeptideGroup)); foreach (var proteinResult in protein.Results.Values) { var abundance = proteinResult.Abundance; if (!abundance.HasValue) { continue; } var condition = proteinResult.Replicate.ChromatogramSet.Annotations.GetAnnotation("Condition"); if (condition == "Healthy") { xValues.Add(0); } else if (condition == "Diseased") { xValues.Add(1); } yValues.Add(Math.Log(abundance.Value)); } Assert.AreEqual(xValues.Count, foldChangeResult.ReplicateCount); if (!xValues.Any()) { continue; } var yStatistics = new Statistics(yValues); var xStatistics = new Statistics(xValues); var slope = yStatistics.Slope(xStatistics); var actualFoldChange = Math.Exp(slope); var expectedFoldChange = Math.Pow(2.0, foldChangeResult.LinearFitResult.EstimatedValue); AssertEx.AreEqual(expectedFoldChange, actualFoldChange, .01); } }
public EditGroupComparisonDlg(GroupComparisonModel groupComparisonModel) { InitializeComponent(); Icon = Resources.Skyline; GroupComparisonModel = groupComparisonModel; GroupComparisonModel.AddModelChanged(this, OnModelChanged); Height -= panelAdvanced.Height; panelAdvanced.Visible = false; }
private void OnModelChanged(GroupComparisonModel model) { if (_inChangeSettings) { return; } try { _inChangeSettings = true; UpdateSettings(); } finally { _inChangeSettings = false; } }
public static void ChangeGroupComparisonDef(bool pushChangesToDocument, GroupComparisonModel model, GroupComparisonDef groupDef) { if (pushChangesToDocument) { Program.MainWindow.ModifyDocument( GroupComparisonStrings.GroupComparisonSettingsForm_GroupComparisonDef_Change_Group_Comparison, doc => model.ApplyChangesToDocument(doc, groupDef) ); Settings.Default.GroupComparisonDefList.Add(groupDef); } else { model.GroupComparisonDef = groupDef; } }
public GroupComparisonRefinementData(SrmDocument document, double adjustedPValCutoff, double foldChangeCutoff, int?msLevel, List <GroupComparisonDef> groupComparisonDefs, SrmSettingsChangeMonitor progressMonitor) { _progressMonitor = progressMonitor; _foldChangeCutoff = foldChangeCutoff; _adjustedPValCutoff = adjustedPValCutoff; if (msLevel.HasValue) { _msLevel = msLevel.Value; } else { _msLevel = document.PeptideTransitions.Any(t => !t.IsMs1) ? 2 : 1; } Data = new List <List <GroupComparisonRow> >(); foreach (var groupComparisonDef in groupComparisonDefs) { var groupComparer = new GroupComparer(groupComparisonDef, document, _qrFactorizationCache); var results = GroupComparisonModel.ComputeResults(groupComparer, document, null, null, progressMonitor); var adjustedPValues = PValues.AdjustPValues(results.Select( row => row.LinearFitResult.PValue)).ToArray(); var foldChangeList = new List <GroupComparisonRow>(); for (int iRow = 0; iRow < results.Count; iRow++) { var resultRow = results[iRow]; FoldChangeResult foldChangeResult = new FoldChangeResult(groupComparisonDef.ConfidenceLevel, adjustedPValues[iRow], resultRow.LinearFitResult, double.NaN); foldChangeList.Add(new GroupComparisonRow(resultRow.Selector.Protein, resultRow.Selector.Peptide, resultRow.Selector.MsLevel, foldChangeResult)); } Data.Add(foldChangeList); } }
public FoldChangeBindingSource(GroupComparisonModel groupComparisonModel) { _container = new Container(); GroupComparisonModel = groupComparisonModel; _taskScheduler = TaskScheduler.FromCurrentSynchronizationContext(); }
public FoldChangeBindingSource(GroupComparisonModel groupComparisonModel) { _container = new Container(); GroupComparisonModel = groupComparisonModel; _taskScheduler = new EventTaskScheduler(); }
protected BaseGroupComparisonSettings(GroupComparisonModel groupComparisonModel) { GroupComparisonModel = groupComparisonModel; GroupComparisonModel.AddModelChanged(this, OnModelChanged); }