コード例 #1
0
        protected void CopyFrom(DynamicModification itemToCopy)
        {
            base.CopyFrom(itemToCopy);

            this.MaxPerSite = itemToCopy.MaxPerSite;
            this.Position   = itemToCopy.Position;
            this.Count      = itemToCopy.Count;
        }
コード例 #2
0
 /// <summary>
 /// Constructor whose source is a dynamic mod entry
 /// </summary>
 // ReSharper disable once UnusedMember.Global
 public DynamicModification(DynamicModification itemToCopy)
 {
     this.CopyFrom(itemToCopy);
 }
コード例 #3
0
        /// <summary>
        /// Parses the parameter file for ascore
        /// </summary>
        /// <param name="inputFile">name of the xml file</param>
        /// <returns>ascore parameters object</returns>
        public static AScoreParameters ParseXml(string inputFile)
        {
            XmlDocument parameterFile = new XmlDocument();

            parameterFile.Load(new XmlTextReader(inputFile));

            XmlNodeList staticMod  = parameterFile.SelectNodes("/Run/Modifications/StaticSeqModifications");
            XmlNodeList terminiMod = parameterFile.SelectNodes("/Run/Modifications/TerminiModifications");
            XmlNodeList dynamicMod = parameterFile.SelectNodes("/Run/Modifications/DynamicModifications");

            XmlNode massTolerance = parameterFile.SelectSingleNode("/Run/MassTolerance");

            XmlNode fragmentType = parameterFile.SelectSingleNode("/Run/FragmentType");



            FragmentType f       = GetFragmentType(fragmentType);
            double       massTol = double.Parse(massTolerance.InnerText);

            List <Modification>        stat    = new List <Modification>();
            List <TerminiModification> termMod = new List <TerminiModification>();
            List <DynamicModification> dynam   = new List <DynamicModification>();


            foreach (XmlNode mod in staticMod)
            {
                foreach (XmlNode mod2 in mod.ChildNodes)
                {
                    double      massMonoIsotopic = 0.0;
                    char        modSymbol        = ' ';
                    List <char> possibleModSites = new List <char>();
                    int         uniqueID         = 0;
                    foreach (XmlNode item in mod2.ChildNodes)
                    {
                        if (item.Name == "MassMonoIsotopic")
                        {
                            massMonoIsotopic = double.Parse(item.InnerText);
                        }
                        else if (item.Name == "PossibleModSites")
                        {
                            foreach (XmlNode item2 in item.ChildNodes)
                            {
                                possibleModSites.Add(item2.InnerText[0]);
                            }
                        }
                        else if (item.Name == "UniqueID")
                        {
                            uniqueID = int.Parse(item.InnerText);
                        }
                    }
                    Modification m = new Modification();
                    m.MassMonoisotopic = massMonoIsotopic;
                    m.ModSymbol        = modSymbol;
                    m.PossibleModSites = possibleModSites;
                    m.UniqueID         = uniqueID;
                    stat.Add(m);
                }
            }


            foreach (XmlNode mod in terminiMod)
            {
                foreach (XmlNode mod2 in mod.ChildNodes)
                {
                    double      massMonoIsotopic = 0.0;
                    char        modSymbol        = ' ';
                    List <char> possibleModSites = new List <char>();
                    int         uniqueID         = 0;
                    bool        nTerm            = false;
                    bool        cTerm            = false;
                    foreach (XmlNode item in mod2.ChildNodes)
                    {
                        if (item.Name == "MassMonoIsotopic")
                        {
                            massMonoIsotopic = double.Parse(item.InnerText);
                        }
                        else if (item.Name == "UniqueID")
                        {
                            uniqueID = int.Parse(item.InnerText);
                        }

                        else if (item.Name == "Nterm")
                        {
                            nTerm = bool.Parse(item.InnerText);
                        }
                        else if (item.Name == "Cterm")
                        {
                            cTerm = bool.Parse(item.InnerText);
                        }
                    }

                    TerminiModification m = new TerminiModification();
                    m.MassMonoisotopic = massMonoIsotopic;
                    m.ModSymbol        = modSymbol;
                    m.PossibleModSites = possibleModSites;
                    m.UniqueID         = uniqueID;
                    m.nTerminus        = nTerm;
                    m.cTerminus        = cTerm;
                    termMod.Add(m);
                }
            }


            foreach (XmlNode mod in dynamicMod)
            {
                foreach (XmlNode mod2 in mod.ChildNodes)
                {
                    double      massMonoIsotopic = 0.0;
                    char        modSymbol        = ' ';
                    List <char> possibleModSites = new List <char>();
                    int         uniqueID         = 0;
                    foreach (XmlNode item in mod2.ChildNodes)
                    {
                        if (item.Name == "MassMonoIsotopic")
                        {
                            massMonoIsotopic = double.Parse(item.InnerText);
                        }
                        else if (item.Name == "ModificationSymbol")
                        {
                            modSymbol = item.InnerText[0];
                        }
                        else if (item.Name == "PossibleModSites")
                        {
                            foreach (XmlNode item2 in item.ChildNodes)
                            {
                                possibleModSites.Add(item2.InnerText[0]);
                            }
                        }
                        else if (item.Name == "UniqueID")
                        {
                            uniqueID = int.Parse(item.InnerText);
                        }
                        else if (item.Name == "MaxPerSite")
                        {
                        }
                    }
                    DynamicModification m = new DynamicModification();
                    m.MassMonoisotopic = massMonoIsotopic;
                    m.ModSymbol        = modSymbol;
                    m.PossibleModSites = possibleModSites;
                    m.UniqueID         = uniqueID;
                    dynam.Add(m);
                }
            }



            AScoreParameters aParams = new AScoreParameters(stat, termMod, dynam, f, massTol);

            return(aParams);
        }