예제 #1
0
        public void WriteModification(IMass modification, ModificationSites sites, bool fixedModification = true)
        {
            if (CurrentStage != Stage.SearchSummary)
            {
                throw new ArgumentException("You must be in the Search Summary stage to write modifications");
            }

            foreach (ModificationSites singleSite in sites.GetActiveSites())
            {
                double basemass = 0;
                if (singleSite >= ModificationSites.NPep)
                {
                    _writer.WriteStartElement("terminal_modification");
                    if (singleSite.HasFlag(ModificationSites.NPep) || singleSite.HasFlag(ModificationSites.NProt))
                    {
                        _writer.WriteAttributeString("terminus", "N");
                        basemass += AminoAcidPolymer.DefaultNTerminus.MonoisotopicMass;
                    }
                    else
                    {
                        _writer.WriteAttributeString("terminus", "C");
                        basemass += AminoAcidPolymer.DefaultCTerminus.MonoisotopicMass;
                    }

                    _writer.WriteAttributeString("protein_terminus", (singleSite.HasFlag(ModificationSites.NProt) || singleSite.HasFlag(ModificationSites.ProtC)) ? "Y" : "N");
                }
                else
                {
                    string    letter = Enum.GetName(typeof(ModificationSites), singleSite);
                    AminoAcid aa     = AminoAcid.GetResidue(letter);
                    _writer.WriteStartElement("aminoacid_modification");
                    _writer.WriteAttributeString("aminoacid", letter);
                    basemass += aa.MonoisotopicMass;
                }
                double massshift = modification.MonoisotopicMass;
                _writer.WriteAttributeString("variable", (fixedModification) ? "N" : "Y");
                _writer.WriteAttributeString("mass", (basemass + massshift).ToString());
                _writer.WriteAttributeString("massdiff", massshift.ToString());
                _writer.WriteAttributeString("description", modification.ToString());
                _writer.WriteEndElement();
            }
        }
예제 #2
0
파일: Program.cs 프로젝트: stefanks/MyTools
        static void Main(string[] args)
        {
            Loaders.LoadElements("ok.txt");
            List <char> aminoAcidsToConsider = new List <char>()
            {
                'G', 'A', 'S', 'P', 'V', 'T', 'C', 'I', 'L', 'N', 'D', 'Q', 'K', 'E', 'M', 'H', 'F', 'R', 'Y', 'W'
            };
            List <Tuple <AminoAcid, AminoAcid, double> > tuples = new List <Tuple <AminoAcid, AminoAcid, double> >();

            foreach (var ok in aminoAcidsToConsider)
            {
                var aa1 = AminoAcid.GetResidue(ok);
                foreach (var ok2 in aminoAcidsToConsider)
                {
                    var aa2 = AminoAcid.GetResidue(ok2);

                    var diff = aa2.MonoisotopicMass - aa1.MonoisotopicMass;

                    var tuple = new Tuple <AminoAcid, AminoAcid, double>(aa1, aa2, diff);
                    tuples.Add(tuple);
                }
            }

            // IGNORE ALL ZERO MASSES AND SUBSTITUTIONS TO ISOLEUCINE
            tuples = tuples.OrderBy(b => b.Item3).Where(b => b.Item3 != 0).ToList();

            Console.WriteLine("FOR EXCEL");

            double prevDiff = double.MinValue;

            foreach (var ok in tuples)
            {
                if (prevDiff > ok.Item3 - tol && prevDiff < ok.Item3 + tol)
                {
                    Console.Write(" or " + ok.Item1.Name + "->" + ok.Item2.Name);
                }
                else
                {
                    Console.Write("\n" + ok.Item3 + ";" + ok.Item1.Name + "->" + ok.Item2.Name);
                    prevDiff = ok.Item3;
                }
            }

            Console.WriteLine("\n\nFOR PTMLIST");
            foreach (var ok in tuples)
            {
                Console.WriteLine("ID   " + ok.Item1.Name + "->" + ok.Item2.Name);
                Console.WriteLine("FT   MOD_RES");
                Console.WriteLine("TG   " + ok.Item1.Name);
                Console.WriteLine("PP   Anywhere");
                Console.WriteLine("MM   " + ok.Item3);
                Console.WriteLine("//");
            }

            Console.WriteLine("\n\nFOR EXCEL");

            aminoAcidsToConsider.Reverse();

            foreach (var ok in aminoAcidsToConsider)
            {
                var aa1 = AminoAcid.GetResidue(ok);
                Console.WriteLine(-aa1.MonoisotopicMass + ";" + aa1.Name + " not here");
            }

            Console.WriteLine("\n\nFOR PTMLIST");
            foreach (var ok in aminoAcidsToConsider)
            {
                var aa1 = AminoAcid.GetResidue(ok);
                Console.WriteLine("ID   " + aa1.Name + " not here");
                Console.WriteLine("FT   MOD_RES");
                Console.WriteLine("TG   " + aa1.Name);
                Console.WriteLine("PP   Anywhere");
                Console.WriteLine("MM   -" + aa1.MonoisotopicMass);
                Console.WriteLine("//");
            }

            Console.Read();
        }
예제 #3
0
        public void GetResidueBy3LetterSymbol()
        {
            AminoAcid aa = AminoAcid.GetResidue("Ala");

            Assert.AreEqual(aa.Name, "Alanine");
        }
예제 #4
0
        public void GetResidueByName()
        {
            AminoAcid aa = AminoAcid.GetResidue("Alanine");

            Assert.AreEqual(aa.Name, "Alanine");
        }
예제 #5
0
        public void GetResidueByCharacterString()
        {
            AminoAcid aa = AminoAcid.GetResidue("A");

            Assert.AreEqual(aa.Name, "Alanine");
        }