public static Dictionary <string, List <Quant> > Quant(XICGet5 xic, SQTLight theScn, double theoreticalMH, SignalGenerator isotopicSignal, int scnNo, XQuantClusteringParameters myParams) { Dictionary <string, List <Quant> > theResults = new Dictionary <string, List <Quants.Quant> >(); //We will obtain the isotopic signal and obtain the XIC according to the most intense isotope List <double> isoSignal = isotopicSignal.GetSignal(5, theoreticalMH, 0); int maximumSignalIsotope = isoSignal.IndexOf(isoSignal.Max()); foreach (int z in myParams.AcceptableChargeStates) { double pMass = ((double)z - 1.0) * 1.007276466; double iMass = (maximumSignalIsotope * 1.00335); double mz = (theoreticalMH + pMass + iMass) / (double)z; double[,] ic = xic.GetXIC3(Math.Round(mz, 4), myParams.ClusteringPPM, scnNo); if (ic != null) { Quant q = new Quants.Quant(ic, theScn.ScanNumber, z, Math.Round(mz, 4)); if (theResults.ContainsKey(theScn.PeptideSequenceCleaned)) { theResults[theScn.PeptideSequenceCleaned].Add(q); } else { theResults.Add(theScn.PeptideSequenceCleaned, new List <Quants.Quant>() { q }); } } } return(theResults); }