Пример #1
0
            public MassDistribution GetMassDistribution(Molecule molecule, double massShift, int charge)
            {
                var emptyMassDistribution = new MassDistribution(MassResolution, MinAbundance);
                var massDistribution      = emptyMassDistribution;

                foreach (var entry in molecule)
                {
                    massDistribution = massDistribution.Add(emptyMassDistribution.Add(IsotopeAbundances[entry.Key]).Multiply(entry.Value));
                }
                if (charge != 0 || massShift != 0)
                {
                    massDistribution = massDistribution.OffsetAndDivide(massShift - charge * BioMassCalc.MassElectron,
                                                                        Math.Max(1, Math.Abs(charge)));
                }
                return(massDistribution);
            }
Пример #2
0
// ReSharper disable once ParameterTypeCanBeEnumerable.Local
        private MassDistribution GetMzDistribution(Molecule molecule, int charge, IsotopeAbundances abundances, double unexplainedMass, bool isMassH)
        {
            // Low resolution to get back only peaks at Dalton (i.e. neutron) boundaries
            var md = new MassDistribution(_massResolution, _minimumAbundance);
            var result = md;
            foreach (var element in molecule)
            {
                result = result.Add(md.Add(abundances[element.Key]).Multiply(element.Value));
            }
            return result.OffsetAndDivide(unexplainedMass + charge* (isMassH ? BioMassCalc.MassProton : -BioMassCalc.MassElectron), charge);
        }
Пример #3
0
 public MassDistribution GetMassDistribution(Molecule molecule, int charge)
 {
     var md = new MassDistribution(MassResolution, .00001);
     var result = md;
     foreach (var element in molecule)
     {
         result = result.Add(md.Add(IsotopeAbundances[element.Key]).Multiply(element.Value));
     }
     if (charge != 0)
     {
         result = result.OffsetAndDivide(charge * ProtonMass, charge);
     }
     return result;
 }