示例#1
0
        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);
        }