def __init__(self, sequence): ## a. parse the sequence. match_pattern = re.compile(r'([A-Z])(?:\((\w+)\))?') # Use non-capturing group seq_list = match_pattern.findall(sequence) self.mass = 0.0 self.seq = [] for item in seq_list: res = Residue() res.bySymbol(item[0]) if item[1] != '': mod = Modification(item[1]) # Update!!! The mod mass should not be integrated into residue mass. #res.mass += mod.mass self.seq.append([res, [mod]]) # Update!!! The mod mass is appended to the precursor directly. self.mass += mod.mass else: self.seq.append([res, []]) self.mass += res.mass self.length = len(self.seq) self.mass += Composition("H2O").mass
def getStubs(self): """returns a list of dicts with peptide and stub glycopeptide ions """ for i in self.pep_seq: res = Residue() res.bySymbol(i) if i == 'C': self.mass += Carbamidomethyl self.mass += res.mass if self.mod_type == "Deamidated": self.mass += (Deamidation * self.n_mod) elif self.mod_type == '': pass stubs =[] stubs.append({"key":"peptide", "mass": (self.mass + Proton)}) sites = self.glyco_num if sites == 0 : pass elif sites>0: if self.dHex==0: for i in range(1,sites+1,1): for j in range(1,3,1): if j ==1: key = "pep+"+str(j)+"HexNAc+"+"0Hexose"+"-"+str(i)+"sites" mass = self.mass+Proton+(i*(j*HexNAc)) #print key, mass stubs.append({"key":key,"mass": mass}) elif (j == 2): for k in range(0,4,1): key = "pep+"+str(j)+"HexNAc+"+str(k)+"Hexose"+"-"+str(i)+"sites" mass = self.mass+Proton+(i*((j*HexNAc)+(k*Hex))) #print key, mass stubs.append({"key":key,"mass": mass}) else: pass elif self.dHex>0: for i in range(1,sites+1,1): for j in range(1,3,1): if j ==1: key = "pep+"+str(j)+"HexNAc+"+"0Hexose"+"-"+str(i)+"sites" mass = self.mass+Proton+(i*(j*HexNAc)) #print key, mass stubs.append({"key":key,"mass": mass}) if (j == 2): for l in range (0,2,1): for k in range(0,4,1): key = "pep+"+str(j)+"HexNAc+"+str(k)+"Hexose"+str(l)+"dHex"+"-"+str(i)+"sites" mass = self.mass+Proton+(i*((j*HexNAc)+(k*Hex)+(l*dHex))) #print key, mass stubs.append({"key":key,"mass": mass}) else: pass j +=1 return stubs