Example #1
0
        private static void AddMod(StaticMod mod, int?id, bool structural, bool hidden)
        {
            // Add to dictionary by name.
            Dictionary <string, StaticMod> dictNames;

            if (structural)
            {
                dictNames = hidden ? DictHiddenStructuralModNames : DictStructuralModNames;
            }
            else
            {
                dictNames = hidden ? DictHiddenIsotopeModNames : DictIsotopeModNames;
            }
            dictNames.Add(mod.Name, mod);

            bool allAas            = mod.AAs == null;
            IEnumerable <char> aas = allAas ? AMINO_ACIDS : mod.AminoAcids;

            foreach (char aa in aas)
            {
                // Add to mass lookup.
                MassLookup.Add(aa, mod, structural, true);

                // Add to dictionary by ID.
                if (id == null)
                {
                    continue;
                }
                SetUniModIds.Add(id.Value);
                var idKey = new UniModIdKey
                {
                    Id       = (int)id,
                    Aa       = aa,
                    AllAas   = allAas,
                    Terminus = mod.Terminus
                };
                if (!DictUniModIds.ContainsKey(idKey))
                {
                    DictUniModIds.Add(idKey, mod);
                }
            }

            // Add to precision lookup.
            if (mod.PrecisionRequired > 1 && mod.MonoisotopicMass.HasValue)
            {
                foreach (var aa in mod.AminoAcids)
                {
                    DictRequiredPrecision[PrecisionLookupString(aa, mod.MonoisotopicMass.Value)] = mod.PrecisionRequired;
                }
            }
        }
Example #2
0
 public static bool IsValidUnimodId(int id)
 {
     return(SetUniModIds.Contains(id));
 }