#!@PYTHON@ # # Cuts a specific block from a given PDB file import sys, string, re, math wrerr = sys.stderr.write wrout = sys.stdout.write # check for parameters if len(sys.argv) < 5: wrerr("Usage: "+sys.argv[0]+" \n") sys.exit(1) input = open(sys.argv[1], "r") output = open(sys.argv[1]+".exttypes", "w") offset=int(sys.argv[2]) offsetID=int(sys.argv[3]) border_epsilon=float(sys.argv[4]) # get box bounds min=[ 1000., 1000., 1000.] max=[ 0., 0., 0.] for line in input: if "END" in line: break entries=line.split() for n in range(3): if max[n] < float(entries[offset+n]): max[n] = float(entries[offset+n]) if min[n] > float(entries[offset+n]): min[n] = float(entries[offset+n]) input.seek(0) for line in input: if "END" in line: break entries=line.split() i=0 for n in range(3): if (((float(entries[offset+n]) - min[n]) < border_epsilon) or ((-float(entries[offset+n]) + max[n]) < border_epsilon)): i+=1 if i>0: output.write("%d\t1\n" % (int(entries[offsetID]))) input.close() output.close()