source: util/src/FindNonTriplesTIP3.py.in@ 4737be

NanoCreator_WORKING
Last change on this file since 4737be was e1a46d, checked in by Frederik Heber <heber@…>, 16 years ago

All of my python script put into ESPACK and adapted with @PYTHON@ and so on.

  • Property mode set to 100755
File size: 2.0 KB
Line 
1#!@PYTHON@
2#
3# if a given block from a PDB was cut out, water molecules may have been cut through. This is bad for the neighbour numbers in the TIP3 potential.
4# Hence, this script removes all dangling atoms.
5
6import sys, string, re, math
7wrerr = sys.stderr.write
8wrout = sys.stdout.write
9
10# check for parameters
11if len(sys.argv) < 3:
12 wrerr("Usage: "+sys.argv[0]+" <datafile> <offset to SeqID>\n")
13 sys.exit(1)
14
15input = open(sys.argv[1], "r")
16output = open(sys.argv[1]+".new", "w")
17offsetID=int(sys.argv[2])
18
19ids={}
20for line in input:
21 if "#" in line:
22 continue
23 if "END" in line:
24 break
25 entries=line.split()
26 if "TIP3" in line:
27 id=int(entries[offsetID])
28 if ids.has_key(id):
29 ids[id]=ids[id]+1
30 else:
31 ids[id]=1
32 #wrout("for key %d: %d present\n" % (id, ids[id]))
33
34wrout("The following ids will be removed: ")
35for key in ids.keys():
36 if ids[key] < 3:
37 wrout("(%d = %d) " % (key, ids[key]))
38wrout("\n")
39
40input.seek(0)
41origin=[0., 0., 0.]
42id=1
43for line in input:
44 if "#" in line:
45 output.write(line)
46 continue
47 if "END" in line:
48 output.write(line)
49 break
50 entries=line.split()
51 if "TIP3" in line:
52 if (ids[int(entries[offsetID])] == 3):
53 #wrout("%d present, keeping line: %s" % (ids[id], line))
54 output.write("ATOM %6d %-4s%3s%2s %4s %8.3f%8.3f%8.3f%6.2f%6.2f %4s%2s \n" % (id, entries[2], entries[3], entries[4], entries[5], float(entries[6])-origin[0], float(entries[7])-origin[1], float(entries[8])-origin[2], float(entries[9]), float(entries[10]), entries[11], entries[2][0]))
55 id+=1
56 else:
57 wrout("Only %d present, dropping line: %s" % (ids[int(entries[offsetID])], line))
58 else:
59 output.write("ATOM %6d %-4s %3s%3s%4s %8.3f%8.3f%8.3f%6.2f%6.2f %4s%2s \n" % (id, entries[2], entries[3], entries[4], entries[5], float(entries[6])-origin[0], float(entries[7])-origin[1], float(entries[8])-origin[2], float(entries[9]), float(entries[10]), entries[11], entries[2][0]))
60 id+=1
61input.close()
62output.close()
Note: See TracBrowser for help on using the repository browser.