public Peak(double mz, double intensity, IonSpectrum spectrum) { this.mz = mz; this.intensity = intensity; this.spectrum = spectrum; this.consecutiveNeutralLossIndex = 0; }
public static bool AreEqual(IonSpectrum a, IonSpectrum b) { if (a.lineIndex_begin == b.lineIndex_begin && a.lineIndex_end == b.lineIndex_end && a.title == b.title && a.pepmass == b.pepmass && a.pepmass_intensity == b.pepmass_intensity && a.charge == b.charge && a.z == b.z && a.retentionTime == b.retentionTime && a.scans == b.scans && a.isPositiveIonMode == b.isPositiveIonMode) { if (a.peaks.Count == b.peaks.Count) { return true; } } return false; }
public SpectrumViewer(IonSpectrum spectrum, List<Peak> peaks) { InitializeComponent(); this.Activate(); this.Focus(); this.Topmost = true; this.Title = "Spectrum Viewer - " + spectrum.title; // Set up LineSeries Chart - see example at http://wpf.codeplex.com/discussions/232267 this.spectrum = spectrum; DataContext = this; _data = new ObservableCollection<KeyValuePair<double, double>>(); foreach (Peak p in spectrum.peaks) data.Add(new KeyValuePair<double, double>(p.mz, p.intensity)); _highlightedPeaks = new ObservableCollection<KeyValuePair<double, double>>(); foreach (Peak p in peaks) _highlightedPeaks.Add(new KeyValuePair<double, double>(p.mz, p.intensity)); }
public IonSpectrum getIonSpectrum2() { IonSpectrum expectedSpectrum2 = new IonSpectrum(); expectedSpectrum2.title = "File565 Spectrum2 scans: 4"; expectedSpectrum2.pepmass = "506.38400"; expectedSpectrum2.pepmass_intensity = "3076.27000"; expectedSpectrum2.charge = "2+"; expectedSpectrum2.retentionTime = 2; expectedSpectrum2.scans = 4; expectedSpectrum2.AddPeak(157.043, 5.19905); expectedSpectrum2.AddPeak(175.127, 5.34553); expectedSpectrum2.AddPeak(202.957, 4.52134); expectedSpectrum2.AddPeak(208.036, 2.51525); expectedSpectrum2.AddPeak(216.957, 2.84039); expectedSpectrum2.AddPeak(221.419, 3.91015); expectedSpectrum2.AddPeak(223.048, 4.78027); expectedSpectrum2.AddPeak(228.053, 3.37681); expectedSpectrum2.AddPeak(228.835, 1.09891); expectedSpectrum2.AddPeak(230.047, 4.48171); expectedSpectrum2.AddPeak(246.991, 7.47876); expectedSpectrum2.AddPeak(260.046, 4.58196); expectedSpectrum2.AddPeak(265.090, 5.2341); expectedSpectrum2.AddPeak(265.811, 12.9218); expectedSpectrum2.AddPeak(268.218, 3.58545); expectedSpectrum2.AddPeak(269.078, 5.97038); return expectedSpectrum2; }
public IonSpectrum getIonSpectrum1() { IonSpectrum expectedSpectrum1 = new IonSpectrum(); expectedSpectrum1.title = "File565 Spectrum1 scans: 3"; expectedSpectrum1.pepmass = "508.90073"; expectedSpectrum1.pepmass_intensity = "1994.07000"; expectedSpectrum1.charge = "2+"; expectedSpectrum1.retentionTime = 2; expectedSpectrum1.scans = 3; expectedSpectrum1.AddPeak(170.084, 1.30444); expectedSpectrum1.AddPeak(195.201, 3.68346); expectedSpectrum1.AddPeak(202.326, 7.06028); expectedSpectrum1.AddPeak(211.204, 3.53445); expectedSpectrum1.AddPeak(213.118, 2.86394); expectedSpectrum1.AddPeak(221.046, 8.60954); expectedSpectrum1.AddPeak(239.047, 2.50649); return expectedSpectrum1; }
// //You can use the following additional attributes as you write your tests: // public static bool AreSpectraEqual(IonSpectrum spectrum1, IonSpectrum spectrum2) { if (spectrum1 == null || spectrum2 == null) { if (spectrum1 == spectrum2) return true; else return false; } if (spectrum1.title != spectrum2.title) return false; if (spectrum1.pepmass != spectrum2.pepmass) return false; if (spectrum1.charge != spectrum2.charge) return false; if (spectrum1.retentionTime != spectrum2.retentionTime) return false; if (spectrum1.scans != spectrum2.scans) return false; if (spectrum1.peaks.Count != spectrum2.peaks.Count) return false; for (int i = 0; i < spectrum1.peaks.Count; i++) { if (spectrum1.peaks[i].mz != spectrum2.peaks[i].mz) return false; if (spectrum1.peaks[i].intensity != spectrum2.peaks[i].intensity) return false; } return true; }
public IonSpectrum getTestIonSpectrum() { IonSpectrum spectrum = new IonSpectrum(); spectrum.charge = "2+"; // Add a phosphate neutral loss series spectrum.AddPeak(228.2, 100); spectrum.AddPeak(179.2, 90); spectrum.AddPeak(130.3, 76); // Add a near-miss phosphate peaks spectrum.AddPeak(179.39, 84); spectrum.AddPeak(132.0, 80); // Add some random noise spectrum.AddPeak(140.17, 48); spectrum.AddPeak(130.1, 10); spectrum.AddPeak(77, 33); spectrum.AddPeak(61.9, 2); spectrum.AddPeak(35, 11); spectrum.AddPeak(33, 19); spectrum.AddPeak(31, 7); spectrum.AddPeak(22, 24); return spectrum; }
public IonSpectrum parseSpectrum(int ionStartLineIndex, System.IO.StreamReader sr) { IonSpectrum spectrum = null; bool isInsideIonSpectrum = false; int i = ionStartLineIndex; if (i < 0) return null; string line = ""; isInsideIonSpectrum = true; // We're assuming the passed "sr" variable is currently AT the "BEGIN IONS" line spectrum = new IonSpectrum(); spectrum.lineIndex_begin = i; while((line = sr.ReadLine()) != null) { i++; if (isInsideIonSpectrum) { if (line.Contains("TITLE=")) spectrum.title = line.Substring(6); else if (line.Contains("PEPMASS=")) { string[] pepmassInfo = line.Substring(8).Split(' '); if (pepmassInfo.Length == 2) { spectrum.pepmass = pepmassInfo[0]; spectrum.pepmass_intensity = pepmassInfo[1]; } else if (pepmassInfo.Length == 1) spectrum.pepmass = pepmassInfo[0]; } else if (line.Contains("CHARGE=")) spectrum.charge = line.Substring(7); else if (line.Contains("RTINSECONDS=")) spectrum.retentionTime = Double.Parse(line.Substring(12)); else if (line.Contains("SCANS=")) spectrum.scans = Int32.Parse(line.Substring(6)); else if (line.Trim().Equals("END IONS")) { isInsideIonSpectrum = false; spectrum.lineIndex_end = i; break; } else { string[] tokens = line.Trim().Split(' '); if (tokens.Length != 2) Console.WriteLine("Failed to parse the line, " + line + ". Skipping line."); else { try { double mz = Double.Parse(tokens[0]); double intensity = Double.Parse(tokens[1]); spectrum.AddPeak(mz, intensity); } catch { Console.WriteLine("Failed to parse the line, " + line + ". Skipping line."); } } } } } if (isInsideIonSpectrum) { Console.WriteLine("Warning: An ion's MS2 spectrum was not closed by the line, END IONS."); spectrum.lineIndex_end = -1; } return spectrum; }