//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); }
//获取氨基酸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); }
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; }
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); }
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]; } } }
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; }
// 该氨基酸中元素及对应数目 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); }