public AnalysisRow (object queryRow, DataFilter dataFilter) { DataFilter = dataFilter; Analysis = (DataModel.Analysis) queryRow; }
public AnalysisRow(object queryRow, DataFilter dataFilter) { DataFilter = dataFilter; Analysis = (DataModel.Analysis)queryRow; }
public PeptideSpectrumMatchRow(object[] queryRow, DataFilter dataFilter, IList<Grouping<GroupBy>> checkedGroupings) { DataFilter = dataFilter; int column = -1; Spectrum = (DataModel.Spectrum) queryRow[++column]; Source = (DataModel.SpectrumSource) queryRow[++column]; Group = (DataModel.SpectrumSourceGroup) queryRow[++column]; Analysis = (DataModel.Analysis) queryRow[++column]; PeptideSpectrumMatchId = Convert.ToInt64(queryRow[++column]); Rank = Convert.ToInt32(queryRow[++column]); Charge = Convert.ToInt32(queryRow[++column]); QValue = Convert.ToDouble(queryRow[++column]); ObservedMass = Convert.ToDouble(queryRow[++column]); double monoisotopicError = Convert.ToDouble(queryRow[++column]); double averageError = Convert.ToDouble(queryRow[++column]); // if absolute value of monoisotopic error is less than absolute value of average error // or if the monoisotopic error is nearly a multiple of a neutron mass, // then treat the mass as monoisotopic if (PeptideSpectrumMatch.GetSmallerMassError(monoisotopicError, averageError) == monoisotopicError) ExactMass = ObservedMass - monoisotopicError; else ExactMass = ObservedMass - averageError; string modificationString = (string) queryRow[++column]; ModifiedSequence = (string) queryRow[++column]; if (!String.IsNullOrEmpty(modificationString) && modificationString.Contains('@')) { // build modified sequence var modifications = modificationString.Split(' ').Last() .Split(',') .Select(o => o.Split('@')) .Select(o => new { Offset = Convert.ToInt32(o[1]), DeltaMass = Convert.ToDouble(o[0]) }) .OrderByDescending(o => o.Offset); var sb = new StringBuilder(ModifiedSequence); string formatString = "[{0}]"; foreach (var mod in modifications) if (mod.Offset == int.MinValue) sb.Insert(0, String.Format(formatString, mod.DeltaMass)); else if (mod.Offset == int.MaxValue) sb.AppendFormat(formatString, mod.DeltaMass); else sb.Insert(mod.Offset + 1, String.Format(formatString, mod.DeltaMass)); ModifiedSequence = sb.ToString(); } // if not grouping by Spectrum, use Spectrum as the key column if (checkedGroupings.Count(o => o.Mode == GroupBy.Spectrum) == 0) { Key = Spectrum.NativeID; // try to abbreviate, e.g. "controllerType=0 controllerNumber=1 scan=123" -> "0.1.123" try { Key = pwiz.CLI.msdata.id.abbreviate(Key); } catch { } // if not grouping by Source, prepend Spectrum.Source to the NativeID if (checkedGroupings.Count(o => o.Mode == GroupBy.Source) == 0) Key = (Group.Name + "/" + Source.Name + "/" + Key).Replace("//", "/"); } else Key = Rank.ToString(); }