Mercurial > repos > chemteam > mdanalysis_angle
annotate ramachandran_auto_protein.py @ 9:567f8c5d4680 draft default tip
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit f1c3c88c7395f2e84cbc533199406aadb79c5c07"
| author | chemteam | 
|---|---|
| date | Fri, 13 Nov 2020 19:41:02 +0000 | 
| parents | a0d210b9d287 | 
| children | 
| rev | line source | 
|---|---|
| 7 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 1 #!/usr/bin/env python | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 2 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 3 import argparse | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 4 import base64 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 5 import importlib | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 6 import sys | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 7 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 8 import MDAnalysis as mda | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 9 from MDAnalysis.analysis.dihedrals import Ramachandran | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 10 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 11 import h5py | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 12 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 13 from jinja2 import Environment, FileSystemLoader | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 14 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 15 import matplotlib | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 16 import matplotlib.pyplot as plt | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 17 import matplotlib.ticker as ticker | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 18 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 19 import numpy as np | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 20 import numpy.linalg | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 21 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 22 import seaborn as sns | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 23 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 24 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 25 matplotlib.use('Agg') # noqa | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 26 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 27 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 28 def parse_command_line(argv): | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 29 parser = argparse.ArgumentParser() | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 30 parser.add_argument('--itraj', help='input traj') | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 31 parser.add_argument('--istr', help='input str') | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 32 parser.add_argument('--itrajext', help='input traj ext') | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 33 parser.add_argument('--istrext', help='input str ext') | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 34 parser.add_argument('--isegid1', help='segid 1') | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 35 parser.add_argument('--iresid1', help='resid start') | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 36 parser.add_argument('--iresid2', help='resid end') | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 37 parser.add_argument('--iresname', help='resname e.g. ALA') | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 38 parser.add_argument('--igroupby', help='groupby names or ids') | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 39 parser.add_argument('--itemplatepath', help='template path') | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 40 parser.add_argument('--o_plot1', help='MDA Ramachandran plot') | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 41 parser.add_argument('--o_plot2', help='Seaborn Ramachandran plot') | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 42 parser.add_argument('--o_data1', help='Timeseries in HDF5 format') | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 43 parser.add_argument('--o_html1', help='Html overview output of all plots') | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 44 return parser.parse_args() | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 45 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 46 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 47 args = parse_command_line(sys.argv) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 48 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 49 currentpath = "." | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 50 if args.itemplatepath is not None: | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 51 currentpath = args.itemplatepath | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 52 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 53 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 54 u = mda.Universe(args.istr, args.itraj, | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 55 topology_format=args.istrext, format=args.itrajext) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 56 selection = "(segid %s)" % \ | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 57 (args.isegid1) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 58 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 59 if args.iresname is not None: | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 60 selection = "(segid %s and resname %s)" % \ | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 61 (args.isegid1, args.iresname) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 62 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 63 if args.iresid1 is not None and args.iresid2 is not None: | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 64 assert(int(args.iresid1) > 0), "ResID numbering starts at 1 for this tool." | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 65 assert(int(args.iresid2) > 0), "ResID numbering starts at 1 for this tool." | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 66 assert(int(args.iresid2) > int(args.iresid1) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 67 ), "ResID2 must be at least ResID1+1" | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 68 selection = "(segid %s and resid %s-%s)" % \ | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 69 (args.isegid1, int(args.iresid1), int(args.iresid2)) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 70 if args.iresname is not None: | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 71 selection = "(segid %s and resid %s-%s and resname %s)" % \ | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 72 (args.isegid1, int(args.iresid1), int(args.iresid2), args.iresname) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 73 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 74 r = u.select_atoms(selection) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 75 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 76 assert(r != u.select_atoms('name thiscannotpossiblyexist') | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 77 ), \ | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 78 """The selection you specified returns an empty result. | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 79 Check segment names and residue ID's. Also check the | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 80 structure and trajectory file selected are the correct ones""" | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 81 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 82 if args.igroupby is not None: | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 83 group_selections = {} # dictionary of selections | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 84 if args.igroupby == 'name': | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 85 groupby = sorted(list(set(r.resnames))) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 86 for e in groupby: | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 87 s = r & u.select_atoms("resname %s" % e) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 88 this_sel = "%s and resname %s" % (selection, e) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 89 group_selections[this_sel] = s | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 90 elif args.igroupby == 'id': | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 91 groupby = sorted(list(set(r.resids))) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 92 for e in groupby: | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 93 s = r & u.select_atoms("resid %s" % e) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 94 this_sel = "%s and resid %s" % (selection, e) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 95 group_selections[this_sel] = s | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 96 else: | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 97 assert False, ("Invalid argument for igroupby. " | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 98 "Only name and id are valid options.") | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 99 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 100 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 101 def ramachandran_plot(atomgroup, selection, outputfile1, outputfile2, | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 102 image_format='png'): | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 103 # plot standard mdanalysis and seaborn 2D with kde | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 104 R = Ramachandran(atomgroup).run() | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 105 fig, ax = plt.subplots(figsize=plt.figaspect(1)) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 106 R.plot(ax=ax, color='k', marker='.', ref=True) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 107 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 108 a = R.angles.reshape(np.prod(R.angles.shape[:2]), 2) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 109 # open hdf file | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 110 with h5py.File(args.o_data1, 'a') as f: | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 111 setname = "%s" % (selection) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 112 f["/" + setname + "/ramachandran/phi"] = a[:, 0] | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 113 f["/" + setname + "/ramachandran/psi"] = a[:, 1] | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 114 plt.tight_layout() | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 115 # svg is better but sticking with png for now | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 116 plt.savefig(outputfile1, format=image_format) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 117 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 118 sns.reset_defaults() | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 119 importlib.reload(plt) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 120 importlib.reload(sns) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 121 with sns.axes_style("white"): | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 122 h = sns.jointplot(x=a[:, 0], y=a[:, 1], | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 123 kind="kde", space=0) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 124 h.set_axis_labels(r'$\phi$ (deg)', r'$\psi$ (deg)') | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 125 h.ax_joint.set_xlim(-180, 180) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 126 h.ax_joint.set_ylim(-180, 180) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 127 h.ax_joint.xaxis.set_major_locator(ticker.MultipleLocator(60)) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 128 h.ax_joint.yaxis.set_major_locator(ticker.MultipleLocator(60)) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 129 plt.savefig(outputfile2, format=image_format, bbox_inches='tight') | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 130 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 131 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 132 def get_base64_encoded_image(image_path): | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 133 """ encode image to string for use in html later""" | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 134 with open(image_path, "rb") as img_file: | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 135 return base64.b64encode(img_file.read()).decode('utf-8') | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 136 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 137 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 138 plots = [] | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 139 if args.igroupby is not None: | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 140 for k, v in group_selections.items(): | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 141 print(k, v) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 142 try: | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 143 ramachandran_plot(v, str(k), "ramachandran1" + | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 144 str(k), "ramachandran2" + str(k)) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 145 plots.append({'Name': "%s" % (k), 'plot1': | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 146 get_base64_encoded_image("ramachandran1" + str(k)), | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 147 'plot2': get_base64_encoded_image("ramachandran2" | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 148 + str(k))}) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 149 except Exception as einstance: | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 150 print(type(einstance)) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 151 print(einstance.args) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 152 print(einstance) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 153 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 154 ramachandran_plot(r, selection, args.o_plot1, args.o_plot2) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 155 plots.insert(0, {'Name': selection, 'plot1': get_base64_encoded_image( | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 156 args.o_plot1), 'plot2': get_base64_encoded_image(args.o_plot2)}) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 157 | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 158 template_environment = Environment(loader=FileSystemLoader( | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 159 currentpath), lstrip_blocks=True, trim_blocks=True) | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 160 template = template_environment.get_template( | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 161 'ramachandran_auto_protein_html.j2') | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 162 with open(args.o_html1, 'w+') as f: | 
| 
a0d210b9d287
"planemo upload for repository https://github.com/galaxycomputationalchemistry/galaxy-tools-compchem/ commit 1b23e024af45cc0999d9142d07de6897d4189ec2"
 chemteam parents: diff
changeset | 163 f.write(template.render(title="Ramachandran Plots", plots=plots)) | 
