annotate merge_top.py @ 14:525ca7c8065f draft

"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tree/master/tools/gromacs commit bf18581ac3de6b65bdc0a988e6f844cea6e77975"
author chemteam
date Wed, 27 Oct 2021 08:02:22 +0000
parents 2e219a2d9327
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
1 import argparse
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
2
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
3 import parmed as pmd
0
1a5960636405 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 3b99f08f22b9e0c16c0a0adc82f8c16c1a25cedf"
chemteam
parents:
diff changeset
4
1a5960636405 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 3b99f08f22b9e0c16c0a0adc82f8c16c1a25cedf"
chemteam
parents:
diff changeset
5
7
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
6 def merge_gro_files(prot_gro, lig_gro, cmplx_gro):
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
7 prot = pmd.load_file(prot_gro)
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
8 lig = pmd.load_file(lig_gro)
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
9 cmplx = prot + lig
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
10 cmplx.save(cmplx_gro)
0
1a5960636405 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 3b99f08f22b9e0c16c0a0adc82f8c16c1a25cedf"
chemteam
parents:
diff changeset
11
1a5960636405 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 3b99f08f22b9e0c16c0a0adc82f8c16c1a25cedf"
chemteam
parents:
diff changeset
12
7
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
13 def merge_top_files(prot_top, lig_top, cmplx_top):
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
14 with open(lig_top, 'r') as f:
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
15 lig_top_sections = f.read().split('\n[')
0
1a5960636405 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 3b99f08f22b9e0c16c0a0adc82f8c16c1a25cedf"
chemteam
parents:
diff changeset
16
7
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
17 # open ligand topology
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
18 for n in range(len(lig_top_sections)):
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
19 if 'atomtypes' in lig_top_sections[n][:10]:
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
20 lig_atomtypes = lig_top_sections[n]
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
21 del lig_top_sections[n]
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
22 break
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
23 else:
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
24 lig_atomtypes = None
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
25 lig_top_updated = '\n['.join(lig_top_sections)
0
1a5960636405 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 3b99f08f22b9e0c16c0a0adc82f8c16c1a25cedf"
chemteam
parents:
diff changeset
26
7
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
27 # open protein topology
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
28 with open(prot_top, 'r') as f:
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
29 prot_top_combined = f.read()
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
30 if lig_atomtypes:
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
31 prot_top_sections = prot_top_combined.split('[ moleculetype ]\n')
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
32 prot_top_combined = (prot_top_sections[0] +
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
33 '; Include ligand atomtypes\n[' +
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
34 lig_atomtypes +
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
35 '\n[ moleculetype ]\n' +
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
36 prot_top_sections[1])
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
37 prot_top_sections = prot_top_combined.split('; Include water topology')
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
38 prot_top_combined = (prot_top_sections[0] +
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
39 '; Include ligand topology\n' +
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
40 lig_top_updated +
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
41 '\n; Include water topology' +
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
42 prot_top_sections[1])
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
43 prot_top_combined += 'base 1\n'
0
1a5960636405 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 3b99f08f22b9e0c16c0a0adc82f8c16c1a25cedf"
chemteam
parents:
diff changeset
44
7
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
45 # save complex topology
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
46 with open(cmplx_top, 'w') as f:
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
47 f.write(prot_top_combined)
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
48
0
1a5960636405 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 3b99f08f22b9e0c16c0a0adc82f8c16c1a25cedf"
chemteam
parents:
diff changeset
49
7
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
50 def main():
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
51 parser = argparse.ArgumentParser(
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
52 description='Perform SMD runs for dynamic undocking')
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
53 parser.add_argument('--lig-top', help='Ligand TOP file.')
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
54 parser.add_argument('--prot-top', help='Protein TOP file.')
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
55 parser.add_argument('--lig-gro', help='Ligand GRO file.')
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
56 parser.add_argument('--prot-gro', help='Protein GRO file.')
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
57 parser.add_argument('--complex-top', help='Complex TOP file.')
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
58 parser.add_argument('--complex-gro', help='Complex GRO file.')
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
59 args = parser.parse_args()
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
60 merge_gro_files(args.prot_gro, args.lig_gro, args.complex_gro)
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
61 merge_top_files(args.prot_top, args.lig_top, args.complex_top)
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
62
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
63
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
64 if __name__ == "__main__":
2e219a2d9327 "planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/tools/gromacs commit 71a3084d6e402b31563b1662bb629d5a959ce7b7"
chemteam
parents: 0
diff changeset
65 main()