public override void Update(object sender, UpdateQuantificationItemEventArgs e) { IQuantificationSummaryOption option = e.Option as IQuantificationSummaryOption; IIdentifiedResult mr = e.Item as IIdentifiedResult; string xTitle = MyConvert.Format("(Log({0}) + Log({1})) / 2", option.Func.ReferenceKey, option.Func.SampleKey); string yTitle = MyConvert.Format("Log(Ratio)"); panel.InitGraphPane(title, xTitle, yTitle, true, 0.0); try { HashSet <IIdentifiedSpectrum> spectra = new HashSet <IIdentifiedSpectrum>(); var groups = from g in mr where g[0].IsEnabled(true) && option.IsProteinRatioValid(g[0]) select g; foreach (var mpg in groups) { var peptides = from p in mpg.GetPeptides() where p.IsEnabled(true) && option.IsPeptideRatioValid(p) select p; spectra.UnionWith(peptides); } List <LSPADItem> items = new List <LSPADItem>(); foreach (var pep in spectra) { double refIntensity = Math.Log(option.Func.GetReferenceIntensity(pep)); double sampleIntensity = Math.Log(option.Func.GetSampleIntensity(pep)); double A = (refIntensity + sampleIntensity) / 2; double ratio = Math.Log(option.GetPeptideRatio(pep)); items.Add(new LSPADItem() { LogRatio = ratio, Intensity = A, Tag = pep }); } LSPADItem.CalculatePValue(items); //this.panel.DrawProbabilityRange(maxX, ratios); //this.panel.AddPoints(pplSelected, SelectedColor, "Current Peptide"); //this.panel.AddPoints(pplGroup, GroupColor, "Current Protein"); //this.panel.AddPoints(pplOutlier, OutlierColor, "Outlier"); //this.panel.AddPoints(pplNormal, NormalColor, "Other"); } finally { ZedGraphicExtension.UpdateGraph(this.zgcGraph); } }
public override void Update(object sender, UpdateQuantificationItemEventArgs e) { IQuantificationSummaryOption option = e.Option as IQuantificationSummaryOption; panel.InitGraphPane(title, option.Func.ReferenceKey, option.Func.SampleKey, true, 0.0); IIdentifiedProteinGroup group = e.Item as IIdentifiedProteinGroup; try { var pplNormal = new PointPairList(); var pplSelected = new PointPairList(); var spectra = group.GetPeptides(); var format = new O18QuantificationSummaryItemXmlFormat(); foreach (var pep in spectra) { if (pep.IsEnabled(true) && option.IsPeptideRatioValid(pep)) { string ratioFile = GetRatioFile(option, pep); if (ratioFile == null) { continue; } O18QuantificationSummaryItem item = new O18QuantificationSummaryItemXmlFormat().ReadFromFile(ratioFile); item.CalculateIndividualAbundance(); PointPairList ppl; if (pep.Selected) { ppl = pplSelected; } else { ppl = pplNormal; } foreach (var envelope in item.ObservedEnvelopes) { if (!envelope.Enabled) { continue; } double refIntensity = envelope.SampleAbundance.O16; double sampleIntensity = envelope.SampleAbundance.O18; if (refIntensity == 0.0 || sampleIntensity == 0.0) { continue; } ppl.Add(refIntensity, sampleIntensity); ppl[ppl.Count - 1].Tag = pep; Debug.Assert(ppl[ppl.Count - 1].Tag == pep); } } } this.panel.ClearData(); this.panel.AddPoints(pplSelected, SelectedColor); this.panel.AddPoints(pplNormal, NormalColor); var pplTotal = new PointPairList(); pplTotal.AddRange(pplSelected); pplTotal.AddRange(pplNormal); if (pplTotal.Count > 0) { var maxValue = (from p in pplTotal select Math.Max(p.X, p.Y)).Max() * 1.1; this.panel.XAxis.Scale.Max = maxValue; this.panel.YAxis.Scale.Max = maxValue; var ratio = option.GetProteinRatio(group[0]); PointPairList line = pplTotal.GetRegressionLine(ratio); var lineItem = this.panel.AddCurve(option.GetProteinRatioDescription(group[0]), line, RegressionLineColor, SymbolType.None); lineItem.Label.FontSpec = new FontSpec() { Size = 15, Border = new Border() { IsVisible = false } }; } } finally { ZedGraphicExtension.UpdateGraph(this.zgcGraph); } }
public override void Update(object sender, UpdateQuantificationItemEventArgs e) { IQuantificationSummaryOption option = e.Option as IQuantificationSummaryOption; panel.InitGraphPane(title, option.Func.ReferenceKey, option.Func.SampleKey, true, 0.0); IIdentifiedProteinGroup group = e.Item as IIdentifiedProteinGroup; try { var pplNormal = new PointPairList(); var pplSelected = new PointPairList(); var pplOutlier = new PointPairList(); var spectra = group.GetPeptides(); foreach (var pep in spectra) { if (option.IsPeptideRatioValid(pep)) { PointPairList ppl; if (pep.Selected) { ppl = pplSelected; } else if (option.IsPeptideOutlier(pep)) { ppl = pplOutlier; } else { ppl = pplNormal; } double sampleIntensity = option.Func.GetSampleIntensity(pep); double refIntensity = option.Func.GetReferenceIntensity(pep); ppl.Add(refIntensity, sampleIntensity); ppl[ppl.Count - 1].Tag = pep; Debug.Assert(ppl[ppl.Count - 1].Tag == pep); } } this.panel.ClearData(); this.panel.AddPoints(pplSelected, SelectedColor); this.panel.AddPoints(pplNormal, NormalColor); this.panel.AddPoints(pplOutlier, OutlierColor); var pplTotal = new PointPairList(); pplTotal.AddRange(pplSelected); pplTotal.AddRange(pplNormal); pplTotal.AddRange(pplOutlier); if (pplTotal.Count > 0) { var maxValue = (from p in pplTotal select Math.Max(p.X, p.Y)).Max() * 1.1; this.panel.XAxis.Scale.Max = maxValue; this.panel.YAxis.Scale.Max = maxValue; var ratio = option.GetProteinRatio(group[0]); PointPairList line = pplTotal.GetRegressionLine(ratio); var lineItem = this.panel.AddCurve(option.GetProteinRatioDescription(group[0]), line, RegressionLineColor, SymbolType.None); lineItem.Label.FontSpec = new FontSpec() { Size = 15, Border = new Border() { IsVisible = false } }; } } finally { ZedGraphicExtension.UpdateGraph(this.zgcGraph); } }
public override void Update(object sender, UpdateQuantificationItemEventArgs e) { IQuantificationSummaryOption option = e.Option as IQuantificationSummaryOption; IIdentifiedResult mr = e.Item as IIdentifiedResult; panel.InitGraphPane(title, option.Func.ReferenceKey, option.Func.SampleKey, true, 0.0); try { var pplNormal = new PointPairList(); var pplSelected = new PointPairList(); var pplOutlier = new PointPairList(); var pplGroup = new PointPairList(); var groups = from g in mr where option.IsProteinRatioValid(g[0]) select g; HashSet <IIdentifiedSpectrum> spectra = new HashSet <IIdentifiedSpectrum>(); double maxX = 0.0; PointPairList ppl; foreach (var mpg in groups) { var peptides = from p in mpg.GetPeptides() where option.IsPeptideRatioValid(p) select p; spectra.UnionWith(peptides); foreach (var pep in peptides) { if (pep.Selected) { ppl = pplSelected; } else if (mpg.Selected) { ppl = pplGroup; } else if (option.IsPeptideOutlier(pep)) { ppl = pplOutlier; } else { ppl = pplNormal; } double refIntensity = option.Func.GetReferenceIntensity(pep); double samIntensity = option.Func.GetSampleIntensity(pep); ppl.Add(refIntensity, samIntensity); ppl[ppl.Count - 1].Tag = new Pair <IIdentifiedProteinGroup, IIdentifiedSpectrum>(mpg, pep); maxX = Math.Max(refIntensity, maxX); } } this.panel.ClearData(); this.panel.AddPoints(pplSelected, SelectedColor, "Current Peptide"); this.panel.AddPoints(pplGroup, GroupColor, "Current Protein"); this.panel.AddPoints(pplOutlier, OutlierColor, "Outlier"); this.panel.AddPoints(pplNormal, NormalColor, "Other"); var pplTotal = new PointPairList(); pplTotal.AddRange(pplSelected); pplTotal.AddRange(pplNormal); pplTotal.AddRange(pplOutlier); if (pplTotal.Count > 0) { var maxValue = (from p in pplTotal select Math.Max(p.X, p.Y)).Max() * 1.1; this.panel.XAxis.Scale.Max = maxValue; this.panel.YAxis.Scale.Max = maxValue; var lrrr = pplTotal.GetRegression(); PointPairList line = pplTotal.GetRegressionLine(lrrr.Ratio); var lineItem = this.panel.AddCurve(MyConvert.Format("Ratio={0:0.0000}, R2={1:0.0000}", lrrr.Ratio, lrrr.RSquare), line, Color.Red, SymbolType.None); } } finally { ZedGraphicExtension.UpdateGraph(this.zgcGraph); } }
protected virtual void RefreshAll() { validSpectra = from p in mr.GetSpectra() where option.IsPeptideRatioValid(p) select p; this.pepProMap = this.mr.GetPeptideProteinGroupMap(); this.lvProteins.BeginUpdate(); this.bUpdatingProtein = true; try { if (bFirstLoad) { var allColumns = this.format.ProteinFormat.GetHeader().Split('\t').ToList(); var lvColumns = lvProteins.GetColumnList().ConvertAll(m => m.Text); if (lvColumns.Count > 0) { this.proteinColumns = lvColumns; } else { this.proteinColumns = allColumns; } allColumns = this.format.PeptideFormat.GetHeader().Split('\t').ToList(); lvColumns = lvPeptides.GetColumnList().ConvertAll(m => m.Text); if (lvColumns.Count > 0) { this.peptideColumns = lvColumns; } else { this.peptideColumns = allColumns; } bFirstLoad = false; } FillListViewColumns(this.lvProteins, this.format.ProteinFormat.GetHeader(), this.proteinColumns, this.proteinColumnIndecies); this.lvProteins.Items.Clear(); if (this.mr.Count == 0 || this.mr[0].Count == 0 || this.mr[0][0].Peptides.Count == 0) { return; } FillListViewColumns(this.lvPeptides, this.format.PeptideFormat.GetHeader(), this.peptideColumns, this.peptideColumnIndecies); foreach (IIdentifiedProteinGroup mpg in this.mr) { bool bEnabled = mpg[0].GetSpectra().Find(m => option.IsPeptideRatioValid(m)) != null; if (!bEnabled) { continue; } IIdentifiedProtein mp = mpg[0]; ListViewItem item = this.lvProteins.Items.Add(""); UpdateProteinEntry(item, mpg, 0); } } finally { this.lvProteins.EndUpdate(); this.bUpdatingProtein = false; } if (lvProteins.Items.Count > 0) { lvProteins.Items[0].Selected = true; } else { DoUpdateResult(); } this.btnSave.Enabled = false; this.btnExport.Enabled = true; this.btnView.Enabled = true; }
public override void Update(object sender, UpdateQuantificationItemEventArgs e) { IQuantificationSummaryOption option = e.Option as IQuantificationSummaryOption; panel.InitGraphPane(this.title, option.Func.ReferenceKey, option.Func.SampleKey, true, 0.0); IIdentifiedProteinGroup group = e.Item as IIdentifiedProteinGroup; try { var pplNormal = new PointPairList(); var pplSelected = new PointPairList(); var spectra = group.GetPeptides(); var format = new SilacQuantificationSummaryItemXmlFormat(); foreach (var pep in spectra) { if (option.IsPeptideRatioValid(pep)) { string ratioFile = GetRatioFile(option, pep); if (ratioFile == null) { continue; } var item = format.ReadFromFile(ratioFile); Func <SilacPeakListPair, double> getSamIntensity; Func <SilacPeakListPair, double> getRefIntensity; if (item.SampleIsLight) { getSamIntensity = m => m.LightIntensity; getRefIntensity = m => m.HeavyIntensity; } else { getSamIntensity = m => m.HeavyIntensity; getRefIntensity = m => m.LightIntensity; } PointPairList ppl; if (pep.Selected) { ppl = pplSelected; } else { ppl = pplNormal; } foreach (var envelope in item.ObservedEnvelopes) { if (!envelope.Enabled) { continue; } double refIntensity = getRefIntensity(envelope); double sampleIntensity = getSamIntensity(envelope); if (refIntensity == 0.0 || sampleIntensity == 0.0) { continue; } ppl.Add(refIntensity, sampleIntensity); ppl[ppl.Count - 1].Tag = pep; Debug.Assert(ppl[ppl.Count - 1].Tag == pep); } } } this.panel.ClearData(); this.panel.AddPoints(pplSelected, SelectedColor); this.panel.AddPoints(pplNormal, NormalColor); var pplTotal = new PointPairList(); pplTotal.AddRange(pplSelected); pplTotal.AddRange(pplNormal); if (pplTotal.Count > 0) { var lr = pplTotal.GetRegression(); var lr_text = MyConvert.Format("Ratio={0:0.00}, Correl={1:0.00}, FValue={2:0.00}, FProb={3:E4}", lr.Ratio, lr.RSquare, lr.TValue, lr.PValue); PointPairList line = pplTotal.GetRegressionLine(); var lineItem = this.panel.AddCurve(lr_text, line, RegressionLineColor, SymbolType.None); lineItem.Label.FontSpec = new FontSpec() { Size = 15, Border = new Border() { IsVisible = false } }; } } finally { ZedGraphicExtension.UpdateGraph(this.zgcGraph); } }
public override void Update(object sender, UpdateQuantificationItemEventArgs e) { IQuantificationSummaryOption option = e.Option as IQuantificationSummaryOption; IIdentifiedResult mr = e.Item as IIdentifiedResult; string xTitle = MyConvert.Format("(Log({0}) + Log({1})) / 2", option.Func.ReferenceKey, option.Func.SampleKey); string yTitle = MyConvert.Format("Log(Ratio)"); panel.InitGraphPane(title, xTitle, yTitle, true, 0.0); try { var pplNormal = new PointPairList(); var pplSelected = new PointPairList(); var pplOutlier = new PointPairList(); var pplGroup = new PointPairList(); var groups = from g in mr where g[0].IsEnabled(true) && option.IsProteinRatioValid(g[0]) select g; HashSet <IIdentifiedSpectrum> spectra = new HashSet <IIdentifiedSpectrum>(); double maxX = 0.0; PointPairList ppl; foreach (var mpg in groups) { var peptides = from p in mpg.GetPeptides() where p.IsEnabled(true) && option.IsPeptideRatioValid(p) select p; spectra.UnionWith(peptides); foreach (var pep in peptides) { if (pep.Selected) { ppl = pplSelected; } else if (mpg.Selected) { ppl = pplGroup; } else if (option.IsPeptideOutlier(pep)) { ppl = pplOutlier; } else { ppl = pplNormal; } double refIntensity = Math.Log(option.Func.GetReferenceIntensity(pep)); double sampleIntensity = Math.Log(option.Func.GetSampleIntensity(pep)); double A = (refIntensity + sampleIntensity) / 2; double ratio = Math.Log(option.GetPeptideRatio(pep)); ppl.Add(A, ratio); ppl[ppl.Count - 1].Tag = new Pair <IIdentifiedProteinGroup, IIdentifiedSpectrum>(mpg, pep); maxX = Math.Max(A, maxX); } } this.panel.ClearData(); var ratios = (from pep in spectra let ratio = Math.Log(option.GetPeptideRatio(pep)) orderby ratio select ratio).ToList(); this.panel.DrawProbabilityRange(maxX, ratios); this.panel.AddPoints(pplSelected, SelectedColor, "Current Peptide"); this.panel.AddPoints(pplGroup, GroupColor, "Current Protein"); this.panel.AddPoints(pplOutlier, OutlierColor, "Outlier"); this.panel.AddPoints(pplNormal, NormalColor, "Other"); } finally { ZedGraphicExtension.UpdateGraph(this.zgcGraph); } }