print >> sys.stderr, ' residues in the topology file ' + prmtop sys.exit() if not (" %s " % prmtop_residues[resnums[x]-1]) in titrate_residues: print >> sys.stderr, 'Error: Residue ' + str(resnums[x]) + ' is a ' + prmtop_residues[resnums[x]-1] + \ '. This is not in the list of titratable residues!' sys.exit() else: titrated_residue_nums.append(resnums[x]) # otherwise, add in all matching residues else: for x in range(len(prmtop_residues)-1): if " %s " % prmtop_residues[x] in titrate_residues: check_data = cpin_data.getData(prmtop_residues[x], igb, has_water) # make sure we aren't adding termini if len(check_data[0])-2 == prmtop_object.parm_data['RESIDUE_POINTER'][x+1] - prmtop_object.parm_data['RESIDUE_POINTER'][x]: titrated_residue_nums.append(x+1) # Check to make sure that at least one residue is going to be titrated if len(titrated_residue_nums) == 0: print >> sys.stderr, 'Error: No titratable residues conform to your criteria!' sys.exit() # Now filter out the notresnums for x in range(len(notresnums)): for y in range(len(titrated_residue_nums)): if notresnums[x] == titrated_residue_nums[y]:
def printusage(): """ Prints the usage statement and quits """ print "ChangeState.py <prmtop> <residue> <state> <new_prmtop>" sys.exit(0) if len(sys.argv) != 5 or sys.argv[1] in ['--help', '-help', '-h', '--h']: printusage() prmtop = amberParm(sys.argv[1]) if not prmtop.valid: print >> sys.stderr, 'Error: %s is not a valid prmtop!' % sys.argv[1] printusage() res = int(sys.argv[2]) - 1 data = getData(prmtop.parm_data['RESIDUE_LABEL'][res], 5) starting_point = prmtop.parm_data['RESIDUE_POINTER'][res] - 1 state = int(sys.argv[3]) for i in range(2, len(data[state])): atnum = starting_point + i - 2 print "Changing %-4s from charge %8.4f to %8.4f" % \ ( prmtop.parm_data['ATOM_NAME'][atnum], prmtop.parm_data['CHARGE'][atnum], data[state][i] ) prmtop.parm_data['CHARGE'][atnum] = data[state][i] prmtop.writeParm(sys.argv[4]) print 'Done!'
def printusage(): """ Prints the usage statement and quits """ print "ChangeState.py <prmtop> <residue> <state> <new_prmtop>" sys.exit(0) if len(sys.argv) != 5 or sys.argv[1] in ['--help','-help','-h','--h']: printusage() prmtop = amberParm(sys.argv[1]) if not prmtop.valid: print >> sys.stderr, 'Error: %s is not a valid prmtop!' % sys.argv[1] printusage() res = int(sys.argv[2]) - 1 data = getData(prmtop.parm_data['RESIDUE_LABEL'][res],5) starting_point = prmtop.parm_data['RESIDUE_POINTER'][res] - 1 state = int(sys.argv[3]) for i in range(2,len(data[state])): atnum = starting_point + i - 2 print "Changing %-4s from charge %8.4f to %8.4f" % \ ( prmtop.parm_data['ATOM_NAME'][atnum], prmtop.parm_data['CHARGE'][atnum], data[state][i] ) prmtop.parm_data['CHARGE'][atnum] = data[state][i] prmtop.writeParm(sys.argv[4]) print 'Done!'