hdiff output

r27168/hbond_matrix.py 2015-11-17 23:33:53.377220588 +0000 r27167/hbond_matrix.py 2015-11-17 23:33:53.581223320 +0000
  1: #!/usr/bin/python  1: #!/usr/bin/python
  2:   2: 
  3: def make_hbond_input(hbond_input_filename, hbond_output_filename,  3: import sys
  4:                      donor_acceptor_filename, restart_filename,  
  5:                      distance_cutoff, angle_cutoff): 
  6:     with open(hbond_input_filename, 'w') as hbond_input: 
  7:         # trajin command         
  8:         hbond_input.write(' '.join(['trajin', restart_filename, '\n'])) 
  9:         # contents of donor/acceptor file 
 10:         with open(donor_acceptor_filename, 'r') as donor_acceptor_file: 
 11:             for line in donor_acceptor_file: 
 12:                 hbond_input.write(line) 
 13:         # trajout command 
 14:         hbond_input.write(' '.join(['hbond', 'out', hbond_output_filename,  
 15:                                     'distance', str(distance_cutoff),  
 16:                                     'angle', str(angle_cutoff), '\n'])) 
 17:  
 18: def run_ptraj(hbond_input_filename, topology_filename): 
 19:     import os 
 20:     import os.path 
 21:     import subprocess 
 22:     with open(hbond_input_filename, 'r') as hbond_input: 
 23:         with open(os.devnull, 'w') as devnull: 
 24:             subprocess.Popen([os.path.join(os.environ['AMBERHOME'], 'bin', 'ptraj'), topology_filename], stdin=hbond_input, stdout=devnull) 
 25:  
 26: def get_residues(residues_filename, topology_filename): 
 27:     residues = [] 
 28:     if residues_filename:  
 29:         with open(residues_filename, 'r') as residue_input: 
 30:             for line in residue_input: 
 31:                 residues.append(int(line.strip())) 
 32:     else: 
 33:         with open(topology_filename, 'r') as prmtop: 
 34:             target_line_num = None 
 35:             for i, line in enumerate(prmtop): 
 36:                 if 'POINTERS' in line: 
 37:                     target_line_num = i + 3 
 38:                 if i == target_line_num: 
 39:                     num_residues = int(line.split()[1]) 
 40:                     residues = range(1, num_residues + 1) 
 41:     return residues 
 42:  
 43: def create_hbond_dict(hbond_output_filename):  
 44:     # hbond_dict keys are (donor_res, 'bb'|'sc', acc_res, 'bb'|'sc') 
 45:     # hbond_dict values are the number of bonds  
 46:     hbond_dict = {} 
 47:     with open(hbond_output_filename, 'r') as hbond_output: 
 48:         for line in hbond_output: 
 49:             words = line.split() 
 50:             try: 
 51:                 if words[0] == '|': 
 52:                     donor_res, donor_atom = map(str.strip, words[2].strip(':').split('@')) 
 53:                     acceptor_res, acceptor_atom = map(str.strip, words[7].strip(':').split('@')) 
 54:                     # Make sure that the residue numbers are integers. 
 55:                     donor_res, acceptor_res = map(int, (donor_res, acceptor_res)) 
 56:                     if donor_atom == 'O' or donor_atom == 'OXT': 
 57:                         donor_type = 'bb' 
 58:                     else: 
 59:                         donor_type = 'sc' 
 60:                     if acceptor_atom == 'N': 
 61:                         acceptor_type = 'bb' 
 62:                     else: 
 63:                         acceptor_type = 'sc' 
 64:                     try: 
 65:                         hbond_dict[(donor_res, donor_type, acceptor_res, acceptor_type)] += 1 
 66:                     except KeyError: 
 67:                         hbond_dict[(donor_res, donor_type, acceptor_res, acceptor_type)] = 1 
 68:             except IndexError: 
 69:                 continue 
 70:     return hbond_dict 
 71:  
 72: def print_matrix(hbond_dict, residues): 
 73:     for res1 in residues: 
 74:         for res1_type in ['bb', 'sc']: 
 75:             for res2 in residues: 
 76:                 for res2_type in ['bb', 'sc']: 
 77:                     try: 
 78:                         print hbond_dict[(res1, res1_type, res2, res2_type)], 
 79:                     except KeyError: 
 80:                         print "0", 
 81:             print "" 
 82:  
 83: if __name__ == '__main__': 
 84:     import sys 
 85:  
 86:     # Assign the command-line arguments to specify file names 
 87:     topology_filename, restart_filename, donor_acceptor_filename = sys.argv[1:4] 
 88:     # If specified, get a list of residues we're interested in 
 89:     if len(sys.argv) >= 5: 
 90:         residues_filename = sys.argv[4] 
 91:     else: 
 92:         residues_filename = None 
 93:     # If specified, set a custom distance and angle cutoff 
 94:     if len(sys.argv) == 7: 
 95:         distance_cutoff, angle_cutoff = map(float, sys.argv[5:7]) 
 96:     else: 
 97:         distance_cutoff, angle_cutoff = 3.0, 120.0 
 98:  
 99:     # Set default names for the hbond files 
100:     hbond_input_filename, hbond_output_filename = 'hbond.in', 'hbond.out' 
101:  
102:     # Make the input file 
103:     make_hbond_input(hbond_input_filename, hbond_output_filename, 
104:                      donor_acceptor_filename, restart_filename, 
105:                      distance_cutoff, angle_cutoff) 
106:  
107:     # Run ptraj     
108:     run_ptraj(hbond_input_filename, topology_filename) 
109:     
110:     # Get the list of important residues 
111:     residues = get_residues(residues_filename, topology_filename) 
112:   4: 
113:     # Create the dictionary corresponding to the hbond matrix  5: # hbond_dict keys are (donor_res, 'bb'|'sc', acc_res, 'bb'|'sc')
114:     hbond_dict = create_hbond_dict(hbond_output_filename)  6: # hbond_dict values are the number of bonds 
115:   7: hbond_dict = {}
116:     # Print the matrix  8: 
117:     print_matrix(hbond_dict, residues)  9: # Relevant residues
  10: residues = []
  11: 
  12: if len(sys.argv) == 3:
  13:     with open(sys.argv[2], 'r') as residue_input:
  14:         for line in residue_input:
  15:             residues.append(int(line.strip()))
  16: 
  17: with open(sys.argv[1], 'r') as ptraj_input:
  18:     for line in ptraj_input:
  19:         words = line.split()
  20:         try:
  21:             if words[0] == '|':
  22:                 donor_res, donor_atom = map(str.strip, words[2].strip(':').split('@'))
  23:                 acceptor_res, acceptor_atom = map(str.strip, words[7].strip(':').split('@'))
  24:                 # Make sure that the residue numbers are integers.
  25:                 donor_res, acceptor_res = map(int, (donor_res, acceptor_res))
  26:                 if donor_atom == 'O' or donor_atom == 'OXT':
  27:                     donor_type = 'bb'
  28:                 else:
  29:                     donor_type = 'sc'
  30:                 if acceptor_atom == 'N':
  31:                     acceptor_type = 'bb'
  32:                 else:
  33:                     acceptor_type = 'sc'
  34:                 try:
  35:                     hbond_dict[(donor_res, donor_type, acceptor_res, acceptor_type)] += 1
  36:                 except KeyError:
  37:                     hbond_dict[(donor_res, donor_type, acceptor_res, acceptor_type)] = 1
  38:         except IndexError:
  39:             continue
  40: 
  41: for res1 in residues:
  42:     for res1_type in ['bb', 'sc']:
  43:         for res2 in residues:
  44:             for res2_type in ['bb', 'sc']:
  45:                 try:
  46:                     print hbond_dict[(res1, res1_type, res2, res2_type)],
  47:                 except KeyError:
  48:                     print "0",
  49:         print ""
  50: 
  51: #for key in hbond_dict:
  52: #    if len(residues) > 0:
  53: #        if key[0] in residues and key[2] in residues:
  54: #            print key, hbond_dict[key]
  55: #    else:
  56: #        print key, hbond_dict[key]
  57: #
  58: #
  59: ##  HBOND SUMMARY:
  60: ##output to file hbond.out, 
  61: ##      data was sorted, intra-residue interactions are NOT included, 
  62: ##      Distance cutoff is 3.00 angstroms, angle cutoff is 120.00 degrees
  63: ##      Hydrogen bond information dumped for occupancies > 0.00
  64: ##
  65: ##        DONOR         ACCEPTORH      ACCEPTOR
  66: ##  atom# :res@atom   atom# :res@atom atom# :res@atom %occupied  distance       angle
  67: ##|  5117 :316@O2  |  1759  :109@HE2  1758  :109@NE2 | 100.00  2.871 ( 0.00)  43.11 ( 0.00)
  68: ##|  5103 :315@N7A |  4331  :271@HD21 4330  :271@ND2 | 100.00  2.877 ( 0.00)  15.62 ( 0.00)
  69: ##|  5096 :315@O2X |  4179  :261@HZ2  4177  :261@NZ  | 100.00  2.706 ( 0.00)   8.80 ( 0.00)
  70: ##|  5095 :315@O1X |  4221  :264@HG1  4220  :264@OG1 | 100.00  2.656 ( 0.00)   7.49 ( 0.00)
  71: ##|  5095 :315@O1X |  4191  :262@HG   4190  :262@OG  | 100.00  2.534 ( 0.00)  10.65 ( 0.00)
  72: ##|  5093 :315@O2B |  4273  :267@HH21 4272  :267@NH2 | 100.00  2.781 ( 0.00)  33.51 ( 0.00)
  73: ##|  5075 :315@O2N |  3381  :213@HG   3380  :213@OG  | 100.00  2.572 ( 0.00)   8.04 ( 0.00)
  74: ##|  5075 :315@O2N |  3330  :209@HG   3329  :209@OG  | 100.00  2.641 ( 0.00)   7.98 ( 0.00)
  75: ##|  5074 :315@O1N |   319   :20@HZ1   318   :20@NZ  | 100.00  2.722 ( 0.00)  17.78 ( 0.00)
  76: ##|  5049 :315@O7N |  2509  :159@HD21 2508  :159@ND2 | 100.00  2.998 ( 0.00)  19.71 ( 0.00)
  77: ##|  5040 :314@OXT |  2544  :161@HD22 2542  :161@ND2 | 100.00  2.777 ( 0.00)   3.35 ( 0.00)
  78: ##|  5016 :313@OE1 |  3079  :193@HZ3  3076  :193@NZ  | 100.00  2.787 ( 0.00)   5.23 ( 0.00)
  79: ##|  4917 :307@O   |  2596  :164@HE21 2595  :164@NE2 | 100.00  2.836 ( 0.00)  29.52 ( 0.00)
  80: ##|  4914 :307@OD1 |  4902  :306@HZ2  4900  :306@NZ  | 100.00  2.769 ( 0.00)  10.54 ( 0.00)
  81: ##|  4855 :303@O   |  4985  :311@HE2  4984  :311@NE2 | 100.00  2.878 ( 0.00)  24.39 ( 0.00)
  82: ##|  4781 :298@O   |  4932  :308@HH   4931  :308@OH  | 100.00  2.777 ( 0.00)  15.06 ( 0.00)
  83: ##|  4771 :297@O   |  4738  :295@HH11 4737  :295@NH1 | 100.00  2.845 ( 0.00)  28.26 ( 0.00)
  84: ##|  4771 :297@O   |  4735  :295@HE   4734  :295@NE  | 100.00  2.887 ( 0.00)  29.00 ( 0.00)
  85: ##|  4760 :296@O   |  3459  :218@HE1  3458  :218@NE1 | 100.00  2.959 ( 0.00)  36.89 ( 0.00)
  86: ##|  4691 :293@OD1 |  4655  :291@HD21 4654  :291@ND2 | 100.00  2.882 ( 0.00)  21.23 ( 0.00)
  87: ##|  4574 :286@O   |  4621  :289@HG   4620  :289@OG  | 100.00  2.666 ( 0.00)   5.87 ( 0.00)
  88: ##|  4527 :283@OD2 |  3780  :238@HZ1  3779  :238@NZ  | 100.00  2.812 ( 0.00)   5.02 ( 0.00)
  89: ##|  4526 :283@OD1 |  3797  :239@HE2  3796  :239@NE2 | 100.00  2.782 ( 0.00)  16.47 ( 0.00)
  90: ##|  4517 :282@O   |  4572  :286@HG1  4571  :286@OG1 | 100.00  2.683 ( 0.00)   8.43 ( 0.00)
  91: ##|  4500 :281@O   |  4558  :285@HG1  4557  :285@OG1 | 100.00  2.714 ( 0.00)   8.19 ( 0.00)
  92: ##|  4478 :279@O   |  4035  :253@HE21 4034  :253@NE2 | 100.00  2.840 ( 0.00)  14.87 ( 0.00)
  93: ##|  4457 :278@OE2 |  3964  :249@HH11 3963  :249@NH1 | 100.00  2.780 ( 0.00)  25.30 ( 0.00)
  94: ##|  4422 :276@OD2 |  3833  :241@HZ1  3832  :241@NZ  | 100.00  2.922 ( 0.00)  51.94 ( 0.00)
  95: ##|  4421 :276@OD1 |  3833  :241@HZ1  3832  :241@NZ  | 100.00  2.826 ( 0.00)  13.43 ( 0.00)
  96: ##|  4392 :274@O   |  3967  :249@HH21 3966  :249@NH2 | 100.00  2.855 ( 0.00)  22.21 ( 0.00)
  97: ##|  4376 :273@O   |  3834  :241@HZ2  3832  :241@NZ  | 100.00  2.874 ( 0.00)   9.48 ( 0.00)
  98: ##|  4329 :271@OD1 |  5108  :315@H61A 5106  :315@N6A | 100.00  2.916 ( 0.00)  13.94 ( 0.00)
  99: ##|  4320 :270@O   |  3890  :245@HE22 3888  :245@NE2 | 100.00  2.855 ( 0.00)  15.77 ( 0.00)
 100: ##|  4317 :270@OE1 |  5107  :315@H62A 5106  :315@N6A | 100.00  2.822 ( 0.00)  15.93 ( 0.00)
 101: ##|  4317 :270@OE1 |  3849  :242@HG1  3848  :242@OG1 | 100.00  2.633 ( 0.00)   3.06 ( 0.00)
 102: ##|  4295 :268@O   |   574   :38@HH    573   :38@OH  | 100.00  2.755 ( 0.00)   8.22 ( 0.00)
 103: ##|  4033 :253@OE1 |  3961  :249@HE   3960  :249@NE  | 100.00  2.952 ( 0.00)  16.99 ( 0.00)
 104: ##|  3632 :229@OD2 |  3663  :231@HE   3662  :231@NE  | 100.00  2.983 ( 0.00)   4.62 ( 0.00)
 105: ##|  3631 :229@OD1 |  3666  :231@HH11 3665  :231@NH1 | 100.00  2.742 ( 0.00)   3.43 ( 0.00)
 106: ##|  3631 :229@OD1 |  2988  :188@HH   2987  :188@OH  | 100.00  2.611 ( 0.00)   7.60 ( 0.00)
 107: ##|  3620 :228@OE2 |  3709  :233@HZ1  3708  :233@NZ  | 100.00  2.796 ( 0.00)  16.27 ( 0.00)
 108: ##|  3542 :223@OD2 |  3430  :216@HH21 3429  :216@NH2 | 100.00  2.860 ( 0.00)  35.12 ( 0.00)
 109: ##|  3407 :215@OD2 |   321   :20@HZ3   318   :20@NZ  | 100.00  2.800 ( 0.00)   9.74 ( 0.00)
 110: ##|  3406 :215@OD1 |  4178  :261@HZ1  4177  :261@NZ  | 100.00  2.758 ( 0.00)  12.72 ( 0.00)
 111: ##|  3406 :215@OD1 |   321   :20@HZ3   318   :20@NZ  | 100.00  2.964 ( 0.00)  55.06 ( 0.00)
 112: ##|  3383 :213@O   |  3424  :216@HE   3423  :216@NE  | 100.00  2.874 ( 0.00)  46.19 ( 0.00)
 113: ##|  3372 :212@O   |  3427  :216@HH11 3426  :216@NH1 | 100.00  2.795 ( 0.00)  13.41 ( 0.00)
 114: ##|  3218 :201@O   |  2822  :177@HZ1  2821  :177@NZ  | 100.00  2.893 ( 0.00)   8.76 ( 0.00)
 115: ##|  3180 :199@OE1 |  4074  :255@HD22 4072  :255@ND2 | 100.00  2.915 ( 0.00)   5.36 ( 0.00)
 116: ##|  3157 :197@O   |  3194  :200@HG   3193  :200@OG  | 100.00  2.675 ( 0.00)   6.55 ( 0.00)
 117: ##|  3119 :195@O   |  3183  :199@HE22 3181  :199@NE2 | 100.00  2.901 ( 0.00)  10.82 ( 0.00)
 118: ##|  3059 :192@O   |  3134  :196@HE22 3132  :196@NE2 | 100.00  2.828 ( 0.00)  23.69 ( 0.00)
 119: ##|  3056 :192@OE1 |  3025  :190@HG1  3024  :190@OG1 | 100.00  2.655 ( 0.00)   8.92 ( 0.00)
 120: ##|  3027 :190@O   |  4060  :254@HH22 4058  :254@NH2 | 100.00  2.877 ( 0.00)  36.49 ( 0.00)
 121: ##|  3027 :190@O   |  4057  :254@HH12 4055  :254@NH1 | 100.00  2.804 ( 0.00)  29.05 ( 0.00)
 122: ##|  2897 :182@O   |  2496  :158@HG   2495  :158@OG  | 100.00  2.674 ( 0.00)   8.15 ( 0.00)
 123: ##|  2892 :182@OE1 |  5052  :315@H71N 5050  :315@N7N | 100.00  2.839 ( 0.00)  22.68 ( 0.00)
 124: ##|  2826 :177@O   |   105    :6@HD21  104    :6@ND2 | 100.00  2.940 ( 0.00)  31.16 ( 0.00)
 125: ##|  2804 :176@O   |  2227  :140@HE1  2226  :140@NE1 | 100.00  2.900 ( 0.00)  26.85 ( 0.00)
 126: ##|  2735 :172@O   |  2718  :171@HZ2  2716  :171@NZ  | 100.00  2.980 ( 0.00)  20.61 ( 0.00)
 127: ##|  2628 :166@OE2 |  2696  :170@HD21 2695  :170@ND2 | 100.00  2.834 ( 0.00)  16.96 ( 0.00)
 128: ##|  2627 :166@OE1 |  3214  :201@HZ1  3213  :201@NZ  | 100.00  2.778 ( 0.00)  20.50 ( 0.00)
 129: ##|  2507 :159@OD1 |  3315  :208@HH   3314  :208@OH  | 100.00  2.636 ( 0.00)   6.44 ( 0.00)
 130: ##|  2495 :158@OG  |  5051  :315@H72N 5050  :315@N7N | 100.00  2.847 ( 0.00)  30.44 ( 0.00)
 131: ##|  2375 :150@O   |  2429  :153@HZ2  2427  :153@NZ  | 100.00  2.898 ( 0.00)  15.00 ( 0.00)
 132: ##|  2366 :149@OE2 |  1418   :88@HZ2  1416   :88@NZ  | 100.00  2.771 ( 0.00)  11.19 ( 0.00)
 133: ##|  2350 :148@OD1 |  2798  :176@HH   2797  :176@OH  | 100.00  2.639 ( 0.00)   8.54 ( 0.00)
 134: ##|  2350 :148@OD1 |  2781  :175@HZ3  2778  :175@NZ  | 100.00  2.789 ( 0.00)   7.61 ( 0.00)
 135: ##|  2199 :138@OD2 |  1353   :84@HZ1  1352   :84@NZ  | 100.00  2.817 ( 0.00)  14.46 ( 0.00)
 136: ##|  2198 :138@OD1 |  2148  :135@HD21 2147  :135@ND2 | 100.00  2.842 ( 0.00)  10.33 ( 0.00)
 137: ##|  2189 :137@O   |  2719  :171@HZ3  2716  :171@NZ  | 100.00  2.893 ( 0.00)  22.47 ( 0.00)
 138: ##|  2151 :135@O   |  2213  :139@HG1  2212  :139@OG1 | 100.00  2.735 ( 0.00)   5.66 ( 0.00)
 139: ##|  2137 :134@O   |  4901  :306@HZ1  4900  :306@NZ  | 100.00  2.839 ( 0.00)  19.73 ( 0.00)
 140: ##|  2108 :132@OG  |  2135  :134@HG1  2134  :134@OG1 | 100.00  2.774 ( 0.00)   5.97 ( 0.00)
 141: ##|  2070 :129@O   |  2052  :128@HD22 2050  :128@ND2 | 100.00  2.880 ( 0.00)  12.23 ( 0.00)
 142: ##|  2004 :124@OD1 |  2051  :128@HD21 2050  :128@ND2 | 100.00  2.837 ( 0.00)  24.11 ( 0.00)
 143: ##|  1942 :120@O   |  1245   :78@HE1  1244   :78@NE1 | 100.00  2.832 ( 0.00)  12.89 ( 0.00)
 144: ##|  1822 :113@O   |  4879  :305@HE2  4878  :305@NE2 | 100.00  2.807 ( 0.00)  13.80 ( 0.00)
 145: ##|  1763 :109@O   |  2510  :159@HD22 2508  :159@ND2 | 100.00  2.873 ( 0.00)  19.34 ( 0.00)
 146: ##|  1665 :104@OD1 |  1075   :68@HH22 1073   :68@NH2 | 100.00  2.840 ( 0.00)  36.16 ( 0.00)
 147: ##|  1665 :104@OD1 |  1072   :68@HH12 1070   :68@NH1 | 100.00  2.732 ( 0.00)  21.73 ( 0.00)
 148: ##|  1637 :102@O   |  1071   :68@HH11 1070   :68@NH1 | 100.00  2.827 ( 0.00)  15.03 ( 0.00)
 149: ##|  1544  :97@O   |  1583   :99@HZ3  1580   :99@NZ  | 100.00  2.817 ( 0.00)  18.49 ( 0.00)
 150: ##|  1542  :97@OD2 |  1485   :93@HZ2  1483   :93@NZ  | 100.00  2.825 ( 0.00)   7.69 ( 0.00)
 151: ##|  1488  :93@O   |  1530   :96@HG   1529   :96@OG  | 100.00  2.745 ( 0.00)  13.59 ( 0.00)
 152: ##|  1332  :83@OE1 |  2109  :132@HG   2108  :132@OG  | 100.00  2.629 ( 0.00)   7.05 ( 0.00)
 153: ##|  1107  :70@O   |    32    :2@HH12   30    :2@NH1 | 100.00  2.814 ( 0.00)   6.88 ( 0.00)
 154: ##|  1105  :70@OE2 |  1051   :67@HZ3  1048   :67@NZ  | 100.00  2.814 ( 0.00)  14.78 ( 0.00)
 155: ##|  1104  :70@OE1 |   598   :39@HH11  597   :39@NH1 | 100.00  2.887 ( 0.00)  28.82 ( 0.00)
 156: ##|  1104  :70@OE1 |   595   :39@HE    594   :39@NE  | 100.00  2.866 ( 0.00)  24.57 ( 0.00)
 157: ##|   980  :63@OE2 |   921   :60@HZ2   919   :60@NZ  | 100.00  2.773 ( 0.00)   2.55 ( 0.00)
 158: ##|   900  :59@OE2 |   476   :31@HZ2   474   :31@NZ  | 100.00  2.781 ( 0.00)   7.00 ( 0.00)
 159: ##|   802  :52@O   |   414   :27@HG1   413   :27@OG1 | 100.00  2.730 ( 0.00)   9.16 ( 0.00)
 160: ##|   800  :52@OE2 |   785   :51@HD22  783   :51@ND2 | 100.00  2.806 ( 0.00)   9.65 ( 0.00)
 161: ##|   787  :51@O   |  1581   :99@HZ1  1580   :99@NZ  | 100.00  2.914 ( 0.00)  24.31 ( 0.00)
 162: ##|   782  :51@OD1 |  1582   :99@HZ2  1580   :99@NZ  | 100.00  2.939 ( 0.00)  54.84 ( 0.00)
 163: ##|   771  :50@OE2 |  1500   :94@HG1  1499   :94@OG1 | 100.00  2.671 ( 0.00)   2.34 ( 0.00)
 164: ##|   770  :50@OE1 |  1190   :75@HG   1189   :75@OG  | 100.00  2.560 ( 0.00)   8.48 ( 0.00)
 165: ##|   706  :46@O   |   742   :48@HE22  740   :48@NE2 | 100.00  2.901 ( 0.00)   9.02 ( 0.00)
 166: ##|   663  :43@O   |  1211   :76@HZ2  1209   :76@NZ  | 100.00  2.801 ( 0.00)  18.79 ( 0.00)
 167: ##|   652  :42@O   |   275   :18@HG1   274   :18@OG1 | 100.00  2.654 ( 0.00)  13.18 ( 0.00)
 168: ##|   650  :42@OD2 |  5061  :315@HO2N 5060  :315@O2D | 100.00  2.585 ( 0.00)   7.10 ( 0.00)
 169: ##|   650  :42@OD2 |  1210   :76@HZ1  1209   :76@NZ  | 100.00  2.743 ( 0.00)  21.72 ( 0.00)
 170: ##|   649  :42@OD1 |  2894  :182@HE21 2893  :182@NE2 | 100.00  2.877 ( 0.00)  11.25 ( 0.00)
 171: ##|   580  :38@O   |   601   :39@HH21  600   :39@NH2 | 100.00  2.879 ( 0.00)  12.24 ( 0.00)
 172: ##|   534  :35@OD2 |   920   :60@HZ1   919   :60@NZ  | 100.00  2.776 ( 0.00)  26.05 ( 0.00)
 173: ##|   524  :34@O   |   602   :39@HH22  600   :39@NH2 | 100.00  2.930 ( 0.00)  31.30 ( 0.00)
 174: ##|   334  :21@O   |   756   :49@HD22  754   :49@ND2 | 100.00  2.919 ( 0.00)  21.33 ( 0.00)
 175: ##|   301  :19@O   |   320   :20@HZ2   318   :20@NZ  | 100.00  2.890 ( 0.00)  40.60 ( 0.00)
 176: ##|   277  :18@O   |   755   :49@HD21  754   :49@ND2 | 100.00  2.854 ( 0.00)  15.06 ( 0.00)
 177: ##|   161  :10@O   |    34    :2@HH21   33    :2@NH2 | 100.00  2.908 ( 0.00)  16.80 ( 0.00)
 178: ##|   103   :6@OD1 |   120    :7@HD22  118    :7@ND2 | 100.00  2.913 ( 0.00)  22.69 ( 0.00)
 179: ## ---------------- --------------------------------- -------------------------------------


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0