private void UpdatePeptideColor(IIdentifiedSpectrum mph, ListViewItem item) { if (option.IsPeptideOutlier(mph)) { item.BackColor = OUTLIER_COLOR; } else { item.BackColor = item.ListView.BackColor; } }
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); } }
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); } }