コード例 #1
0
 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 
コード例 #2
0
    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