annotate parmconv.py @ 6:9234f137c6e1 draft

"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit aa5e1ad9fb06855dddc66b6cdfa2e5724c251c53"
author chemteam
date Wed, 14 Jul 2021 11:27:45 +0000
parents 879662481176
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
1 import argparse
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
2 import io
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
3 import sys
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
4 from contextlib import redirect_stdout
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
5
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
6 import parmed
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
7 from parmed import amber, gromacs
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
8 from parmed.tools.changeradii import ChRad
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
9
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
10
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
11 def parse_command_line(argv):
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
12 parser = argparse.ArgumentParser()
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
13 parser.add_argument('--istr', help='input structure', required=True)
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
14 parser.add_argument('--itop', help='input topology file', required=True)
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
15 parser.add_argument('--istripmask', help='stripmask')
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
16 parser.add_argument('--iradii', required=True, help='parmed radii are \
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
17 GB_RADII amber6,bondi, mbondi, mbondi2, mbondi3')
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
18 parser.add_argument('--removedihe', action='store_true',
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
19 default=False, help='remove dihedrals with zero \
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
20 periodicity')
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
21 parser.add_argument('--removebox', action='store_true',
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
22 default=False, help='remove periodic box info')
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
23 parser.add_argument('--o_prmtop', help='AMBER output topology',
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
24 required=True)
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
25 return parser.parse_args()
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
26
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
27
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
28 def get_ids(dihedrals):
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
29 """
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
30 goes through dihedrals and looks for any with per=0.
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
31 returns a reverse sorted list of ids to be removed.
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
32 """
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
33 indices = []
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
34 for k, v in enumerate(dihedrals):
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
35 f = io.StringIO()
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
36 with redirect_stdout(f):
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
37 print(v)
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
38 if f.getvalue().find("per=0") != -1:
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
39 indices.append(k)
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
40 indices.sort(reverse=True)
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
41 return indices
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
42
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
43
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
44 args = parse_command_line(sys.argv)
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
45
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
46 gmx_top = gromacs.GromacsTopologyFile(args.itop)
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
47 gmx_gro = gromacs.GromacsGroFile.parse(args.istr)
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
48
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
49 if not args.removebox:
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
50 # keep box info
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
51 gmx_top.box = gmx_gro.box
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
52 gmx_top.positions = gmx_gro.positions
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
53
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
54
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
55 if args.removedihe:
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
56 ids_to_remove = get_ids(gmx_top.dihedrals)
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
57 print("Original number of dihedrals %i" % len(gmx_top.dihedrals))
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
58 for i in ids_to_remove:
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
59 gmx_top.dihedrals.pop(i)
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
60 print("Update number of dihedrals %i" % len(gmx_top.dihedrals))
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
61
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
62 if args.istripmask is not None:
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
63 if args.istripmask == "":
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
64 pass
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
65 else:
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
66 gmx_top.strip(args.istripmask)
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
67
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
68 radii = str(args.iradii)
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
69 parmed.tools.changeRadii(gmx_top, radii)
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
70 amb_prm = amber.AmberParm.from_structure(gmx_top)
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
71 parmed.tools.changeRadii(amb_prm, radii)
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
72
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
73 if args.removebox:
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
74 amb_prm.pointers['IFBOX'] = 0
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
75
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
76 ChRad(amb_prm, radii)
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
77 for i, atom in enumerate(amb_prm.atoms):
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
78 amb_prm.parm_data['RADII'][i] = atom.solvent_radius
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
79 amb_prm.parm_data['SCREEN'][i] = atom.screen
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
80
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
81
879662481176 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit cc13bd32ef2d80b01dc197a3ca120a4ff9f0dacc"
chemteam
parents:
diff changeset
82 amb_prm.write_parm(args.o_prmtop)