Пример #1
0
        public void SettingsChangeMassCalcProps()
        {
            SrmDocument docFasta = CreateMixedDoc();
            SrmSettings settings = docFasta.Settings;

            // Use average precursor masses
            SrmDocument docFasta2 = docFasta.ChangeSettings(settings.ChangeTransitionPrediction(
                                                                p => p.ChangePrecursorMassType(MassType.Average)));

            // Average masses should be heavier that monoisotipic, and transitions should be unchanged
            CheckMasses(docFasta, docFasta2, (before, after) => Assert.IsTrue(before < after), Assert.AreEqual);

            // Use average fragment masses
            settings = docFasta2.Settings.ChangeTransitionInstrument(instrument => instrument.ChangeMaxMz(1501)); // Keep all the new heavy transitions
            SrmDocument docFasta3 = docFasta2.ChangeSettings(settings.ChangeTransitionPrediction(
                                                                 p => p.ChangeFragmentMassType(MassType.Average)));

            // Precursor masses should not have changed, and transitions should be heavier
            CheckMasses(docFasta2, docFasta3, Assert.AreEqual, (before, after) => Assert.IsTrue(before < after));

            // Change both back to all monoisotopic
            settings = docFasta3.Settings;
            SrmDocument docFasta4 = docFasta3.ChangeSettings(settings.ChangeTransitionPrediction(
                                                                 p => p.ChangePrecursorMassType(MassType.Monoisotopic).ChangeFragmentMassType(MassType.Monoisotopic)));

            // This should return the masses to their original values
            CheckMasses(docFasta, docFasta4, Assert.AreEqual, Assert.AreEqual);

            // TODO: Static modifications
        }