Ejemplo n.º 1
0
 def get_phi_psi_list(self):
     """
     Return the list of phi/psi dihedral angles
     """
     ppl = []
     lng = len(self)
     for i in range(0, lng):
         res = self[i]
         try:
             n = res['N'].get_vector()
             ca = res['CA'].get_vector()
             c = res['C'].get_vector()
         except:
             # Some atoms are missing
             # Phi/Psi cannot be calculated for this residue
             ppl.append((None, None))
             res.xtra["PHI"] = None
             res.xtra["PSI"] = None
             continue
         # Phi
         if i > 0:
             rp = self[i - 1]
             try:
                 cp = rp['C'].get_vector()
                 phi = calc_dihedral(cp, n, ca, c)
             except:
                 phi = None
         else:
             # No phi for residue 0!
             phi = None
         # Psi
         if i < (lng - 1):
             rn = self[i + 1]
             try:
                 nn = rn['N'].get_vector()
                 psi = calc_dihedral(n, ca, c, nn)
             except:
                 psi = None
         else:
             # No psi for last residue!
             psi = None
         ppl.append((phi, psi))
         # Add Phi/Psi to xtra dict of residue
         res.xtra["PHI"] = phi
         res.xtra["PSI"] = psi
     return ppl
Ejemplo n.º 2
0
 def get_phi_psi_list(self):
     """
     Return the list of phi/psi dihedral angles
     """
     ppl=[]
     lng=len(self)
     for i in range(0, lng):
         res=self[i]
         try:
             n=res['N'].get_vector()
             ca=res['CA'].get_vector()
             c=res['C'].get_vector()
         except:
             # Some atoms are missing
             # Phi/Psi cannot be calculated for this residue
             ppl.append((None, None))
             res.xtra["PHI"]=None
             res.xtra["PSI"]=None
             continue
         # Phi
         if i>0:
             rp=self[i-1]
             try:
                 cp=rp['C'].get_vector()
                 phi=calc_dihedral(cp, n, ca, c)
             except:
                 phi=None
         else:
             # No phi for residue 0!
             phi=None
         # Psi
         if i<(lng-1):
             rn=self[i+1]
             try:
                 nn=rn['N'].get_vector()
                 psi=calc_dihedral(n, ca, c, nn)
             except:
                 psi=None
         else:
             # No psi for last residue!
             psi=None
         ppl.append((phi, psi))
         # Add Phi/Psi to xtra dict of residue
         res.xtra["PHI"]=phi
         res.xtra["PSI"]=psi
     return ppl
Ejemplo n.º 3
0
 def get_tau_list(self):
     """List of tau torsions angles for all 4 consecutive Calpha atoms."""
     ca_list=self.get_ca_list()
     tau_list=[]
     for i in range(0, len(ca_list)-3):
         atom_list = (ca_list[i], ca_list[i+1], ca_list[i+2], ca_list[i+3])
         v1, v2, v3, v4 = [a.get_vector() for a in atom_list]
         tau=calc_dihedral(v1, v2, v3, v4)
         tau_list.append(tau)
         # Put tau in xtra dict of residue
         res=ca_list[i+2].get_parent()
         res.xtra["TAU"]=tau
     return tau_list
Ejemplo n.º 4
0
 def get_tau_list(self):
     """List of tau torsions angles for all 4 consecutive Calpha atoms."""
     ca_list = self.get_ca_list()
     tau_list = []
     for i in range(0, len(ca_list) - 3):
         atom_list = (ca_list[i], ca_list[i + 1], ca_list[i + 2],
                      ca_list[i + 3])
         v1, v2, v3, v4 = [a.get_vector() for a in atom_list]
         tau = calc_dihedral(v1, v2, v3, v4)
         tau_list.append(tau)
         # Put tau in xtra dict of residue
         res = ca_list[i + 2].get_parent()
         res.xtra["TAU"] = tau
     return tau_list