#!@PYTHON@ # # Shifts atoms in a given coordination file periodically import sys, string, re, math wrerr = sys.stderr.write wrout = sys.stdout.write if (len(sys.argv) < 9): print "Usage: "+sys.argv[0]+" " print "Output goes to STDOUT." sys.exit(1) # get parameters offset=int(sys.argv[2]) box=[float(sys.argv[3]), float(sys.argv[4]),float(sys.argv[5])] shift=[float(sys.argv[6]),float(sys.argv[7]),float(sys.argv[8])] # parse the file and obtain maxid print "Parsing the PDB file "+sys.argv[1]+"." file = open(sys.argv[1], "r") atoms = {} maxid=-1 for line in file: # simpy print everything else if "END" in line or "CONECT" in line or "MASTER" in line or "#" in line: print line else: fields=line.split() for i in range(3): value=float(fields[i+offset])+shift[i] while value > box[i]: value = value - box[i] while value < 0: value = value + box[i] fields[i+offset] = str(value) for j in range(len(fields)): wrout("%s " % (fields[j])) wrout("\n") sys.exit(0)