private void CreateObservedIsotopicProfilePlot() { XYData xydata = new XYData(); if (Workflow.MassSpectrumXYData == null) { xydata.Xvalues = Workflow.MassSpectrumXYData == null ? new double[] { 400, 1500 } : Workflow.MassSpectrumXYData.Xvalues; xydata.Yvalues = Workflow.MassSpectrumXYData == null ? new double[] { 0, 0 } : Workflow.MassSpectrumXYData.Yvalues; } else { xydata.Xvalues = Workflow.MassSpectrumXYData.Xvalues; xydata.Yvalues = Workflow.MassSpectrumXYData.Yvalues; xydata = xydata.TrimData(Workflow.Result.Target.MZ - 100, Workflow.Result.Target.MZ + 100); } if (Workflow.Result.IsotopicProfile != null) { MsGraphMaxY = Workflow.Result.IsotopicProfile.getMostIntensePeak().Height; } else { MsGraphMaxY = (float)xydata.getMaxY(); } string msGraphTitle = Workflow.Result.Target.Code + "; m/z " + Workflow.Result.Target.MZ.ToString("0.0000") + "; z=" + Workflow.Result.Target.ChargeState; PlotModel plotModel = new PlotModel(msGraphTitle); plotModel.TitleFontSize = 11; plotModel.Padding = new OxyThickness(0); plotModel.PlotMargins = new OxyThickness(0); plotModel.PlotAreaBorderThickness = 0; var series = new OxyPlot.Series.LineSeries(); series.MarkerSize = 1; series.Color = OxyColors.Black; for (int i = 0; i < xydata.Xvalues.Length; i++) { series.Points.Add(new DataPoint(xydata.Xvalues[i], xydata.Yvalues[i])); } var xAxis = new LinearAxis(AxisPosition.Bottom, "m/z"); xAxis.Minimum = MsGraphMinX; xAxis.Maximum = MsGraphMaxX; var yAxis = new LinearAxis(AxisPosition.Left, "Intensity"); yAxis.Minimum = 0; yAxis.AbsoluteMinimum = 0; yAxis.Maximum = MsGraphMaxY + MsGraphMaxY * 0.05; yAxis.StringFormat = "0.0E0"; //yAxis.Maximum = maxIntensity + (maxIntensity * .05); //yAxis.AbsoluteMaximum = maxIntensity + (maxIntensity * .05); yAxis.AxisChanged += OnYAxisChange; xAxis.AxislineStyle = LineStyle.Solid; xAxis.AxislineThickness = 1; yAxis.AxislineStyle = LineStyle.Solid; yAxis.AxislineThickness = 1; plotModel.Series.Add(series); plotModel.Axes.Add(xAxis); plotModel.Axes.Add(yAxis); ObservedIsoPlot = plotModel; }
private void CreateChromatogramPlot() { var centerScan = Workflow.Result.Target.ScanLCTarget; ChromGraphMinX = centerScan - ChromGraphXWindowWidth / 2; ChromGraphMaxX = centerScan + ChromGraphXWindowWidth / 2; XYData xydata = new XYData(); if (Workflow.ChromatogramXYData == null) { xydata.Xvalues = Workflow.ChromatogramXYData == null ? new double[] { 1, Run.MaxLCScan } : Workflow.ChromatogramXYData.Xvalues; xydata.Yvalues = Workflow.ChromatogramXYData == null ? new double[] { 0, 0 } : Workflow.ChromatogramXYData.Yvalues; } else { xydata.Xvalues = Workflow.ChromatogramXYData.Xvalues; xydata.Yvalues = Workflow.ChromatogramXYData.Yvalues; } string graphTitle = "TargetID=" + Workflow.Result.Target.ID + "; m/z " + Workflow.Result.Target.MZ.ToString("0.0000") + "; z=" + Workflow.Result.Target.ChargeState; PlotModel plotModel = new PlotModel(graphTitle); plotModel.TitleFontSize = 11; plotModel.Padding = new OxyThickness(0); plotModel.PlotMargins = new OxyThickness(0); plotModel.PlotAreaBorderThickness = 0; var series = new OxyPlot.Series.LineSeries(); series.MarkerSize = 1; series.Color = OxyColors.Black; for (int i = 0; i < xydata.Xvalues.Length; i++) { series.Points.Add(new DataPoint(xydata.Xvalues[i], xydata.Yvalues[i])); } var xAxis = new LinearAxis(AxisPosition.Bottom, "scan"); xAxis.Minimum = ChromGraphMinX; xAxis.Maximum = ChromGraphMaxX; var yAxis = new LinearAxis(AxisPosition.Left, "Intensity"); yAxis.Minimum = 0; yAxis.AbsoluteMinimum = 0; var maxY = xydata.getMaxY(); yAxis.Maximum = maxY + maxY * 0.05; yAxis.AxisChanged += OnYAxisChange; xAxis.AxislineStyle = LineStyle.Solid; xAxis.AxislineThickness = 1; yAxis.AxislineStyle = LineStyle.Solid; yAxis.AxislineThickness = 1; plotModel.Series.Add(series); plotModel.Axes.Add(xAxis); plotModel.Axes.Add(yAxis); ChromatogramPlot = plotModel; }
private void CreateMsPlotForScanByScanAnalysis(ScanSet scanSet) { XYData xydata = new XYData(); xydata.Xvalues = MassSpecXyData == null ? new double[] { 400, 1500 } : MassSpecXyData.Xvalues; xydata.Yvalues = MassSpecXyData == null ? new double[] { 0, 0 } : MassSpecXyData.Yvalues; string msGraphTitle = "Observed MS - Scan: " + scanSet; MsGraphMaxY = (float)xydata.getMaxY(MsGraphMinX, MsGraphMaxX); PlotModel plotModel = new PlotModel(msGraphTitle); plotModel.TitleFontSize = 11; plotModel.Padding = new OxyThickness(0); plotModel.PlotMargins = new OxyThickness(0); plotModel.PlotAreaBorderThickness = 0; var series = new OxyPlot.Series.LineSeries(); series.MarkerSize = 1; series.Color = OxyColors.Black; for (int i = 0; i < xydata.Xvalues.Length; i++) { series.Points.Add(new DataPoint(xydata.Xvalues[i], xydata.Yvalues[i])); } var xAxis = new LinearAxis(AxisPosition.Bottom, "m/z"); xAxis.Minimum = MsGraphMinX; xAxis.Maximum = MsGraphMaxX; var yAxis = new LinearAxis(AxisPosition.Left, "Intensity"); yAxis.Minimum = 0; yAxis.AbsoluteMinimum = 0; yAxis.Maximum = MsGraphMaxY + MsGraphMaxY * 0.05; //yAxis.Maximum = maxIntensity + (maxIntensity * .05); //yAxis.AbsoluteMaximum = maxIntensity + (maxIntensity * .05); yAxis.AxisChanged += OnYAxisChange; yAxis.StringFormat = "0.0E0"; xAxis.AxislineStyle = LineStyle.Solid; xAxis.AxislineThickness = 1; yAxis.AxislineStyle = LineStyle.Solid; yAxis.AxislineThickness = 1; plotModel.Series.Add(series); plotModel.Axes.Add(xAxis); plotModel.Axes.Add(yAxis); ObservedIsoPlot = plotModel; }
private void GetMassSpectrumForCurrentResult() { if (ObservedIsoPlot==null) { ObservedIsoPlot= CreateObservedIsoPlot(); } XYData xydata = new XYData(); if (CurrentResultInfo.MassSpectrumXYData == null) { xydata.Xvalues = CurrentResultInfo.MassSpectrumXYData == null ? new double[] { 400, 1500 } : CurrentResultInfo.MassSpectrumXYData.Xvalues; xydata.Yvalues = CurrentResultInfo.MassSpectrumXYData == null ? new double[] { 0, 0 } : CurrentResultInfo.MassSpectrumXYData.Yvalues; } else { xydata.Xvalues = CurrentResultInfo.MassSpectrumXYData.Xvalues; xydata.Yvalues = CurrentResultInfo.MassSpectrumXYData.Yvalues; xydata = xydata.TrimData(CurrentResultInfo.Result.Target.MZ - 2, CurrentResultInfo.Result.Target.MZ + 8); } double msGraphMaxY; if (CurrentResultInfo.Result.IsotopicProfile != null) { msGraphMaxY = CurrentResultInfo.Result.IsotopicProfile.getMostIntensePeak().Height; } else { msGraphMaxY = (float)xydata.getMaxY(); } string msGraphTitle = "TargetID= " + CurrentResultInfo.Result.Target.ID + "; m/z " + CurrentResultInfo.Result.Target.MZ.ToString("0.0000") + "; z=" + CurrentResultInfo.Result.Target.ChargeState + "; Scan= " + CurrentResultInfo.Result.ScanSet??"[No scan selected]"; ObservedIsoPlot.Series.Clear(); var series = new OxyPlot.Series.LineSeries(); series.MarkerSize = 1; series.Color = OxyColors.Black; for (int i = 0; i < xydata.Xvalues.Length; i++) { series.Points.Add(new DataPoint(xydata.Xvalues[i], xydata.Yvalues[i])); } ObservedIsoPlot.Axes[1].Maximum = msGraphMaxY + msGraphMaxY * 0.05; ObservedIsoPlot.Series.Add(series); }