Mercurial > repos > rnateam > graphclust_motif_finder_plot
comparison MotifFinderPlot.py @ 1:adf18db4c14a draft
planemo upload for repository https://github.com/eteriSokhoyan/galaxytools/tree/master/tools/GraphClust/Plotting commit 4dd7269185f6fb9bdc007028007d6540f4cf057d
| author | rnateam |
|---|---|
| date | Sat, 25 Mar 2017 16:53:09 -0400 |
| parents | edcf58ab7552 |
| children |
comparison
equal
deleted
inserted
replaced
| 0:edcf58ab7552 | 1:adf18db4c14a |
|---|---|
| 7 from collections import defaultdict | 7 from collections import defaultdict |
| 8 import glob | 8 import glob |
| 9 import pandas as pd | 9 import pandas as pd |
| 10 import itertools | 10 import itertools |
| 11 import seaborn as sns | 11 import seaborn as sns |
| 12 | 12 import numpy as np |
| 13 | 13 |
| 14 def plot_bar(ranges, colors, orig_names, cluster_nums): | 14 def plot_bar(ranges, colors, orig_names, cluster_nums): |
| 15 fig, ax = plt.subplots() | 15 fig, ax = plt.subplots() |
| 16 for i, k in enumerate(sorted(ranges.keys())): | 16 for i, k in enumerate(sorted(ranges.keys())): |
| 17 ax.broken_barh(ranges[k], (i-0.25, 0.5), facecolors=colors[k]) | 17 ax.broken_barh(ranges[k], (i-0.25, 0.5), facecolors=colors[k]) |
| 18 | 18 |
| 19 ax.set_xlim(0) | 19 ax.set_xlim(0) |
| 20 ax.set_xlabel('position in sequence') | 20 ax.set_xlabel('position in sequence') |
| 21 ax.set_yticks(np.arange(-1, len(ranges))) | |
| 21 ax.set_yticklabels(['']+[k+'-'+orig_names[k] for k in sorted(ranges.keys())]) | 22 ax.set_yticklabels(['']+[k+'-'+orig_names[k] for k in sorted(ranges.keys())]) |
| 22 ax.grid(True) | 23 ax.grid(True) |
| 23 fig.suptitle('Structure motif prediction\nRegions with same color are prediticted to have similar structures') | 24 fig.suptitle('Structure motif prediction\nRegions with same color are prediticted to have similar structures') |
| 24 # Add the legend | 25 # Add the legend |
| 25 patches = [mpatches.Patch(color=cluster_nums[lab], label=lab) for lab in sorted(cluster_nums)] | 26 patches = [mpatches.Patch(color=cluster_nums[lab], label=lab) for lab in sorted(cluster_nums)] |
| 26 ax.legend(handles=patches, loc='best') # , bbox_to_anchor=(1, 0.5), loc='center left') | 27 ax.legend(handles=patches, loc='best', bbox_to_anchor=(1.2, 1.05))#, loc='center left') |
| 27 plt.savefig("motif_plot.png", bbox_inches='tight') | 28 plt.savefig("motif_plot.png", bbox_inches='tight') |
| 28 | 29 |
| 29 | 30 |
| 30 def parse_clusters(): | 31 def parse_clusters(): |
| 31 currentdir_files = sorted(list(glob.glob('*'))) | 32 currentdir_files = sorted(list(glob.glob('*'))) |
| 32 print ("currentdir_files are: ", currentdir_files) | 33 print ("currentdir_files are: ", currentdir_files) |
| 33 print ("RESULTS_files are: ", sorted(list(glob.glob('RESULTS/*')))) | 34 print ("RESULTS_files are: ", sorted(list(glob.glob('RESULTS/*')))) |
| 34 | 35 |
| 35 cluster_files = sorted(list(glob.glob('RESULTS/*.cluster.all'))) | 36 cluster_files = sorted(list(glob.glob('RESULTS/*.cluster.all'))) |
| 36 if len(cluster_files) == 0: | 37 if len(cluster_files) == 0: |
| 37 raise RuntimeError('Expected cluster.all search path is empty:{}'.format(cluster_files)) | 38 raise RuntimeError('Expected cluster.all search path is empty:{}'.format(cluster_files)) |
| 38 palette = itertools.cycle(sns.color_palette("Set2", len(cluster_files))) | 39 palette = itertools.cycle(sns.color_palette("Set2", len(cluster_files))) |
| 39 | |
| 40 | 40 |
| 41 ranges = defaultdict(list) | 41 ranges = defaultdict(list) |
| 42 colors = defaultdict(list) | 42 colors = defaultdict(list) |
| 43 orig_names = defaultdict(list) | 43 orig_names = defaultdict(list) |
| 44 cluster_nums = defaultdict(list) | 44 cluster_nums = defaultdict(list) |
