public IsotopicProfile GetIsotopePattern(string empiricalFormula, int chargeState)
        {
            _elementTable = EmpiricalFormulaUtilities.ParseEmpiricalFormulaString(empiricalFormula);


            AddElementsToReferenceTable();


            var frequencyData = new double[2 * _mercuryArraySize + 1];

            double monoIsotopicMass = 0;
            double averageMass      = 0;

            GetMonoAndAverageMass(_elementTable, out monoIsotopicMass, out averageMass);

            CalculateFrequencies(_mercuryArraySize, chargeState, ref frequencyData);

            Apodize(ApodizationType, _mercuryArraySize, averageMass, chargeState, ref frequencyData);

            Realft(ref frequencyData);

            var intensityVals = new List <double>();
            var mzVals        = new List <double>();


            for (var i = _mercuryArraySize / 2 + 1; i <= _mercuryArraySize; i++)
            {
                var mz        = (i - _mercuryArraySize - 1) / _pointsPerAtomicMassUnit + monoIsotopicMass / chargeState + Globals.PROTON_MASS;
                var intensity = frequencyData[2 * i - 1];

                mzVals.Add(mz);
                intensityVals.Add(intensity);
            }

            for (var i = 1; i <= _mercuryArraySize / 2; i++)
            {
                var mz        = (i - 1) / _pointsPerAtomicMassUnit + monoIsotopicMass / chargeState + Globals.PROTON_MASS;
                var intensity = frequencyData[2 * i - 1];

                mzVals.Add(mz);
                intensityVals.Add(intensity);
            }

            //StringBuilder sb = new StringBuilder();
            //for (int i = 0; i < intensityVals.Count; i++)
            //{
            //    sb.Append(mzVals[i] + "\t" + intensityVals[i] + "\n");
            //}

            //Console.WriteLine(sb.ToString());

            //Console.WriteLine();
            //Console.WriteLine("Monomass= " + monoIsotopicMass.ToString("0.000000"));
            //Console.WriteLine("monoMZ= " + (monoIsotopicMass/chargeState + Globals.PROTON_MASS));
            //Console.WriteLine("Average mass= " + averageMass.ToString("0.000000"));

            return(null);
        }
        public void parseUnimodStyleFormulaTest4()
        {
            var formula = @"H32C34N4O4Fe";

            var formulaDictionary = EmpiricalFormulaUtilities.ParseEmpiricalFormulaString(formula);

            Assert.AreEqual(34, formulaDictionary["C"]);
            Assert.AreEqual(32, formulaDictionary["H"]);
            Assert.AreEqual(1, formulaDictionary["Fe"]);
        }
        public void parseUnimodStyleFormulaTest1()
        {
            var formula           = @"H(-3) N(-1)";
            var formulaDictionary = EmpiricalFormulaUtilities.ParseEmpiricalFormulaString(formula);

            Assert.AreEqual(-3, formulaDictionary["H"]);
            Assert.AreEqual(-1, formulaDictionary["N"]);

            var parsedFormula = EmpiricalFormulaUtilities.GetEmpiricalFormulaFromElementTable(formulaDictionary);
        }
        public void ParseUnimodStyleTest5()
        {
            var formula = "H(-3) 2H(3) C(-1) 13C O 15N(10)";

            var formulaDictionary = EmpiricalFormulaUtilities.ParseEmpiricalFormulaString(formula);

            Assert.AreEqual(-1, formulaDictionary["C"]);
            Assert.AreEqual(-3, formulaDictionary["H"]);
            Assert.AreEqual(1, formulaDictionary["13C"]);
            Assert.AreEqual(10, formulaDictionary["15N"]);
        }
        public void parseUnimodStyleFormulaTest2A()
        {
            var formula = @"H26 2H(8) C20 N4 O5 S";

            var formulaDictionary = EmpiricalFormulaUtilities.ParseEmpiricalFormulaString(formula);


            Assert.AreEqual(8, formulaDictionary["2H"]);
            Assert.AreEqual(26, formulaDictionary["H"]);
            Assert.AreEqual(1, formulaDictionary["S"]);


            var parsedFormula = EmpiricalFormulaUtilities.GetEmpiricalFormulaFromElementTable(formulaDictionary);
        }
Exemple #6
0
        private void CalculateMZValuesForLabeledProfile(IsotopicProfile iso, string empiricalFormula, string elementLabelled, int chargeState, int lightIsotope, int heavyIsotope)
        {
            var elementTable = EmpiricalFormulaUtilities.ParseEmpiricalFormulaString(empiricalFormula);

            var numLabelledAtoms = elementTable[elementLabelled];


            for (var i = 0; i < iso.Peaklist.Count; i++)
            {
                var keyLightIsotope = elementLabelled + lightIsotope;
                var keyHeavyIsotope = elementLabelled + heavyIsotope;

                var lightIsotopeMass = Constants.Elements[elementLabelled].IsotopeDictionary[keyLightIsotope].Mass;
                var heavyIsotopeMass = Constants.Elements[elementLabelled].IsotopeDictionary[keyHeavyIsotope].Mass;

                var massDiff = heavyIsotopeMass - lightIsotopeMass;


                var monoMZ = iso.MonoIsotopicMass / chargeState + Globals.PROTON_MASS;

                var peakMZIfUnlabelled = monoMZ + (i * Globals.MASS_DIFF_BETWEEN_ISOTOPICPEAKS) / chargeState;

                var monoPeakFullyLabelled = monoMZ + massDiff * numLabelledAtoms / chargeState;

                var peakMZBasedOnLabeled = monoPeakFullyLabelled -
                                           (numLabelledAtoms - i) * Globals.MASS_DIFF_BETWEEN_ISOTOPICPEAKS /
                                           chargeState;


                int peaksToUse;
                if (i > numLabelledAtoms)
                {
                    peaksToUse = numLabelledAtoms;
                }
                else
                {
                    peaksToUse = i;
                }


                iso.Peaklist[i].XValue = peakMZBasedOnLabeled * peaksToUse / numLabelledAtoms +
                                         peakMZIfUnlabelled * (numLabelledAtoms - peaksToUse) / numLabelledAtoms;
            }
        }
Exemple #7
0
        public void TempTest1()
        {
            var code = "FEQDGENYTGTIDGNMGAYAR";

            var peptideUtils = new PeptideUtils();

            var empiricalFormula = peptideUtils.GetEmpiricalFormulaForPeptideSequence(code);

            var monomass = peptideUtils.GetMonoIsotopicMassForPeptideSequence(code);

            var mztheo = monomass / 2 + DeconTools.Backend.Globals.PROTON_MASS;

            Console.WriteLine(monomass + "\t" + mztheo);


            var formula = EmpiricalFormulaUtilities.ParseEmpiricalFormulaString("H(3) C(2) N O");

            var revisedFormula = EmpiricalFormulaUtilities.GetEmpiricalFormulaFromElementTable(formula);


            var iodoMass = EmpiricalFormulaUtilities.GetMonoisotopicMassFromEmpiricalFormula(revisedFormula);

            Console.WriteLine("iodomass= " + iodoMass);
        }