Mercurial > repos > iuc > b2btools_single_sequence
annotate script.py @ 0:dc91f5626375 draft default tip
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
| author | iuc |
|---|---|
| date | Tue, 09 Aug 2022 12:29:40 +0000 |
| parents | |
| children |
| rev | line source |
|---|---|
|
0
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
1 import json |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
2 import optparse |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
3 import os.path |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
4 import re |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
5 import unicodedata |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
6 |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
7 import matplotlib.pyplot as plt |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
8 import numpy as np |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
9 import pandas as pd |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
10 from b2bTools import SingleSeq |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
11 |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
12 |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
13 def slugify(value): |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
14 """ |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
15 From https://github.com/django/django/blob/master/django/utils/text.py |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
16 Convert to ASCII if 'allow_unicode'. Convert spaces or repeated |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
17 dashes to single dashes. Remove characters that aren't alphanumerics, |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
18 underscores, or hyphens. Convert to lowercase. Also strip leading and |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
19 trailing whitespace, dashes, and underscores. |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
20 """ |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
21 value = str(value) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
22 value = ( |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
23 unicodedata.normalize("NFKD", value) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
24 .encode("ascii", "ignore") |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
25 .decode("ascii") |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
26 ) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
27 value = re.sub(r"[^\w\s-]", "", value.lower()) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
28 return re.sub(r"[-\s]+", "-", value).strip("-_") |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
29 |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
30 |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
31 def check_min_max(predicted_values, former_min, former_max): |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
32 seq_max = max(predicted_values) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
33 seq_min = min(predicted_values) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
34 if ( |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
35 seq_max + 0.1 > former_max |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
36 and not np.isnan(seq_max) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
37 and not np.isinf(seq_max) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
38 ): |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
39 former_max = seq_max + 0.1 |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
40 if ( |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
41 seq_min - 0.1 < former_min |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
42 and not np.isnan(seq_min) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
43 and not np.isinf(seq_min) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
44 ): |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
45 former_min = seq_min - 0.1 |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
46 return former_min, former_max |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
47 |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
48 |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
49 def plot_prediction(pred_name, hlighting_regions, predicted_values, seq_name): |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
50 thresholds_dict = { |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
51 "backbone": { |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
52 "membrane spanning": [1.0, 1.5], |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
53 "rigid": [0.8, 1.0], |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
54 "context-dependent": [0.69, 0.8], |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
55 "flexible": [-1.0, 0.69], |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
56 }, |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
57 "earlyFolding": { |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
58 "early folds": [0.169, 2.0], |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
59 "late folds": [-1.0, 0.169], |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
60 }, |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
61 "disoMine": {"ordered": [-1.0, 0.5], "disordered": [0.5, 2.0]}, |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
62 } |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
63 ordered_regions_dict = { |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
64 "backbone": [ |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
65 "flexible", |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
66 "context-dependent", |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
67 "rigid", |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
68 "membrane spanning", |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
69 ], |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
70 "earlyFolding": ["late folds", "early folds"], |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
71 "disoMine": ["ordered", "disordered"], |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
72 } |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
73 colors = ["yellow", "orange", "pink", "red"] |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
74 ranges_dict = { |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
75 "backbone": [-0.2, 1.2], |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
76 "sidechain": [-0.2, 1.2], |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
77 "ppII": [-0.2, 1.2], |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
78 "earlyFolding": [-0.2, 1.2], |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
79 "disoMine": [-0.2, 1.2], |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
80 "agmata": [-0.2, 1.2], |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
81 "helix": [-1.0, 1.0], |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
82 "sheet": [-1.0, 1.0], |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
83 "coil": [-1.0, 1.0], |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
84 } |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
85 fig, ax = plt.subplots(1, 1) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
86 fig.set_figwidth(10) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
87 fig.set_figheight(5) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
88 ax.set_title(pred_name + " " + "prediction") |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
89 min_value, max_value = ranges_dict[pred_name] |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
90 if seq_name == "all": |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
91 max_len = 0 |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
92 for seq in predicted_values.keys(): |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
93 predictions = predicted_values[seq] |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
94 min_value, max_value = check_min_max( |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
95 predictions, min_value, max_value |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
96 ) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
97 ax.plot(range(len(predictions)), predictions, label=seq) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
98 if len(predictions) > max_len: |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
99 max_len = len(predictions) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
100 ax.set_xlim([0, max_len - 1]) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
101 else: |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
102 predictions = predicted_values |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
103 min_value, max_value = check_min_max(predictions, min_value, max_value) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
104 ax.plot(range(len(predictions)), predictions, label=seq_name) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
105 ax.set_xlim([0, len(predictions) - 1]) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
106 legend_lines = plt.legend( |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
107 bbox_to_anchor=(1.04, 1), loc="upper left", fancybox=True, shadow=True |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
108 ) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
109 ax.add_artist(legend_lines) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
110 # Define regions |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
111 if hlighting_regions: |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
112 if pred_name in ordered_regions_dict.keys(): |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
113 for i, prediction in enumerate(ordered_regions_dict[pred_name]): |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
114 lower = thresholds_dict[pred_name][prediction][0] |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
115 upper = thresholds_dict[pred_name][prediction][1] |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
116 color = colors[i] |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
117 ax.axhspan( |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
118 lower, upper, alpha=0.3, color=color, label=prediction |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
119 ) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
120 included_in_regions_legend = list( |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
121 reversed( |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
122 [ |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
123 prediction |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
124 for prediction in ordered_regions_dict[pred_name] |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
125 ] |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
126 ) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
127 ) # to sort it "from up to low" |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
128 # Get handles and labels |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
129 handles, labels = plt.gca().get_legend_handles_labels() |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
130 handles_dict = { |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
131 label: handles[idx] for idx, label in enumerate(labels) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
132 } |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
133 # Add legend for regions, if available |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
134 region_legend = ax.legend( |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
135 [ |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
136 handles_dict[region] |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
137 for region in included_in_regions_legend |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
138 ], |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
139 [region for region in included_in_regions_legend], |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
140 fancybox=True, |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
141 shadow=True, |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
142 loc="lower left", |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
143 bbox_to_anchor=(1.04, 0), |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
144 ) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
145 ax.add_artist(region_legend) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
146 ax.set_ylim([min_value, max_value]) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
147 ax.set_xlabel("residue index") |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
148 ax.set_ylabel("prediction values") |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
149 ax.grid(axis="y") |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
150 plt.savefig( |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
151 os.path.join( |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
152 options.plot_output, |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
153 "{0}_{1}.png".format(slugify(seq_name), pred_name), |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
154 ), |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
155 bbox_inches="tight", |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
156 ) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
157 plt.close() |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
158 |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
159 |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
160 def df_dict_to_dict_of_values(df_dict, predictor): |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
161 results_dict = {} |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
162 for seq in df_dict.keys(): |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
163 df = pd.read_csv(df_dict[seq], sep="\t") |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
164 results_dict[seq] = df[predictor] |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
165 return results_dict |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
166 |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
167 |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
168 def main(options): |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
169 single_seq = SingleSeq(options.input_fasta) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
170 b2b_tools = [] |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
171 if options.dynamine: |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
172 b2b_tools.append("dynamine") |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
173 if options.disomine: |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
174 b2b_tools.append("disomine") |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
175 if options.efoldmine: |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
176 b2b_tools.append("efoldmine") |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
177 if options.agmata: |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
178 b2b_tools.append("agmata") |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
179 single_seq.predict(b2b_tools) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
180 predictions = single_seq.get_all_predictions() |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
181 |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
182 def rounder_function(value): |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
183 return round(float(value), 3) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
184 |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
185 rounded_predictions = json.loads( |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
186 json.dumps(predictions), parse_float=rounder_function |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
187 ) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
188 results_json = json.dumps(rounded_predictions, indent=2, sort_keys=True) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
189 with open(options.json_output, "w") as f: |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
190 f.write(results_json) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
191 first_sequence_key = next(iter(predictions)) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
192 prediction_keys = predictions[first_sequence_key].keys() |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
193 # Sort column names |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
194 tsv_column_names = list(prediction_keys) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
195 tsv_column_names.remove("seq") |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
196 tsv_column_names = ['residue', *sorted(tsv_column_names)] |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
197 |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
198 df_dictionary = {} |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
199 for sequence_key, seq_preds in predictions.items(): |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
200 residues = seq_preds["seq"] |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
201 residues_count = len(residues) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
202 sequence_df = pd.DataFrame( |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
203 columns=prediction_keys, index=range(residues_count) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
204 ) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
205 sequence_df.index.name = "residue_index" |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
206 for predictor in prediction_keys: |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
207 sequence_df[predictor] = seq_preds[predictor] |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
208 sequence_df = sequence_df.rename(columns={"seq": "residue"}) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
209 sequence_df = sequence_df.round(decimals=3) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
210 filename = f"{options.output}/{slugify(sequence_key)}.tsv" |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
211 df_dictionary[sequence_key] = filename |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
212 sequence_df.to_csv( |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
213 filename, |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
214 header=True, |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
215 columns=tsv_column_names, |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
216 sep="\t" |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
217 ) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
218 # Plot each individual plot (compatible with plot all) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
219 if options.plot: |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
220 for predictor in prediction_keys: |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
221 if predictor != "seq": |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
222 plot_prediction( |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
223 pred_name=predictor, |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
224 hlighting_regions=True, |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
225 predicted_values=seq_preds[predictor], |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
226 seq_name=sequence_key, |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
227 ) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
228 # Plot all together (compatible with plot individual) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
229 if options.plot_all: |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
230 for predictor in prediction_keys: |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
231 if predictor != "seq": |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
232 results_dictionary = df_dict_to_dict_of_values( |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
233 df_dictionary, predictor |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
234 ) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
235 plot_prediction( |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
236 pred_name=predictor, |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
237 hlighting_regions=True, |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
238 predicted_values=results_dictionary, |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
239 seq_name="all", |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
240 ) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
241 |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
242 |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
243 if __name__ == "__main__": |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
244 parser = optparse.OptionParser() |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
245 parser.add_option( |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
246 "--dynamine", |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
247 action="store_true" |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
248 ) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
249 parser.add_option( |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
250 "--disomine", |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
251 action="store_true" |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
252 ) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
253 parser.add_option( |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
254 "--efoldmine", |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
255 action="store_true" |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
256 ) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
257 parser.add_option( |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
258 "--agmata", |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
259 action="store_true" |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
260 ) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
261 parser.add_option( |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
262 "--file", |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
263 dest="input_fasta", |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
264 type="string" |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
265 ) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
266 parser.add_option( |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
267 "--output", |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
268 dest="output", |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
269 type="string" |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
270 ) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
271 parser.add_option( |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
272 "--plot-output", |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
273 type="string", |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
274 dest="plot_output" |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
275 ) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
276 parser.add_option( |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
277 "--json", |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
278 dest="json_output", |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
279 type="string" |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
280 ) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
281 parser.add_option( |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
282 "--plot", |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
283 action="store_true" |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
284 ) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
285 parser.add_option( |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
286 "--plot_all", |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
287 action="store_true" |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
288 ) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
289 parser.add_option( |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
290 "--highlight", |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
291 action="store_true" |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
292 ) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
293 try: |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
294 options, args = parser.parse_args() |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
295 if not (options.dynamine or options.disomine or options.efoldmine or options.agmata): |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
296 parser.error('At least one predictor is required') |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
297 if not options.input_fasta: |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
298 parser.error('Input file not given (--file)') |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
299 if not options.output: |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
300 parser.error('Output directory not given (--output)') |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
301 if (options.plot or options.plot_all) and not options.plot_output: |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
302 parser.error('Plot output directory not given (--plot-output)') |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
303 if not options.json_output: |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
304 parser.error('Json output file not given (--json)') |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
305 main(options) |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
306 except optparse.OptionError as exc: |
|
dc91f5626375
planemo upload commit 599e1135baba020195b3f7576449d595bca9af75
iuc
parents:
diff
changeset
|
307 raise RuntimeError(f"Invalid arguments: {args}") from exc |
