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); }
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); }