From 17a6c17965ee19fb41d186d97e3e6d6a14b7d66b Mon Sep 17 00:00:00 2001 From: Anil Madugundu Date: Wed, 1 Nov 2017 17:55:57 -0400 Subject: [PATCH 1/5] Very first README --- README | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 README diff --git a/README b/README new file mode 100644 index 0000000..3bb672f --- /dev/null +++ b/README @@ -0,0 +1,3 @@ +This project is a forked version of pyQuant as modified on November 01, 2017. + +Key customization include accommodating the custom modifications under valid assumptions. From 99ad702c03b8f089f73e8134f22ecd3a27ed322f Mon Sep 17 00:00:00 2001 From: Anil Madugundu Date: Thu, 9 Nov 2017 17:27:21 -0500 Subject: [PATCH 2/5] Simple implementation to handle terminal unmodified Lysine while other Lysines are Biotinylated and/heavy labeled. To-Do: implement regex comparison to handle terminal Lysine (K$) --- pyquant/worker.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/pyquant/worker.py b/pyquant/worker.py index 2307b81..c03cc1f 100644 --- a/pyquant/worker.py +++ b/pyquant/worker.py @@ -341,14 +341,14 @@ def quantify_peaks(self, params): else: if peptide: for label_mass, label_masses in silac_masses.items(): + added_residues = added_residues.union(label_masses) + labels = [label_mass for mod_aa in peptide if mod_aa in label_masses] if 'X' in label_masses: global_mass = label_mass - if ']' in label_masses: + if ']' in label_masses and mod_aa == 'K': cterm_mass = label_mass if '[' in label_masses: nterm_mass = label_mass - added_residues = added_residues.union(label_masses) - labels = [label_mass for mod_aa in peptide if mod_aa in label_masses] silac_shift += sum(labels) else: # no mass, just assume we have one of the labels @@ -356,7 +356,8 @@ def quantify_peaks(self, params): if global_mass is not None: silac_shift += sum([global_mass for mod_aa in peptide if mod_aa not in added_residues]) silac_shift += cterm_mass + nterm_mass - + sys.stdout.write("%s:\t %f+%f = %f\n" % (silac_label, precursor, silac_shift, precursor + + silac_shift)) label_mz = precursor + (silac_shift / float(charge)) theo_mz = theor_mass + (silac_shift / float(charge)) precursors[silac_label]['uncalibrated_mz'] = label_mz From b25b0101fa7ab22224095ab9dda1407f28065ba9 Mon Sep 17 00:00:00 2001 From: anilkmg Date: Tue, 14 Nov 2017 19:36:08 -0500 Subject: [PATCH 3/5] Implemented regex comparison to handle terminal unmodified amino acids (eg. K$) --- pyquant/worker.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pyquant/worker.py b/pyquant/worker.py index c03cc1f..ce5238e 100644 --- a/pyquant/worker.py +++ b/pyquant/worker.py @@ -4,7 +4,7 @@ import copy import operator import traceback - +import re from functools import cmp_to_key import pandas as pd @@ -345,10 +345,13 @@ def quantify_peaks(self, params): labels = [label_mass for mod_aa in peptide if mod_aa in label_masses] if 'X' in label_masses: global_mass = label_mass - if ']' in label_masses and mod_aa == 'K': + if ']' in label_masses: cterm_mass = label_mass if '[' in label_masses: nterm_mass = label_mass + for l_masses in label_masses: + if re.search(l_masses, peptide): + cterm_mass += label_mass silac_shift += sum(labels) else: # no mass, just assume we have one of the labels @@ -356,8 +359,7 @@ def quantify_peaks(self, params): if global_mass is not None: silac_shift += sum([global_mass for mod_aa in peptide if mod_aa not in added_residues]) silac_shift += cterm_mass + nterm_mass - sys.stdout.write("%s:\t %f+%f = %f\n" % (silac_label, precursor, silac_shift, precursor + - silac_shift)) +# sys.stdout.write("%s:\t %f+%f = %f\n" % (silac_label, precursor, silac_shift, precursor + silac_shift)) label_mz = precursor + (silac_shift / float(charge)) theo_mz = theor_mass + (silac_shift / float(charge)) precursors[silac_label]['uncalibrated_mz'] = label_mz From 9569d2148421d4f9fc7fcdd9bcdbf1a2340b32f0 Mon Sep 17 00:00:00 2001 From: anilkmg Date: Thu, 16 Nov 2017 16:19:26 -0500 Subject: [PATCH 4/5] Implemented regex comparison to handle terminal unmodified amino acids (eg. K$) and tested for expected results. --- pyquant/worker.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/pyquant/worker.py b/pyquant/worker.py index ce5238e..895c336 100644 --- a/pyquant/worker.py +++ b/pyquant/worker.py @@ -341,25 +341,29 @@ def quantify_peaks(self, params): else: if peptide: for label_mass, label_masses in silac_masses.items(): - added_residues = added_residues.union(label_masses) - labels = [label_mass for mod_aa in peptide if mod_aa in label_masses] + added_residues = added_residues.union(label_masses); +# labels = [label_mass for mod_aa in peptide if mod_aa in label_masses] +# Replaced above line to look for terminal amino acid modifications status mass difference + labels = 0 + for mod_aa in peptide: + if mod_aa in label_masses: + labels += label_mass; + for l_masses in label_masses: + if len(l_masses) > 1 and re.search(l_masses, peptide): + labels += label_mass; if 'X' in label_masses: global_mass = label_mass if ']' in label_masses: cterm_mass = label_mass if '[' in label_masses: nterm_mass = label_mass - for l_masses in label_masses: - if re.search(l_masses, peptide): - cterm_mass += label_mass - silac_shift += sum(labels) + silac_shift += labels; else: # no mass, just assume we have one of the labels silac_shift += mass_keys[0] if global_mass is not None: silac_shift += sum([global_mass for mod_aa in peptide if mod_aa not in added_residues]) silac_shift += cterm_mass + nterm_mass -# sys.stdout.write("%s:\t %f+%f = %f\n" % (silac_label, precursor, silac_shift, precursor + silac_shift)) label_mz = precursor + (silac_shift / float(charge)) theo_mz = theor_mass + (silac_shift / float(charge)) precursors[silac_label]['uncalibrated_mz'] = label_mz From 8ecedb5d1027d33b29030d1fe7eee488d321623a Mon Sep 17 00:00:00 2001 From: anilkmg Date: Thu, 16 Nov 2017 16:20:57 -0500 Subject: [PATCH 5/5] Nothing but removed the semicolons from lines with debug print statements --- pyquant/worker.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pyquant/worker.py b/pyquant/worker.py index 895c336..24cbe68 100644 --- a/pyquant/worker.py +++ b/pyquant/worker.py @@ -341,23 +341,23 @@ def quantify_peaks(self, params): else: if peptide: for label_mass, label_masses in silac_masses.items(): - added_residues = added_residues.union(label_masses); + added_residues = added_residues.union(label_masses) # labels = [label_mass for mod_aa in peptide if mod_aa in label_masses] # Replaced above line to look for terminal amino acid modifications status mass difference labels = 0 for mod_aa in peptide: if mod_aa in label_masses: - labels += label_mass; + labels += label_mass for l_masses in label_masses: if len(l_masses) > 1 and re.search(l_masses, peptide): - labels += label_mass; + labels += label_mass if 'X' in label_masses: global_mass = label_mass if ']' in label_masses: cterm_mass = label_mass if '[' in label_masses: nterm_mass = label_mass - silac_shift += labels; + silac_shift += labels else: # no mass, just assume we have one of the labels silac_shift += mass_keys[0]