hdiff output

r31936/cutoffs.dat 2017-02-17 17:30:12.531884869 +0000 r31935/cutoffs.dat 2017-02-17 17:30:14.211907220 +0000
  1:  1840.00d0       1600.0d0  1: svn: E195012: Unable to find repository location for 'svn+ssh://svn.ch.private.cam.ac.uk/groups/wales/trunk/SCRIPTS/OPEP/cutoffs.dat' in revision 31935
  2:  258.75d0         225.0d0 
  3:  74.60             64.0d0 
  4:  258.75d0         225.0d0 


r31936/cutoffs_RNA.dat 2017-02-17 17:30:12.751887797 +0000 r31935/cutoffs_RNA.dat 2017-02-17 17:30:14.431910147 +0000
  1:  144.0d0          100.0d0  1: svn: E195012: Unable to find repository location for 'svn+ssh://svn.ch.private.cam.ac.uk/groups/wales/trunk/SCRIPTS/OPEP/cutoffs_RNA.dat' in revision 31935
  2:  144.0d0          100.0d0 
  3:  144.0d0          100.0d0 
  4:  144.0d0          100.0d0 


r31936/OPEP 2017-02-17 17:30:12.323882103 +0000 r31935/OPEP 2017-02-17 17:30:13.935903548 +0000
  1: svn: warning: W195007: URL 'svn+ssh://svn.ch.private.cam.ac.uk/groups/wales/trunk/SCRIPTS/OPEP' refers to a directory  1: svn: E195012: Unable to find repository location for 'svn+ssh://svn.ch.private.cam.ac.uk/groups/wales/trunk/SCRIPTS/OPEP' in revision 31935
  2: svn: E200009: Could not cat all targets because some targets are directories 
  3: svn: E200009: Illegal target for the requested operation 


r31936/parm-OPEP3RNA.dat 2017-02-17 17:30:12.971890723 +0000 r31935/parm-OPEP3RNA.dat 2017-02-17 17:30:14.651913073 +0000
  1: PARM91 All-Atom Force Field with TIP3P Water, New LP params, cations  1: svn: E195012: Unable to find repository location for 'svn+ssh://svn.ch.private.cam.ac.uk/groups/wales/trunk/SCRIPTS/OPEP/parm-OPEP3RNA.dat' in revision 31935
  2: BR 79.90 
  3: C  12.01 
  4: CA 12.01 
  5: A  12.01 
  6: CB 12.01 
  7: CN 12.01 
  8: CC 12.01                ? 
  9: CD 13.02                ? 
 10: CE 13.02 
 11: CF 13.02 
 12: CG 13.02 
 13: L1 44.11                 !! MASSE CORRECTE POUR MD 
 14: K1 73.05                 !! MASSES OK FOR MD 
 15: I1 57.13                 !! OK for MD  
 16: I2 13.02 
 17: E1 60.06                 !!  OK for MD                                                               
 18: E2 13.02 
 19: Y1 83.13                 !! MASSE OK for MD  
 20: Y2 13.02 
 21: S1 31.04                 !! MASSE CORRECTE POUR MD 
 22: S2 13.02 
 23: S4 13.02 
 24: X1 82.12                  !! MASSE CORRECTE POUR MD 
 25: X2 13.02 
 26: N1  1.02                   
 27: N5 13.02 
 28: N2 13.02 
 29: M1 76.17                  !! MASSE OK for MD  
 30: M2 13.02 
 31: V1 30.08                  !! MASSE CORRECTE POUR MD  
 32: T1 45.07                  !!  MASSE CORRECTE POUR MD  
 33: Q2 13.02 
 34: Z2 13.02 
 35: Q1 60.08                  !! MASSE CORRECTE POUR MD  
 36: CH 13.02 
 37: W1 130.18                 !!  MASSE OK for MD  
 38: W2 13.02 
 39: D1 46.03                  !!   MASSE OK for MD  
 40: W1 1.02 
 41: AS 46.05                  !! MASSE CORRECTE POUR MD  
 42: D2 13.02 
 43: F1 79.13                  !!  MASSE OK for MD  
 44: F2 13.02 
 45: CI 1.02 
 46: CJ 13.02 
 47: CK 12.01 
 48: CM 12.01 
 49: CN 12.01 
 50: CP 13.02 
 51: CQ 12.01                ? 
 52: CR 12.01 
 53: CT 12.01 
 54: CV 12.01 
 55: CW 12.01 
 56: CX 14.03 
 57: CY 12.01                  !!  MASSE CORRECTE FOR CYS FREE  
 58: CZ 14.03 
 59: C2 14.03 
 60: C3 15.04 
 61: C* 12.01 
 62: CL 35.45 
 63: C0 40.08               c0 is calcium 
 64: F  19.00 
 65: H  1.008 
 66: HC 1.008 
 67: HO 1.008 
 68: HS 1.008 
 69: HW 1.008 
 70: H2 1.008 
 71: H3 1.008 
 72: H4 1.008 
 73: I  126.9 
 74: IM 35.45                 ASSUMED TO BE CL- 
 75: IP 22.99                 ASSUMED TO BE NA+ 
 76: N  14.01 
 77: NA 14.01 
 78: NB 14.01 
 79: NZ 14.01 
 80: NP 14.01 
 81: NO 14.01 
 82: NC 14.01 
 83: NT 14.01 
 84: N2 14.01 
 85: N3 17.04                 !! N3 for NH3 OK FOR MD 
 86: N* 14.01 
 87: O  16.00 
 88: W  16.00 
 89: OW 16. 
 90: OH 16.00 
 91: OM 16.00 
 92: OS 16.00 
 93: O2 16.00 
 94: P  36.97 
 95: QC 132.9               qc is cesium 
 96: QK 39.10               qk is potassium 
 97: QL  6.94               ql is lithium 
 98: QN 22.99               qn is  sodium 
 99: QR 85.47               qr is rubidium 
100: S  32.06 
101: SH 32.06 
102: SF 32.06 
103: S* 32.06 
104: CU 63.55 
105: FE 55.0 
106: LP  3.0 
107: R4 20.00 
108: R5 12.00 
109: R1 12.00 
110: G1 75.00 
111: G2 75.00 
112: A1 67.00 
113: A2 67.00 
114: U1 131.00 
115: C1 130.00 
116: D  1000.0 
117: MG 24.305                magnesium 
118:  
119: C   H   HO  H2  H3  N   NA  NB  NC  N2  NT  N2  N3  N*  O   OH  OS  P   OW  MG  HW  Y2  
120:  
121: R4-P   20.       3.850    ! 3.818 -> 3.900 -> 3.820 -> 3.6  softer ??? 
122: R4-R1 200.       2.344 
123: R1-G1 200.       2.622 
124: R1-A1 200.       2.633 
125: R1-U1 200.       3.062 
126: R1-G1 200.       2.622 
127: R1-C1 200.       3.004 
128: G1-G2 200.       2.45 
129: A1-A2 200.       2.18 
130: C -R4 200.       1.52 
131: P -O  200.       1.593 
132: O -C  200.       1.430 
133: D -D   40.       12.00 
134: R4-D   10.       12.00 
135: D -O   10.       12.00 
136: D -P   10.       12.00 
137:  
138: R4-R1-A1    70.        123.6    !! k=50 works 
139: R4-R1-U1    70.        132.5 
140: R4-R1-G1    70.        123.5 
141: R4-R1-C1    70.        131.1 
142: R1-A1-A2   120.        116.7 
143: R1-G1-G2   120.        111.2 
144: P -O -C     70.        122.9 
145: O -C -R4    70.        110.6 
146: C -R4-P     70.         98.0            !! 100 or 109 or 95.1 orig 
147: R4-P -O     50.        110.0            !! 105.0 or 101.3 
148: C -R4-R1    70.        135.5 
149: R1-R4-P    100.         98.0 
150: D -D -D     80.        180.0 
151:  
152: R4-R1-G1-G2   1     20.0       -30.0              1.        !! -20 
153: R4-R1-A1-A2   1     20.0       -30.0              1.        !! -20 
154: C -R4-P -O    1      6.0        35.0              1.        !! history coef: 75 -> 50 angle: 75 -> 25 -> 35 
155: C -R4-R1-A1   1     10.0      -155.0              1.        !! history coef: 50 -> 150 
156: C -R4-R1-G1   1     10.0      -150.0              1.        !! history coef: 50 -> 150 
157: C -R4-R1-C1   1     10.0      -150.0              1. 
158: C -R4-R1-U1   1     10.0      -145.0              1. 
159: P -O -C -R4   1     15.0        -2.0              1.        !! history: coef: 50 -> 10  
160: R4-P -O -C    1      7.0        80.0              1.              !! val AMBER  history: 95 -> 85 
161: O -C -R4-P    1      2.0      -100.0              1.               !! -105 history coef: 25 -> 2 
162: O -C -R4-R1   1      2.0       140.0              1.   
163: C -R1-R4-P    1      0.0        85.0              1.        !! history coef: 50 -> 200 angle: 70 -> 60 
164: P -R4-R1-G1   1     15.0       100.0              1. 
165: P -R4-R1-A1   1     15.0       100.0              1. 
166: P -R4-R1-C1   1     15.0       105.0              1. 
167: P -R4-R1-U1   1     15.0       100.0              1. 
168: R1-R4-P -O    1      5.0       165.0              1. 
169:  
170: X -C2-CH-X          1.0          180.          3. 
171: X -CH-CH-X          1.0          180.          3. 
172: X -CH-N -C          2.52         180.          3.             !! 3. before 
173: X -CH-N -C2         1.0          180.          3.             !! 3. before 
174: X -CH-N -C3         1.0          180.          3.             !! new for PHS  
175: X -X -N -H          2.0          180.          2.             !! orig 10. 
176: X -X -N2-H3         1.0          180.          2. 
177: X -X -N2-H2         1.0          180.          2. 
178: X -X -NT-H2         1.0          180.          2.             ! HN2 group 
179: X -X -NA-H          1.0          180.          2. 
180: X -O2-C -O2         2.0          180.          2. 
181: X -O2-C -OH         10.5         180.          2.             ! glh phil 
182: X -CH-NT-C          14.          180.          3. 
183: X -CH-N3-C           1.          180.          3. 
184: X -H2-N -H2         1.0          180.          2. 
185: X -N2-CA-N2         10.5         180.          2. 
186: X -CT-N -CT         1.0          180.          2. 
187: X -X -CA-HC         2.           180.          2. 
188: X -X -C*-HC         0.           180.          2. 
189: X -X -CW-HC         0.           180.          2. 
190: X -X -CN-CB         0.           180.          2. 
191: X -X -CB-CN         0.           180.          2. 
192: X -X -CB-C*         0.           180.          2. 
193: X -X -CB-CA         0.           180.          2. 
194: X -X -CN-CA         0.           180.          2. 
195: X -X -CN-NA         0.           180.          2. 
196: H2-CH-N2-H2         0.0          180.          3. 
197: C3-CH-NT-C          14.0         180.          3. 
198: CH-CH-C -N3         7.0          180.          3. 
199: C2-CH-C -N3         7.0          180.          3. 
200: C3-CH-CA-C3         7.0          180.          3. 
201: C*-NA-CA-CA          0.          180.          2. 
202:  
203:   H   NB  7557.     2385.                                4. 
204:   HO  OH  7557.     2385.                                4. 
205:   H   NC  10238.    3071.                                4. 
206:   H   OS  7557.     2385.                                4. 
207:   H   OW  7557.     2385.                                4. 
208:   H   SH  265720.   35429.                               4. 
209:   H2  NB  7557.     2385.                                4. 
210:   H2  NC  10238.    3071.                                4. 
211:   H2  OS  7557.     2385.                                4. 
212:   H2  OW  7557.     2385.                                4. 
213:   H2  S   265720.   35429.                               4. 
214:   H2  SH  265720.   35429.                               4. 
215:   H3  NB  4019.     1409.                                4. 
216:   H3  NC  4019.     1409.                                4. 
217:   H3  OH  4019.     1409.                                4. 
218:   H3  OS  4019.     1409.                                4. 
219:   H3  OW  4019.     1409.                                4. 
220:   H3  S   7557.     2385.                                4. 
221:   H3  SH  7557.     2385.                                4. 
222:   HO  NB  7557.     2385.                                4. 
223:   HO  NC  10238.    3071.                                4. 
224:   HO  O2  4019.     1409.                                4. 
225:   HO  OS  7557.     2385.                                4. 
226:   HO  OW  7557.     2385.                                4. 
227:   HO  S   265720.   35429.                               4. 
228:   HO  SH  265720.   35429.                               4. 
229:   HS  NB  14184.    3082.                                4. 
230:   HS  NC  14184.    3082.                                4. 
231:   HS  O   14184.    3082.                                4. 
232:   HS  O2  4019.     1409.                                4. 
233:   HS  OH  14184.    3082.                                4. 
234:   HS  OS  14184.    3082.                                4. 
235:   HS  OW  14184.    3082.                                4. 
236:   HS  S   265720.   35429.                               4. 
237:   HS  SH  265720.   35429.                               4. 
238:   HW  NB  7557.     2385.                                4. 
239:   HW  NC  10238.    3071.                                4. 
240:   HW  O   7557.     2385.                                4. 
241:   HW  O2  4019.     1409.                                4. 
242:   HW  OH  7557.     2385.                                4. 
243:   HW  OS  7557.     2385.                                4. 
244:   HW  OW  0000.     0000.                                4. 
245:   HW  S   265720.   35429.                               4. 
246:   HW  SH  265720.   35429.                               4. 
247:  
248: N   NA  NP  NC  NO  N2  NT  N* 
249: C   C*  CA  CB  CC  CN  CM  CK  CQ  CD  CE  CF  CG  CP  CI  CJ  CW  CV  CR  CA 
250: C   CX    
251: M1  X1  I1  
252:  
253: STDA      RE 
254:   H        1.00       0.020 
255:   HO       1.00       0.020 
256:   HS       1.00       0.020 
257:   H2       1.00       0.020 
258:   H3       1.00       0.020 
259:   HW       0.00       0.0 
260:   HC       1.54       0.01 
261:   OH       1.65       1.52 
262:   OS       1.65       1.52 
263:   O        1.6        0.20 
264:   O2       1.6        0.20 
265:   OW       1.768      1.522 
266:   CT       1.80       0.06 
267:   CH       1.85       0.09 
268:   C2       1.925      0.12 
269:   C3       2.00       1.520 
270:   C        1.85       0.120 
271:   C0       1.60       0.10 
272:   MG       1.17       0.10 
273:   N        1.75       0.16 
274:   NB       1.75       0.16 
275:   NC       1.75       0.16 
276:   NT       1.85       0.12 
277:   N3       1.85       0.08 
278:   QC       3.40       0.000081 
279:   QK       2.66       0.00033 
280:   QL       1.14       0.018 
281:   QN       1.87       0.0028 
282:   IP       1.87       0.0028 
283:   QR       2.96       0.00017 
284:   S        2.00       0.20 
285:   SH       2.00       0.20 
286:   P        2.10       0.20 
287:   LP       1.2        0.016 
288:  
289: STUB      RE 
290:   H        1.00       0.006                          ! amber values  
291:   O        1.65       0.006                           !   
292:   C2       1.964      0.10                           ! before 2.235 AMBER  
293:   C3       2.287      0.10 
294:   CH       2.385      0.10                           ! was 0.06 before   
295:   C        1.85       0.006                             !   
296:   N        1.75       0.10                          !   
297:   S        2.0        0.20  
298:   P        3.00       0.006                              ! RNA 
299:   R1       2.50       0.006                              ! RNA 
300:   R4       2.80       0.006                              ! RNA 2.15 orig 
301:   C1       2.00       0.006                              ! RNA 
302:   U1       1.90       0.006                              ! RNA 
303:   G1       1.95       0.006                              ! RNA 
304:   G2       1.80       0.006                              ! RNA 
305:   A1       1.90       0.006                              ! RNA 
306:   A2       1.80       0.006                              ! RNA 
307:  
308: END 
309:  
310:  


r31936/parm.py 2017-02-17 17:30:13.227894128 +0000 r31935/parm.py 2017-02-17 17:30:14.871916000 +0000
  1: # !/usr/bin/env python  1: svn: E195012: Unable to find repository location for 'svn+ssh://svn.ch.private.cam.ac.uk/groups/wales/trunk/SCRIPTS/OPEP/parm.py' in revision 31935
  2: # -*- coding: UTF8 -*- 
  3:  
  4: import argparse 
  5: import math 
  6: import os 
  7: import os.path 
  8: import shutil 
  9: import string 
 10: import sys 
 11:  
 12: parser = argparse.ArgumentParser(description='Parse parameter generator arguments') 
 13: parser.add_argument("pdbfilename") 
 14: parser.add_argument('-p', '--parmfile', type=str, default=None) 
 15: parser.add_argument('-o', '--outbase', type=str, default="Output") 
 16: parser.add_argument('--local', action='store_true') 
 17:  
 18: args = parser.parse_args() 
 19:  
 20:  
 21: # atom name to weight type 
 22: atn2ty = {"P":"P", "O5*":"O", "C5*":"C", "CA":"R4", "CY":"R1", "A1":"A1", "A2":"A2", "G1":"G1", "G2":"G2", "C1":"C1", "U1":"U1", "D":"D", "MG":"MG"} 
 23: # Main, sugar, end, or heteroatom ? 
 24: aty2mse = {"P":"M", "O":"M", "C":"M", "R4":"M", "R1":"S", "A1":"S", "A2":"E", "G1":"S", "G2":"E", "C1":"E", "U1":"E", "D":"M", "MG":"H"} 
 25: # residue letter to number 
 26: resl2i = {'G':1, 'A':2, 'C':3, 'U':4, 'D':5}#, 'DG':1, 'DA':2, 'DC':3, 'DU':4} 
 27: # residue letter to name 
 28: resl2n = {'G':"GUA", 'A':"ADE", 'C':"CYT", 'U':"URA", 'D':"DUM"}#, 'DG':"GUA", 'DA':"ADE", 'DC':"CYT", 'DU':"URA", 'DT': "THY"} 
 29:  
 30: class Atom(): 
 31:   def __init__(self, pdbline): 
 32:     self.idx = int(pdbline[6:11]) 
 33:     self.name = pdbline[12:16] 
 34:     self.aty = atn2ty[self.name.strip()] 
 35:     self.resname = pdbline[17:20] 
 36:     self.chainid = pdbline[21:22] 
 37:     self.residx = int(pdbline[22:26]) 
 38:     self.x = float(pdbline[30:38]) 
 39:     self.y = float(pdbline[38:46]) 
 40:     self.z = float(pdbline[46:54]) 
 41:  
 42: """ 
 43: Represent one chain in a PDB file 
 44: """ 
 45: class Chain(): 
 46:   def __init__(self): 
 47:     self.atlist = list() 
 48:     self.reslist = list() 
 49:  
 50: """ 
 51: Degrees to radians conversion 
 52: """ 
 53: def deg2rad(f): 
 54:   return f/180*math.pi 
 55:  
 56: """ 
 57: Wrap a long text line on 80 characters 
 58: """ 
 59: def wraptxt(txt, width=80, ls=False): 
 60:   i = 0 
 61:   txt2 = "" 
 62:   while i+width < len(txt): 
 63:     i0 = i 
 64:     i += width 
 65:     # Look for either beginning or end of word, i.e space+letter or letter+space 
 66:     while (txt[i] in string.whitespace) == (txt[i-1] in string.whitespace): 
 67:       i -= 1 
 68:       if i <= 0: 
 69:         raise "Error" 
 70:     if ls: 
 71:       txt2 += txt[i0:i].lstrip()+'\n' 
 72:     else: 
 73:       txt2 += txt[i0:i]+'\n' 
 74:    
 75:   if ls: 
 76:     txt2 += txt[i:].lstrip() 
 77:   else: 
 78:     txt2 += txt[i:] 
 79:    
 80:   return txt2 
 81:  
 82:  
 83: def fortranfloat(f): 
 84:   s = "{:12.8E}".format(f) 
 85:   return "% 9.8fE%+03d" % (float(s[:-4])/10, int(s[-3:])+1) 
 86:  
 87:  
 88: ######### read parameter file 
 89: if args.parmfile is None: 
 90:   parmfile =  os.path.join(os.path.dirname(sys.argv[0]),"parm-OPEP3RNA.dat") 
 91: else: 
 92:   parmfile = args.parmfile 
 93:  
 94: pf = open(parmfile, 'r') 
 95:  
 96: atl = list() 
 97: atw = dict() 
 98: pf = pf.readlines() 
 99:  
100: i=1 
101: for l in pf[1:]: 
102:   #if l[0] == '\n': 
103:   if not l.strip(): 
104:     break 
105:   atl.append(l.split()[0]) 
106:   atw[l.split()[0]] = float(l.split()[1]) 
107:   i += 1 
108:  
109: i +=3 
110: bonds = [] 
111: for l in pf[i:]: 
112:   #if l[0] == '\n': 
113:   if not l.strip(): 
114:     break 
115:   b = l.split("-") 
116:   b2 = b[1].split() 
117:   rk = float(b2[1]) 
118:   req = float(b2[2]) 
119:   b1 = b[0].strip() 
120:   b2 = b2[0].strip() 
121:   bonds.append((b1, b2, rk, req)) 
122:   i += 1 
123:  
124: i += 1 
125: angles = [] 
126: for l in pf[i:]: 
127:   #if l[0] == '\n': 
128:   if not l.strip(): 
129:     break 
130:   b = l.split("-") 
131:   b3 = b[2].split() 
132:   rk = float(b3[1]) 
133:   req = deg2rad(float(b3[2])) 
134:   b1 = b[0].strip() 
135:   b2 = b[1].strip() 
136:   b3 = b3[0].strip() 
137:   angles.append((b1, b2, b3, rk, req)) 
138:   i += 1 
139:  
140: i += 1 
141: diheds = [] 
142: for l in pf[i:]: 
143:   #if l[0] == '\n': 
144:   if not l.strip(): 
145:     break 
146:   b = l[:13].split("-") 
147:   b2 = l[13:].split() 
148:   pk = float(b2[1]) 
149:   phase = deg2rad(float(b2[2])) 
150:   pn = float(b2[3]) 
151:   b1 = b[0].strip() 
152:   b2 = b[1].strip() 
153:   b3 = b[2].strip() 
154:   b4 = b[3].strip() 
155:   diheds.append((b1, b2, b3, b4, pk,  pn, phase)) 
156:   i += 1 
157:  
158:  
159:  
160:  
161: ######### 
162:  
163:  
164:  
165:  
166: pdbbase = os.path.basename(args.pdbfilename).split('.')[0] 
167:  
168: basefilename = "baselist.dat" 
169: chainfilename = "ichain.dat" 
170: if args.local: 
171:   topfilename = "parametres.top" 
172: else: 
173:   topfilename = pdbbase+".top" 
174:  
175: atoms = [] 
176: hetatms = [] 
177: with open(args.pdbfilename, "r") as pdbfile: 
178:   for line in pdbfile: 
179:     if line[0:4] == "ATOM": 
180:       atoms.append(Atom(line)) 
181:     elif line[0:6] == "HETATM": 
182:       hetatms.append(Atom(line)) 
183:  
184: # # ordered dict, because everything is index-based, and ordinary dict do not preserve the order of insertion 
185: chains = [Chain()] 
186: for ai, at in enumerate(atoms): 
187:   # cut chains when chainid changes, or when the next residue's first atom is O5*, not P (i.e, it should be two chains in the first place 
188:   if ai > 1 and (atoms[ai-1].chainid != at.chainid or (at.aty == 'O' and atoms[ai-1].aty != 'P')): 
189:     chains.append(Chain()) 
190:   chains[-1].atlist.append(at) 
191:  
192: for c in chains: 
193:   for at in c.atlist: 
194:     while len(c.reslist) < at.residx-c.atlist[0].residx+1: 
195:       c.reslist.append(list()) 
196:     c.reslist[at.residx-c.atlist[0].residx].append(at) 
197:  
198: residues = [] 
199: for c in chains: 
200:   residues += c.reslist 
201:  
202:  
203: #print [[len(r) for r in c.reslist] for c in chains] 
204:  
205:  
206:  
207:  
208:  
209:  
210:  
211: if args.local: 
212:   outdir="" 
213: else: 
214:   if not os.path.exists(args.outbase): 
215:     os.mkdir(args.outbase) 
216:   outdir = os.path.join(args.outbase, pdbbase) 
217:   print "Creating dir %s" % (outdir) 
218:   if os.path.exists(outdir): 
219:     print "Output directory exists! Backing it up" 
220:     bakdir = outdir+".bak" 
221:     if os.path.exists(bakdir): 
222:       shutil.rmtree(bakdir) 
223:     shutil.move(outdir, bakdir) 
224:   os.mkdir(outdir) 
225:   shutil.copy(args.pdbfilename, os.path.join(outdir, pdbbase+".pdb")) 
226:  
227:  
228:  
229:  
230: with open(os.path.join(outdir,basefilename), 'w') as bfn: 
231:   for r in residues: 
232:     print >>bfn,  r[-1].idx, resl2i[r[0].resname.strip()] 
233:  
234: with open(os.path.join(outdir,chainfilename), 'w') as cfn: 
235:   print >>cfn, len(chains) 
236:   for ci, c in enumerate(chains): 
237:     print >>cfn, ci+1, len(c.atlist), '0' 
238:  
239:  
240:  
241: aty = aty2mse.keys() 
242: #for at in atoms: 
243: #  if at.aty in atw and at.aty not in aty: 
244: #    aty.append(at.aty) 
245:  
246: #if len(aty) == 12: 
247: #  print "Dummy residues were included (representing simplified double helices)." 
248: #elif len(aty) != 11: 
249: #  print "There are not 11 atom types, as should be!" 
250:  
251: atl2 = list() 
252: for l in atl: 
253:   if l in aty: 
254:     atl2.append(l) 
255: #print aty 
256: #print atl2 
257:  
258:  
259:  
260:  
261:  
262:  
263: ############ Find bonds, angles, etc... 
264:  
265: bondl = list() 
266: b1 = [(b[0], b[1]) for b in bonds] 
267: #import pdb; pdb.set_trace() 
268: for ri, r in enumerate(residues): 
269:   r4i = None 
270:   for ati, at in enumerate(r[:-1]): 
271:     if at.aty == "R4": 
272:       r4i = at.idx 
273:     for at2 in r[ati+1:]: 
274:       if (at.aty, at2.aty) in b1: 
275:         bondl.append(((at.idx-1)*3, (at2.idx-1)*3, b1.index((at.aty, at2.aty))+1)) 
276:   if ri+1 >= len(residues): 
277:     continue 
278:   if r4i is not None and residues[ri+1][0].chainid == residues[ri][0].chainid: 
279:     if residues[ri+1][0].aty == 'P': 
280:       bondl.append(((r4i-1)*3, (residues[ri+1][0].idx-1)*3, b1.index(('R4', 'P'))+1)) 
281:     elif residues[ri+1][0].aty == 'D': 
282:       bondl.append(((r4i-1)*3, (residues[ri+1][0].idx-1)*3, b1.index(('R4', 'D'))+1)) 
283:   elif r4i is None: 
284:     bondl.append(((r[0].idx-1)*3, (residues[ri+1][0].idx-1)*3, b1.index(('D', residues[ri+1][0].aty))+1)) 
285:  
286:  
287:  
288: anglel = list() 
289: b1 = [(b[0], b[1], b[2]) for b in angles] 
290: for ri, r in enumerate(residues): 
291:   r4i = None 
292:   for ati, at in enumerate(r[:-2]): 
293:     if at.aty == "R4": 
294:       r4i = at.idx 
295:     for at2i, at2 in enumerate(r[ati+1:-1]): 
296:       for at3 in r[at2i+1:]: 
297:         if (at.aty, at2.aty, at3.aty) in b1: 
298:           anglel.append(((at.idx-1)*3, (at2.idx-1)*3, (at3.idx-1)*3, b1.index((at.aty, at2.aty, at3.aty))+1)) 
299:   if ri+1 >= len(residues): 
300:     continue 
301:   if r4i is not None and residues[ri+1][0].aty == 'P' and residues[ri+1][0].chainid == residues[ri][0].chainid: 
302:     anglel.append(((r4i-2)*3, (r4i-1)*3, (residues[ri+1][0].idx-1)*3, b1.index(('C', 'R4', 'P'))+1)) 
303:     anglel.append(((r4i)*3, (r4i-1)*3, (residues[ri+1][0].idx-1)*3, b1.index(('R1', 'R4', 'P'))+1)) 
304:     anglel.append(((r4i-1)*3, (residues[ri+1][0].idx-1)*3, (residues[ri+1][1].idx-1)*3, b1.index(('R4', 'P', 'O'))+1)) 
305:   elif r4i is None: 
306:     if residues[ri+1][0].aty == 'D' and ri+2 < len(residues) and residues[ri+2][0].aty == 'D': 
307:       anglel.append(((r[0].idx-1)*3, (residues[ri+1][0].idx-1)*3, (residues[ri+2][0].idx-1)*3, b1.index(('D', 'D', 'D'))+1)) 
308: #      anglel.append(((r[0].idx-1)*3, (residues[ri+1][0].idx-1)*3, (residues[ri+2][0].idx-1)*3, b1.index(('D', 'D', residues[ri+2][0].aty))+1)) 
309:  
310:  
311:  
312: dihedl = list() 
313: b0 = [(b[0], b[1], b[2], b[3]) for b in diheds] 
314: b1 = [(b[0], b[1]) for b in anglel] 
315: b2 = [(b[0], b[1]) for b in anglel] 
316: for ani, an in enumerate(anglel): 
317:   for an2 in anglel[ani+1:]: 
318:     if an[1] == an2[0] and an[2] == an2[1]: 
319:       if (atoms[an[0]/3].aty, atoms[an[1]/3].aty, atoms[an[2]/3].aty, atoms[an2[2]/3].aty) in b0: 
320:         dihedl.append((an[0], an[1], an[2], an2[2], b0.index((atoms[an[0]/3].aty, atoms[an[1]/3].aty, atoms[an[2]/3].aty, atoms[an2[2]/3].aty))+1)) 
321:     if an2[1] == an[0] and an2[2] == an[1]: 
322:       if (atoms[an2[0]/3].aty, atoms[an2[1]/3].aty, atoms[an2[2]/3].aty, atoms[an[2]/3].aty) in b0: 
323:         dihedl.append((an2[0], an2[1], an2[2], an[2], b0.index((atoms[an2[0]/3].aty, atoms[an2[1]/3].aty, atoms[an2[2]/3].aty, atoms[an[2]/3].aty))+1)) 
324:     if an[0] == an2[1] and an[1] == an2[0]: 
325:       if (atoms[an2[2]/3].aty, atoms[an[0]/3].aty, atoms[an[1]/3].aty, atoms[an[2]/3].aty) in b0: 
326:         dihedl.append((an2[2], an[0], an[1], an[2], b0.index((atoms[an2[2]/3].aty, atoms[an[0]/3].aty, atoms[an[1]/3].aty, atoms[an[2]/3].aty))+1)) 
327:  
328: #for r in residues: 
329: #  for at in r: 
330: #    if at.aty == "R4": 
331: #      r4i = at.idx 
332: #  dihedl.append(((r4i)*3, (r4i+1)*3, (r4i+2)*3, (r4i+3)*3, b1.index(('R4', 'R1', 'G1', 'G2'))+1)) 
333:  
334:  
335:  
336: ############ 
337:  
338:  
339:  
340:  
341:  
342:  
343:  
344: atoms += hetatms 
345:  
346:  
347: with open(os.path.join(outdir, topfilename), 'w') as tfn: 
348:   print >>tfn, "RNA molecule" 
349:    
350:   #      read(nf,9118) NATOM,NTYPES,NBONH,MBONA,NTHETH,MTHETA,NPHIH,MPHIA, 
351:   #     $              NHPARM,NPARM,NNB,NRES,NBONA,NTHETA,NPHIA, 
352:   #     $          NUMBND,NUMANG,NPTRA,NATYP,NPHB,IDUM,IDUM,IDUM,IDUM,IDUM, 
353:   #     $          IDUM,IDUM,IFBOX,NMXRS,IFCAP 
354:    
355:   txt =  ("{:6d}"*8).format(len(atoms), len(aty), 0, len(bondl), 0, len(anglel), 0, len(dihedl)) 
356:   txt += ("{:6d}"*7).format(0, 0, 0, len(residues), len(bondl), len(anglel), len(dihedl)) 
357:   txt += ("{:6d}"*10).format(len(bonds), len(angles), len(diheds), len(atl2), 0, 0, 0, 0, 0, 0) 
358:   txt += ("{:6d}"*5).format(0, 0, 0, 0, 0) 
359:   print >>tfn, wraptxt(txt, 72) 
360:    
361:   igraph = charg = mass = iac = numex = "" 
362:   for a in atoms: 
363:      igraph += "{:4s}".format(a.aty) 
364:      charg += " {: 12.8E}".format(0) 
365:      mass += " {:12s}".format(fortranfloat(atw[a.aty])) 
366:      iac += "{:6d}".format(atl2.index(a.aty)+1) 
367:      numex += "{:6d}".format(0) 
368:    
369:   print >>tfn, wraptxt(igraph, ls=True) 
370:   print >>tfn, wraptxt(charg) 
371:   print >>tfn, wraptxt(mass) 
372:   print >>tfn, wraptxt(iac, 72) 
373:   print >>tfn, wraptxt(numex, 72) 
374:    
375:    
376:   print >>tfn, wraptxt(("{:6d}"*len(aty)**2).format(*[0,]*len(aty)**2), 72) 
377:    
378:    
379:   labres = ipres = "" 
380:   for r in residues: 
381:     labres += "{:4s}".format(resl2n[r[0].resname.strip()]) 
382:     ipres += "{:6d}".format(r[0].idx) 
383:    
384:   labres = labres.replace(' ', 'i', 1) 
385:    
386:   print >>tfn, wraptxt(labres, ls=True) 
387:   print >>tfn, wraptxt(ipres, 72) 
388:    
389:    
390:   rkl = reql = "" 
391:   for b1, b2, rk, req in bonds: 
392:     rkl += " {:12s}".format(fortranfloat(rk)) 
393:     reql += " {:12s}".format(fortranfloat(req)) 
394:    
395:   print >>tfn, wraptxt(rkl) 
396:   print >>tfn, wraptxt(reql) 
397:    
398:    
399:   rkl = reql = "" 
400:   for b1, b2, b3, rk, req in angles: 
401:     rkl += " {:12s}".format(fortranfloat(rk)) 
402:     reql += " {:12s}".format(fortranfloat(req)) 
403:    
404:   print >>tfn, wraptxt(rkl) 
405:   print >>tfn, wraptxt(reql) 
406:    
407:    
408:   pkl = pnl = phasel = "" 
409:   for b1, b2, b3, b4, pk, pn, phase in diheds: 
410:     pkl += " {:12s}".format(fortranfloat(pk)) 
411:     pnl += " {:12s}".format(fortranfloat(pn)) 
412:     phasel += " {:12s}".format(fortranfloat(phase)) 
413:    
414:   print >>tfn, wraptxt(pkl) 
415:   print >>tfn, wraptxt(pnl) 
416:   print >>tfn, wraptxt(phasel) 
417:    
418:    
419:   print >>tfn, wraptxt((" {: 12.8E}"*len(aty)).format(*[0,]*len(aty))) 
420:    
421:   nttyp = len(aty)*(len(aty)+1)/2 
422:    
423:   print >>tfn, wraptxt((" {: 12.8E}"*nttyp).format(*[0,]*nttyp)) 
424:   print >>tfn, wraptxt((" {: 12.8E}"*nttyp).format(*[0,]*nttyp)) 
425:    
426:    
427:   print >>tfn, "" 
428:   bondt = "" 
429:   for b in bondl: 
430:     bondt += ("{:6d}"*3).format(*b) 
431:   print >>tfn, wraptxt(bondt, 72) 
432:    
433:    
434:   print >>tfn, "" 
435:   anglet = "" 
436:   for a in anglel: 
437:     anglet += ("{:6d}"*4).format(*a) 
438:   print >>tfn, wraptxt(anglet, 72) 
439:    
440:    
441:   print >>tfn, "" 
442:   dihedt = "" 
443:   for a in dihedl: 
444:     dihedt += ("{:6d}"*5).format(*a) 
445:   print >>tfn, wraptxt(dihedt, 72) 
446:    
447:   for i in range(20):   
448:     print >>tfn, wraptxt(("{:6d}"*len(aty)**2).format(*[0,]*len(aty)**2), 72) 
449:    
450:   print >>tfn, "" 
451:   print >>tfn, "" 
452:   print >>tfn, "" 
453:   igraph = mse = acount = "" 
454:   for ai, a in enumerate(atoms): 
455:      igraph += "{:4s}".format(a.aty) 
456:      mse += "{:4s}".format(aty2mse[a.aty]) 
457:      acount += "{:6d}".format(ai) 
458:    
459:   print >>tfn, wraptxt(igraph, 80, ls=True) 
460:   print >>tfn, wraptxt(mse, 80, ls=True) 
461:   print >>tfn, wraptxt(acount, 72, ls=True) 
462:    
463:  
464:  
465:  


r31936/scale.dat 2017-02-17 17:30:13.451897111 +0000 r31935/scale.dat 2017-02-17 17:30:15.083918824 +0000
  1:    1    2.323  1: svn: E195012: Unable to find repository location for 'svn+ssh://svn.ch.private.cam.ac.uk/groups/wales/trunk/SCRIPTS/OPEP/scale.dat' in revision 31935
  2:    2    2.366 
  3:    3    2.412 
  4:    4    1.750 
  5:    5    2.426 
  6:    6    1.988 
  7:    7    2.358 
  8:    8    1.725 
  9:    9    2.077 
 10:   10    2.009 
 11:   11    2.177 
 12:   12    2.366 
 13:   13    2.457 
 14:   14    1.980 
 15:   15    1.760 
 16:   16    1.706 
 17:   17    1.706 
 18:   18    2.208 
 19:   19    2.440 
 20:   20    2.307 
 21:   21    1.871 
 22:   22    2.196 
 23:   23    1.706 
 24:   24    2.194 
 25:   25    1.748 
 26:   26    2.445 
 27:   27    1.706 
 28:   28    1.803 
 29:   29    1.974 
 30:   30    2.194 
 31:   31    2.422 
 32:   32    1.828 
 33:   33    2.294 
 34:   34    1.894 
 35:   35    2.315 
 36:   36    1.750 
 37:   37    1.990 
 38:   38    1.752 
 39:   39    2.438 
 40:   40    2.052 
 41:   41    2.019 
 42:   42    2.235 
 43:   43    1.715 
 44:   44    1.727 
 45:   45    2.443 
 46:   46    2.116 
 47:   47    2.064 
 48:   48    2.321 
 49:   49    2.389 
 50:   50    2.360 
 51:   51    2.212 
 52:   52    2.151 
 53:   53    2.438 
 54:   54    1.978 
 55:   55    2.237 
 56:   56    1.908 
 57:   57    1.912 
 58:   58    1.785 
 59:   59    2.457 
 60:   60    2.410 
 61:   61    1.935 
 62:   62    2.204 
 63:   63    1.986 
 64:   64    1.902 
 65:   65    1.933 
 66:   66    1.795 
 67:   67    2.389 
 68:   68    1.752 
 69:   69    2.366 
 70:   70    1.881 
 71:   71    1.990 
 72:   72    2.467 
 73:   73    2.280 
 74:   74    2.204 
 75:   75    2.467 
 76:   76    2.467 
 77:   77    2.467 
 78:   78    2.467 
 79:   79    1.706 
 80:   80    2.412 
 81:   81    2.379 
 82:   82    2.467 
 83:   83    1.844 
 84:   84    2.334 
 85:   85    1.797 
 86:   86    2.430 
 87:   87    2.451 
 88:   88    1.706 
 89:   89    2.342 
 90:   90    2.336 
 91:   91    2.401 
 92:   92    2.467 
 93:   93    2.348 
 94:   94    1.980 
 95:   95    2.467 
 96:   96    2.297 
 97:   97    2.015 
 98:   98    1.766 
 99:   99    1.768 
100:  100    2.403 
101:  101    2.461 
102:  102    2.233 
103:  103    1.776 
104:  104    2.342 
105:  105    2.138 
106:  106    2.467 
107:  107    1.945 
108:  108    1.840 
109:  109    2.015 
110:  110    1.725 
111:  111    2.319 
112:  112    2.264 
113:  113    2.192 
114:  114    2.257 
115:  115    1.750 
116:  116    2.151 
117:  117    1.789 
118:  118    1.706 
119:  119    2.364 
120:  120    1.992 
121:  121    2.445 
122:  122    1.894 
123:  123    2.183 
124:  124    1.772 
125:  125    1.706 
126:  126    1.974 
127:  127    2.467 
128:  128    2.350 
129:  129    2.210 
130:  130    2.465 
131:  131    1.809 
132:  132    2.360 
133:  133    2.366 
134:  134    2.467 
135:  135    1.770 
136:  136    2.161 
137:  137    2.264 
138:  138    1.752 
139:  139    2.097 
140:  140    2.075 
141:  141    2.395 
142:  142    2.253 
143:  143    1.706 
144:  144    2.159 
145:  145    1.803 
146:  146    2.190 
147:  147    1.939 
148:  148    2.362 
149:  149    2.375 
150:  150    2.192 
151:  151    1.898 
152:  152    2.397 
153:  153    2.420 
154:  154    2.237 
155:  155    2.344 
156:  156    2.366 
157:  157    2.011 
158:  158    1.846 
159:  159    2.079 
160:  160    2.128 
161:  161    2.467 
162:  162    2.307 
163:  163    1.791 
164:  164    2.264 
165:  165    2.463 
166:  166    2.465 
167:  167    1.820 
168:  168    2.181 
169:  169    2.218 
170:  170    2.317 
171:  171    1.706 
172:  172    2.161 
173:  173    1.750 
174:  174    2.196 
175:  175    2.099 
176:  176    1.743 
177:  177    2.467 
178:  178    1.774 
179:  179    2.270 
180:  180    2.025 
181:  181    2.426 
182:  182    2.138 
183:  183    1.741 
184:  184    2.424 
185:  185    2.403 
186:  186    1.818 
187:  187    1.787 
188:  188    2.083 
189:  189    1.867 
190:  190    1.811 
191:  191    2.264 
192:  192    2.218 
193:  193    1.766 
194:  194    2.325 
195:  195    2.401 
196:  196    2.327 
197:  197    1.706 
198:  198    2.196 
199:  199    1.706 
200:  200    2.430 
201:  201    2.395 
202:  202    1.834 
203:  203    2.169 
204:  204    1.844 
205:  205    1.949 
206:  206    2.438 
207:  207    2.243 
208:  208    2.375 
209:  209    2.406 
210:  210    2.311 
211:  211    2.521 
212:  212    1.706  
213:  213    2.032 
214:  214    1.900 
215:  215    2.467 
216:  216    2.467 
217:  217    2.467 
218:  218    2.467 
219:  219    2.467 
220:  220    2.467 
221:  221    2.467 
222:  222    1.660 
223:  223    0.853 
224:  224    0.912 
225:  225    0.000 
226:  226    0.000 
227:  227    0.000 
228:  228    0.000 
229:  229    0.000 
230:  230    0.000 
231:  231    0.000 
232:  232    0.000 
233:  233    0.000 
234:  234    0.000 
235:  235    0.000 
236:  236    0.000 
237:  237    0.000 
238:  238    0.000 
239:  239    0.000 
240:  240    0.000 
241:  241    0.000 
242:  242    0.000 
243:  243    0.000 
244:  244    0.000 
245:  245    0.000 
246:  246    0.000 
247:  247    0.000 
248:  248    0.000 
249:  249    0.000 
250:  250    0.000 
251:  251    0.000 
252:  252    0.000 
253:  253    0.000 
254:  254    0.000 
255:  255    0.000 
256:  256    0.000 
257:  257    0.000 
258:  258    0.000 
259:  259    0.000 
260:  260    0.000 
261:  261    0.000 
262:  262    0.000 
263:  263    0.000 
264:  264    0.000 
265:  265    0.712 
266:  266    1.145 
267:  267    1.088 
268:  268    0.331 
269:  269    0.330 
270:  270    0.330 
271:  271    2.128 
272:  272    1.108 


r31936/scale_RNA.dat 2017-02-17 17:30:13.691900302 +0000 r31935/scale_RNA.dat 2017-02-17 17:30:15.303921750 +0000
  1:    1    0.400        Bond scale     used in EBOND                       1: svn: E195012: Unable to find repository location for 'svn+ssh://svn.ch.private.cam.ac.uk/groups/wales/trunk/SCRIPTS/OPEP/scale_RNA.dat' in revision 31935
  2:    2    0.300        Angle scale    used in ETHETA                     
  3:    3    0.100        Torsion scale  used in ETORS                      
  4:    4    1.000        NB scale 
  5:    5    1.000        P-P interaction                                   
  6:    6    5.00         Debye length 
  7:    7    2.00         Stacking scale                                    
  8:    8    4.20         Stacking distance parameter 
  9:    9    1.00         Stacking width parameter 
 10:   10    2.40         HB                                                
 11:   11    0.0          HB-4 body  used in HYDROP                         
 12:   12    6.000        !! p       Ehb: cos(x)**p 
 13:   13    0.800        !! y       Ehb: gaussian width for the length part 
 14:   14    1.500        !! alpha   NewPlane: gaussian width for the point-plane distance 
 15:   15    2.000        !! ST      Newplane: interaction scale 
 16:   16    12.0         !! eta     used in HBarrier 
 17:   17    0.0          !! A       used in HBarrier 
 18:   18    1.0          !! dna parameter: wc coef 
 19:   19    1.3          !! dna parameter: wcCanonic coef 
 20:   20    1.0          !! dna parameter: noWc coef 
 21:   21    1.3          !! rna parameter: wc coef 
 22:   22    1.3          !! rna parameter: wcCanonic coef 
 23:   23    1.3          !! rna parameter: noWc coef 
 24:   24    1.0          !! SAXS parameter 


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0