Пример #1
0
        /// <summary>
        /// Get the number of proteoform sequences possible with the provided number of dynamic modifications
        /// </summary>
        /// <param name="nDynMods"></param>
        /// <returns></returns>
        public double GetNumProteoformSequencesByNumMods(int nDynMods)
        {
            if (nDynMods < 1 || nDynMods > ModificationParams.MaxNumDynModsPerSequence)
            {
                return(0);
            }

            var numModCombs  = _graph[_index].Length;
            var nProteoforms = 0d;

            for (var modIndex = 0; modIndex < numModCombs; modIndex++)
            {
                var modCombs = ModificationParams.GetModificationCombination(_graph[_index][modIndex].ModificationCombinationIndex);
                if (modCombs.GetNumModifications() < nDynMods)
                {
                    continue;
                }
                if (modCombs.GetNumModifications() > nDynMods)
                {
                    break;
                }

                nProteoforms += GetNumProteoformSequences(modIndex);
                //if (nProteoforms > double.MaxValue) return double.MaxValue; // overflow
            }
            return(nProteoforms);
        }
Пример #2
0
        /// <summary>
        /// Get the modification combinations in the current sequence graph
        /// </summary>
        /// <returns></returns>
        public ModificationCombination[] GetModificationCombinations()
        {
            var numModCombs = _graph[_index].Length;
            var modCombs    = new ModificationCombination[numModCombs];

            for (var modIndex = 0; modIndex < numModCombs; modIndex++)
            {
                modCombs[modIndex] = ModificationParams.GetModificationCombination(_graph[_index][modIndex].ModificationCombinationIndex);
            }
            return(modCombs);
        }
Пример #3
0
        public void TestModificationParams()
        {
            var methodName = MethodBase.GetCurrentMethod().Name;
            ShowStarting(methodName);

            var modifications = new[] { Modification.Acetylation, Modification.Phosphorylation, Modification.Oxidation}; //, Modification.PyroGluQ };
            var modParams = new ModificationParams(modifications, 3);
            int numCombinations = modParams.NumModificationCombinations;
            for (int modCombIndex = 0; modCombIndex < numCombinations; modCombIndex++)
            {
                var modCombination = modParams.GetModificationCombination(modCombIndex);
                Console.WriteLine("{0}: {1} {2} {3}", modCombIndex, modCombination, modCombination.Composition, modCombination.Composition.Mass);
            }

            Console.WriteLine(modParams.GetModificationCombinationIndex(8, 0));
            Console.WriteLine(modParams.GetModificationCombinationIndex(19, 1));
        }