Ejemplo n.º 1
0
        //public int CompareTo(object obj)
        //{
        //    Peptide pep = (Peptide)obj;
        //    if (this.Score > pep.Score)
        //        return 1;
        //    else if (this.Score < pep.Score)
        //        return -1;
        //    return 0;
        //}
        //获取该肽段中,element_name元素个数
        public int Get_Number_ByElementName(string element_name)
        {
            int element_number = 0;

            for (int i = 0; i < this.Sq.Length; ++i)
            {
                Aa aa = Config_Help.aas[1, this.Sq[i] - 'A'];
                for (int j = 0; j < aa.elements.Count; ++j)
                {
                    if (aa.elements[j] == element_name)
                    {
                        element_number += aa.numbers[j];
                    }
                }
            }
            for (int i = 0; i < this.Mods.Count; ++i)
            {
                Aa[] aas = Config_Help.modStr_elements_hash[this.Mods[i].Mod_name] as Aa[];
                Aa   aa  = aas[0];
                for (int j = 0; j < aa.elements.Count; ++j)
                {
                    if (aa.elements[j] == element_name)
                    {
                        element_number += aa.numbers[j];
                    }
                }
            }
            return(element_number);
        }
Ejemplo n.º 2
0
        //获取氨基酸aa中元素element_name的个数
        private int get_Aa_element_number(int index, string element_name, char aa)
        {
            Aa one_aa = Config_Help.aas[index, aa - 'A'];

            for (int i = 0; i < one_aa.elements.Count; ++i)
            {
                if (one_aa.elements[i] == element_name)
                {
                    return(one_aa.numbers[i]);
                }
            }
            return(0);
        }
Ejemplo n.º 3
0
        public static void ParseElement(Peptide p, int index, int[] element_num, ref int num)
        {
            //根据肽段来获取CHNOSP,13C,2H,15N,元素的个数
            num = super.Length;
            for (int i = 0; i < num; ++i)
            {
                element_num[i] = 0;
            }
            for (int i = 0; i < p.Sq.Length; ++i)
            {
                Aa aa = Config_Help.aas[index, p.Sq[i] - 'A'];
                for (int j = 0; j < aa.elements.Count; ++j)
                {
                    int index0 = (int)Config_Help.element_index_hash[aa.elements[j]];

                    if (index0 != -1)
                    {
                        element_num[index0] += aa.numbers[j];
                    }
                }
            }
            //考虑修饰对应的元素个数
            for (int i = 0; i < p.Mods.Count; ++i)
            {
                Aa[] aas = Config_Help.modStr_elements_hash[p.Mods[i].Mod_name] as Aa[];

                for (int j = 0; j < aas[0].elements.Count; ++j)
                {
                    int index0 = (int)Config_Help.element_index_hash[aas[0].elements[j]];
                    if (index0 != -1)
                    {
                        if (aas[0].numbers[j] < 0 && element_num[index0] == 0) //处理肽段没有对应的元素,但是修饰需要减元素
                        {
                            string noLabelName = aas[0].elements[j].Last() + "";
                            int    index1      = (int)Config_Help.element_index_hash[noLabelName];
                            if (index1 != -1)
                            {
                                element_num[index1] += aas[0].numbers[j];
                            }
                        }
                        else
                        {
                            element_num[index0] += aas[0].numbers[j];
                        }
                    }
                }
            }
            //增加一个H2O
            element_num[(int)Config_Help.element_index_hash["H"]] += 2;
            element_num[(int)Config_Help.element_index_hash["O"]] += 1;
        }
Ejemplo n.º 4
0
        public static string parse_String_byAa(Aa aa)
        {
            if (aa == null)
            {
                return("");
            }
            string res = "";

            for (int i = 0; i < aa.elements.Count; ++i)
            {
                res += aa.elements[i] + "(";
                res += aa.numbers[i] + ")";
            }
            return(res);
        }
Ejemplo n.º 5
0
        public static void ParseElement(Aa aa, int[] element_num, ref int num)
        {
            num = super.Length;
            for (int i = 0; i < num; ++i)
            {
                element_num[i] = 0;
            }
            for (int j = 0; j < aa.elements.Count; ++j)
            {
                int index0 = (int)Config_Help.element_index_hash[aa.elements[j]];

                if (index0 != -1)
                {
                    element_num[index0] += aa.numbers[j];
                }
            }
        }
Ejemplo n.º 6
0
        public static void ParseElement(Peptide p, int index, List <int> mod_flag, int[] element_num, ref int num)
        {
            //根据肽段来获取CHNOSP,13C,2H,15N,元素的个数
            num = super.Length;
            for (int i = 0; i < num; ++i)
            {
                element_num[i] = 0;
            }
            for (int i = 0; i < p.Sq.Length; ++i)
            {
                Aa aa = Config_Help.aas[index, p.Sq[i] - 'A'];
                for (int j = 0; j < aa.elements.Count; ++j)
                {
                    int index0 = (int)Config_Help.element_index_hash[aa.elements[j]];

                    if (index0 != -1)
                    {
                        element_num[index0] += aa.numbers[j];
                    }
                }
            }
            //考虑修饰对应的元素个数
            for (int i = 0; i < p.Mods.Count; ++i)
            {
                Aa[] aas = Config_Help.modStr_elements_hash[p.Mods[i].Mod_name] as Aa[];
                if (aas[mod_flag[i]] == null)
                {
                    mod_flag[i] = 0;
                }
                for (int j = 0; j < aas[mod_flag[i]].elements.Count; ++j)
                {
                    int index0 = (int)Config_Help.element_index_hash[aas[mod_flag[i]].elements[j]];
                    if (index0 != -1)
                    {
                        element_num[index0] += aas[mod_flag[i]].numbers[j];
                    }
                }
            }
            //增加一个H2O
            element_num[(int)Config_Help.element_index_hash["H"]] += 2;
            element_num[(int)Config_Help.element_index_hash["O"]] += 1;
        }
Ejemplo n.º 7
0
        // 该氨基酸中元素及对应数目
        public static Aa parse_Aa_byString(string elements)
        {
            string[] element_str  = elements.Split(new char[] { '(', ')' }, StringSplitOptions.RemoveEmptyEntries);
            string   element_name = "";
            Aa       aa           = new Aa();

            for (int i = 0; i < element_str.Length; ++i)
            {
                if (i % 2 == 0)
                {
                    element_name = element_str[i];
                }
                else
                {
                    int number = int.Parse(element_str[i]);
                    aa.add(element_name, number);
                }
            }
            return(aa);
        }