Réimplémentation du programme DSSP en Python

dssp.py 2.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import pdb
  2. import atom
  3. import sys
  4. from structure import *
  5. from atom import *
  6. def print_dssp():
  7. empt_line=" " * 145
  8. if(len(sys.argv)<2):
  9. print("Not enough arguments! Run with --help to learn more about proper"
  10. "call structure and parameters.")
  11. else:
  12. pdb_file = pdb.PDBFile(sys.argv[1])
  13. # print(pdb_file.residues[15].atoms["C"].coord_x)
  14. #print(pdb_file.residues[2].atoms["N"].res_seq_nb, pdb_file.residues[2].atoms["N"].coord_x, pdb_file.residues[2].atoms["N"].coord_y, pdb_file.residues[2].atoms["N"].coord_z)
  15. #print(pdb_file.residues[2].atoms["H"].coord_x)
  16. #print(pdb_file.residues[2].h_bond(pdb_file.residues[40]))
  17. #print(get_turns(pdb_file.residues))
  18. #print(pdb_file.residues[27].h_bond(pdb_file.residues[28]))
  19. #print(get_bridges(pdb_file.residues))
  20. #turns = get_turns(pdb_file.residues)
  21. #get_helix(pdb_file.residues, turns)
  22. #get_bends(pdb_file.residues)
  23. # get_chirality(pdb_file.residues)
  24. bridges = get_bridges(pdb_file.residues)
  25. ladders = get_ladders(bridges, pdb_file.residues)
  26. sheets = get_sheets(ladders)
  27. # print("NBRIDGES",len(bridges))
  28. # bridges = get_bridges(pdb_file.residues)
  29. # get_bonds(pdb_file.residues)
  30. residues = pdb_file.residues
  31. e_min = 0
  32. for res in residues:
  33. ene = residues[1].h_bond(res)
  34. if ene <= e_min:
  35. e_min = ene
  36. best_res = res
  37. #print(residues[1].resid, best_res.resid,e_min)
  38. #get_phi_psi(residues)
  39. #print(residues[2].atoms, residues[0].resid, residues[1].resid)
  40. #print(get_TCO(residues[2],residues[3]))
  41. for i,res in enumerate(residues):
  42. # res.get_turns(residues, turns)
  43. res.get_helix(residues)
  44. #res.get_bridges(residues)
  45. #res.get_ladders(residues, ladders)
  46. #res.get_sheets(residues)
  47. for i,ladder in enumerate(ladders.values()):
  48. print(chr(65+i))
  49. for ind, sheet in sheets.items():
  50. print(ind, sheet)
  51. for ladder in sheet:
  52. print(ladder['start'], ladder['end'])