예제 #1
0
        public MoleculeMassOffset SubtractLosses(MoleculeMassOffset moleculeMassOffset, TransitionLosses transitionLosses)
        {
            if (transitionLosses == null)
            {
                return(moleculeMassOffset);
            }

            foreach (var loss in transitionLosses.Losses)
            {
                moleculeMassOffset = moleculeMassOffset.Minus(FragmentedMolecule.ToMoleculeMassOffset(loss.Loss));
            }

            return(moleculeMassOffset);
        }
예제 #2
0
        public static Molecule AddFragmentLosses(Molecule molecule, IList <FragmentLoss> fragmentLosses,
                                                 MassType massType, ref double unexplainedMass)
        {
            MoleculeMassOffset moleculeMassOffset = new MoleculeMassOffset(molecule, unexplainedMass, unexplainedMass);

            foreach (var fragmentLoss in fragmentLosses)
            {
                moleculeMassOffset = moleculeMassOffset.Minus(ToMoleculeMassOffset(fragmentLoss));
            }

            if (massType.IsMonoisotopic())
            {
                unexplainedMass = moleculeMassOffset.MonoMassOffset;
            }
            else
            {
                unexplainedMass = moleculeMassOffset.AverageMassOffset;
            }
            return(moleculeMassOffset.Molecule);
        }