def __init__(self,name, code, code3,composition): #: Full name of the AA self.name = name #: One letter code self.code = code #: Three letter code self.code3 = code3 #: Elemental composition self.composition = {} self.composition = composition #: Library of elements self.elementsLib = Elements() self.deltaMass = Formulas.mass(self.composition, elementsLib = self.elementsLib) #self.calDeltaMass()
def __init__(self, name, code, code3, composition): #: Full name of the AA self.name = name #: One letter code self.code = code #: Three letter code self.code3 = code3 #: Elemental composition self.composition = {} self.composition = composition #: Library of elements self.elementsLib = Elements() self.deltaMass = Formulas.mass( self.composition, elementsLib=self.elementsLib) #self.calDeltaMass()
def __init__(self, aminoacid, tpp_Mod, unimodAccession, peakViewAccession, is_labeling, composition): #self.aminoacid = Aminoacid() self.aminoacid = aminoacid self.is_Nterminal = False self.is_Cterminal = False if self.aminoacid == 'N-term' : self.is_Nterminal = True if self.aminoacid == 'C-term' : self.is_Cterminal = True self.unimodAccession = unimodAccession self.peakviewAccession = peakViewAccession self.TPP_Mod = tpp_Mod self.composition = composition self.is_labeling = is_labeling #if deltaMass : self.deltamass = deltaMass self.deltamass = Formulas.mass(composition) #self._getMass() self.id = aminoacid + str(int(round(self.deltamass,0)))
def __init__(self, aminoacid, tpp_Mod, unimodAccession, peakViewAccession, is_labeling, composition): #self.aminoacid = Aminoacid() self.aminoacid = aminoacid self.is_Nterminal = False self.is_Cterminal = False if self.aminoacid == 'N-term': self.is_Nterminal = True if self.aminoacid == 'C-term': self.is_Cterminal = True self.unimodAccession = unimodAccession self.peakviewAccession = peakViewAccession self.TPP_Mod = tpp_Mod self.composition = composition self.is_labeling = is_labeling #if deltaMass : self.deltamass = deltaMass self.deltamass = Formulas.mass(composition) #self._getMass() self.id = aminoacid + str(int(round(self.deltamass, 0)))
def _getMassFromSequence(self): #self.aaList = Aminoacides() mass = 0 for aa in self.sequence[:]: for ac in self.aaList.list: if aa == ac.code: mass += ac.deltaMass #Adding an H2O to the mass, as it is calculated by using delta masses mass += Formulas.mass(Formulas.H2O) #(1.007825032 *2 + 15.99491462) #Adding modifications deltamass for aaPosMod in self.modifications.iterkeys(): mass += self.modifications[aaPosMod].deltamass return mass
def _getMassFromSequence(self): #self.aaList = Aminoacides() mass = 0 for aa in self.sequence[:]: for ac in self.aaList.list: if aa == ac.code: mass += ac.deltaMass #Adding an H2O to the mass, as it is calculated by using delta masses mass += Formulas.mass(Formulas.H2O) #(1.007825032 *2 + 15.99491462) #Adding modifications deltamass for aaPosMod in self.modifications.iterkeys() : mass += self.modifications[aaPosMod].deltamass return mass
def getMZfragment(self, ion_type, ion_number, ion_charge, label='', fragmentlossgain=0.0): #Check label if len(label) > 0 and label not in self.labelings: print "Coding error: this labeling is not reported!! %s" % label sys.exit(2) #Check ion type #if ion_type not in self.iontypes : #print "This ion type can not be processed :" , ion_type #print "This is the list of ion types considered in this library : " , self.iontypes #sys.exit(2) massH = 1.007825032 massO = 15.99491462 massN = 14.00307401 massC = 12.0000000 massProton = 1.0072765 massNH3 = Formulas.mass(Formulas.NH3) #massN + 3 * massH massH2O = Formulas.mass(Formulas.H2O) #(massH *2 + massO) massCO2 = Formulas.mass(Formulas.CO2) #(massC + 2 * massO) protonMass = 1.007825032 massN15 = 15.0001089 massShiftN15 = massN15 - massN massC13 = 13.003355 massShiftC13 = massC13 - massC frg_number = int(ion_number) frg_charge = int(ion_charge) mzfragment = 0 frg_seq = '' #precursors if ion_type == 'p': mzfragment = self.getMZ(frg_charge, label) return mzfragment #a series if ion_type == 'a': frg_seq = self.sequence[:frg_number] mzfragment = self.getDeltaMassFromSequence(frg_seq) mzfragment -= (massC + massO) #Adding modifications deltamass for aaPosMod in self.modifications.iterkeys(): if aaPosMod <= frg_number: mzfragment += self.modifications[aaPosMod].deltamass #b series if ion_type == 'b': frg_seq = self.sequence[:frg_number] mzfragment = self.getDeltaMassFromSequence(frg_seq) #Adding modifications deltamass for aaPosMod in self.modifications.iterkeys(): if aaPosMod <= frg_number: mzfragment += self.modifications[aaPosMod].deltamass #c series if ion_type == 'c': frg_seq = self.sequence[:frg_number] mzfragment = self.getDeltaMassFromSequence(frg_seq) mzfragment += massNH3 #Adding modifications deltamass for aaPosMod in self.modifications.iterkeys(): if aaPosMod <= frg_number: mzfragment += self.modifications[aaPosMod].deltamass #x series if ion_type == 'x': frg_seq = self.sequence[-frg_number:] mzfragment = self.getDeltaMassFromSequence(frg_seq) mzfragment += massCO2 #Adding modifications deltamass for aaPosMod in self.modifications.iterkeys(): if (len(self.sequence) - frg_number) < aaPosMod: mzfragment += self.modifications[aaPosMod].deltamass #y series if ion_type == 'y': frg_seq = self.sequence[-frg_number:] mzfragment = self.getDeltaMassFromSequence(frg_seq) mzfragment += massH2O #Adding modifications deltamass for aaPosMod in self.modifications.iterkeys(): if (len(self.sequence) - frg_number) < aaPosMod: mzfragment += self.modifications[aaPosMod].deltamass #z series if ion_type == 'z': frg_seq = self.sequence[-frg_number:] mzfragment = self.getDeltaMassFromSequence(frg_seq) mzfragment += massH2O mzfragment -= massNH3 #Adding modifications deltamass for aaPosMod in self.modifications.iterkeys(): if (len(self.sequence) - frg_number) < aaPosMod: mzfragment += self.modifications[aaPosMod].deltamass # 15N labeling: adds up the shift mass if label == '15N' or label == 'N15': frg_composition = self._getCompositionSeq(frg_seq) if 'N' in frg_composition: shift = (float(frg_composition['N']) * massShiftN15) mzfragment += shift #AQUA_KR labeling: adds up the shift mass if label == 'AQUA_KR': #Update (23.nov.2010): AQUA_KR only modifies Lys and Arg in the C-terminal position. #Update (1.dec.2010) : I am a jerk. I should have taken it only for y ions , and not for the b ones if 'K' in self.sequence[-1:] and ion_type == 'y': mzfragment += 6 * massShiftC13 + 2 * massShiftN15 if 'R' in self.sequence[-1:] and ion_type == 'y': mzfragment += 6 * massShiftC13 + 4 * massShiftN15 if label == 'SILAC_K6R10': #All K and R amino acides are shifted 6 Da and 10 Da. numK = 0 numR = 0 for aa in frg_seq[:]: if aa == 'K': numK += 1 if aa == 'R': numR += 1 mzfragment += numK * (6 * massShiftC13) mzfragment += numR * (6 * massShiftC13 + 4 * massShiftN15) if label == 'SILAC_K8R10': #All K and R amino acides are shifted 8 Da and 10 Da. numK = 0 numR = 0 for aa in frg_seq[:]: if aa == 'K': numK += 1 if aa == 'R': numR += 1 mzfragment += numK * (6 * massShiftC13 + 2 * massShiftN15) mzfragment += numR * (6 * massShiftC13 + 4 * massShiftN15) if label == 'SILAC_K8R6': #All K and R amino acides are shifted 8 Da and 6 Da. numK = 0 numR = 0 for aa in frg_seq[:]: if aa == 'K': numK += 1 if aa == 'R': numR += 1 mzfragment += numK * (6 * massShiftC13 + 2 * massShiftN15) mzfragment += numR * (6 * massShiftC13) mzfragment += frg_charge * massProton mzfragment += fragmentlossgain mzfragment /= frg_charge return mzfragment
from peptide import Peptide from modifications import Modifications from elements import Formulas mods = Modifications() phospho = mods.mods_unimods[21] oxi = mods.mods_TPPcode['M[147]']; cys = mods.mods_TPPcode['C[160]']; nTMT = mods.mods_TPPcode['n[230]']; TMT = mods.mods_TPPcode['K[357]']; massNH3 = Formulas.mass(Formulas.NH3) #massN + 3 * massH massH2O = Formulas.mass(Formulas.H2O) #(massH *2 + massO) p1 = Peptide('CKDALA',modifications={1: cys}) p2 = Peptide('CKDALA',modifications={1: cys, 0: nTMT, 2:TMT}) for pep in [ p1, p2 ]: # annot , ion_masses = pep.all_ions(ionseries = ['y','b'], # frg_z_list = [1,2], # fragmentlossgains = [0, ], # mass_limits = [100,3000], # label = '') # for a in annot: # print a print "PEPTIDE:", pep.getSequenceWithMods("TPP"), "\tpreMz:", pep.getMZ(2) #CHARGE=2 for v in range(1, len(pep.sequence)):
def getMZfragment(self, ion_type, ion_number, ion_charge, label='', fragmentlossgain=0.0): #Check label if len(label) > 0 and label not in self.labelings : print "Coding error: this labeling is not reported!! %s" % label sys.exit(2) #Check ion type #if ion_type not in self.iontypes : #print "This ion type can not be processed :" , ion_type #print "This is the list of ion types considered in this library : " , self.iontypes #sys.exit(2) massH = 1.007825032 massO = 15.99491462 massN = 14.00307401 massC = 12.0000000 massProton = 1.0072765 massNH3 = Formulas.mass(Formulas.NH3) #massN + 3 * massH massH2O = Formulas.mass(Formulas.H2O) #(massH *2 + massO) massCO2 = Formulas.mass(Formulas.CO2) #(massC + 2 * massO) protonMass = 1.007825032 massN15 = 15.0001089 massShiftN15 = massN15 - massN massC13 = 13.003355 massShiftC13 = massC13 - massC frg_number = int(ion_number) frg_charge = int(ion_charge) mzfragment = 0 frg_seq = '' #precursors if ion_type == 'p' : mzfragment = self.getMZ(frg_charge, label) return mzfragment #a series if ion_type == 'a' : frg_seq = self.sequence[:frg_number] mzfragment = self.getDeltaMassFromSequence(frg_seq) mzfragment -= (massC + massO) #Adding modifications deltamass for aaPosMod in self.modifications.iterkeys() : if aaPosMod <= frg_number: mzfragment += self.modifications[aaPosMod].deltamass #b series if ion_type == 'b' : frg_seq = self.sequence[:frg_number] mzfragment = self.getDeltaMassFromSequence(frg_seq) #Adding modifications deltamass for aaPosMod in self.modifications.iterkeys() : if aaPosMod <= frg_number: mzfragment += self.modifications[aaPosMod].deltamass #c series if ion_type == 'c' : frg_seq = self.sequence[:frg_number] mzfragment = self.getDeltaMassFromSequence(frg_seq) mzfragment += massNH3 #Adding modifications deltamass for aaPosMod in self.modifications.iterkeys() : if aaPosMod <= frg_number: mzfragment += self.modifications[aaPosMod].deltamass #x series if ion_type == 'x' : frg_seq = self.sequence[-frg_number:] mzfragment = self.getDeltaMassFromSequence(frg_seq) mzfragment += massCO2 #Adding modifications deltamass for aaPosMod in self.modifications.iterkeys() : if (len(self.sequence) - frg_number) < aaPosMod : mzfragment += self.modifications[aaPosMod].deltamass #y series if ion_type == 'y' : frg_seq = self.sequence[-frg_number:] mzfragment = self.getDeltaMassFromSequence(frg_seq) mzfragment += massH2O #Adding modifications deltamass for aaPosMod in self.modifications.iterkeys() : if (len(self.sequence) - frg_number) < aaPosMod : mzfragment += self.modifications[aaPosMod].deltamass #z series if ion_type == 'z' : frg_seq = self.sequence[-frg_number:] mzfragment = self.getDeltaMassFromSequence(frg_seq) mzfragment += massH2O mzfragment -= massNH3 #Adding modifications deltamass for aaPosMod in self.modifications.iterkeys() : if (len(self.sequence) - frg_number) < aaPosMod : mzfragment += self.modifications[aaPosMod].deltamass # 15N labeling: adds up the shift mass if label == '15N' or label == 'N15': frg_composition = self._getCompositionSeq(frg_seq) if 'N' in frg_composition: shift = (float(frg_composition['N']) * massShiftN15) mzfragment += shift #AQUA_KR labeling: adds up the shift mass if label == 'AQUA_KR': #Update (23.nov.2010): AQUA_KR only modifies Lys and Arg in the C-terminal position. #Update (1.dec.2010) : I am a jerk. I should have taken it only for y ions , and not for the b ones if 'K' in self.sequence[-1:] and ion_type == 'y' : mzfragment += 6 * massShiftC13 + 2 * massShiftN15 if 'R' in self.sequence[-1:] and ion_type == 'y' : mzfragment += 6 * massShiftC13 + 4 * massShiftN15 if label == 'SILAC_K6R10' : #All K and R amino acides are shifted 6 Da and 10 Da. numK = 0 numR = 0 for aa in frg_seq[:] : if aa == 'K' : numK += 1 if aa == 'R' : numR += 1 mzfragment += numK * (6 * massShiftC13) mzfragment += numR * (6 * massShiftC13 + 4 * massShiftN15) if label == 'SILAC_K8R10' : #All K and R amino acides are shifted 8 Da and 10 Da. numK = 0 numR = 0 for aa in frg_seq[:] : if aa == 'K' : numK += 1 if aa == 'R' : numR += 1 mzfragment += numK * (6 * massShiftC13 + 2 * massShiftN15) mzfragment += numR * (6 * massShiftC13 + 4 * massShiftN15) if label == 'SILAC_K8R6' : #All K and R amino acides are shifted 8 Da and 6 Da. numK = 0 numR = 0 for aa in frg_seq[:] : if aa == 'K' : numK += 1 if aa == 'R' : numR += 1 mzfragment += numK * (6 * massShiftC13 + 2 * massShiftN15) mzfragment += numR * (6 * massShiftC13) mzfragment += frg_charge * massProton mzfragment += fragmentlossgain mzfragment /= frg_charge return mzfragment