def score(candidate, target): import collections c_spectrum = peptide.cyclic_spectrum(candidate) c_counter = collections.Counter(c_spectrum) t_counter = collections.Counter(target) s = 0 for mass in c_counter: if mass in t_counter: s = s + min(c_counter[mass],t_counter[mass]) return s
for mass in c_counter: if mass not in t_counter: return False if c_counter[mass] > t_counter[mass]: return False return True def output_format(pep): masses = [] for amino_acid in pep: masses.append(peptide.mass_table[amino_acid]) return '-'.join(map(str, masses)) candidates = peptide.amino_acids winners = [] while candidates: candidates = branch(candidates) new_candidates = [] for candidate in candidates: c_spectrum = peptide.cyclic_spectrum(candidate) l_spectrum = peptide.linear_spectrum(candidate) if c_spectrum == spectrum: winners.append(candidate) elif consistent(l_spectrum, spectrum): new_candidates.append(candidate) candidates = new_candidates inout.output(' '.join(set(map(output_format, winners))))
for mass in c_counter: if mass not in t_counter: return False if c_counter[mass] > t_counter[mass]: return False return True def output_format(pep): masses = [] for amino_acid in pep: masses.append(peptide.mass_table[amino_acid]) return "-".join(map(str, masses)) candidates = peptide.amino_acids winners = [] while candidates: candidates = branch(candidates) new_candidates = [] for candidate in candidates: c_spectrum = peptide.cyclic_spectrum(candidate) l_spectrum = peptide.linear_spectrum(candidate) if c_spectrum == spectrum: winners.append(candidate) elif consistent(l_spectrum, spectrum): new_candidates.append(candidate) candidates = new_candidates inout.output(" ".join(set(map(output_format, winners))))