annotate viz_ultra.py @ 7:2c5723e2421a draft

Uploaded
author glogobyte
date Fri, 16 Oct 2020 18:15:46 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
1 import argparse
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
2 from functions import *
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
3 from viz_graphs import *
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
4 import sys
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
5 import pandas as pd
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
6 import matplotlib.pyplot as plt
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
7 import matplotlib.patches as mpatches
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
8 import matplotlib.font_manager as font_manager
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
9 import time
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
10 from multiprocessing import Process, Queue, Lock, Pool, Manager, Value
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
11
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
12
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
13 ##################################################################################################################################################################################################################
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
14
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
15 def top_diff(miRNA_info, number,flag,l):
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
16
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
17 Kind=[]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
18
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
19 miRNA_info.sort(key = lambda x: abs(x[1]),reverse=True)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
20 miRNA_info = miRNA_info[:number]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
21 miRNA_info.sort(key = lambda x: x[0])
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
22
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
23 for x in miRNA_info:
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
24 if x[1] > 0:
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
25 Kind.append(True)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
26 elif x[1] < 0:
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
27 Kind.append(False)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
28 else:
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
29 Kind.append("Zero")
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
30
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
31 top_miRNA = {"Names": [x[0] for x in miRNA_info],
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
32 "Log2FC": [x[1] for x in miRNA_info],
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
33 "Kind": Kind};
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
34
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
35 df_miRNA = pd.DataFrame(data=top_miRNA)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
36 df_miRNA = df_miRNA.sort_values(by=['Names'])
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
37 if df_miRNA.empty==False:
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
38 h1=df_miRNA.plot.barh(x= 'Names',y='Log2FC',color=df_miRNA.Kind.map({True: 'g', False: 'r', 'Zero':'k'}))
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
39 figure = plt.gcf() # get current figure
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
40 figure.set_size_inches(5, 12) # set figure's size manually to your full screen (32x18)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
41 up_reg = mpatches.Patch(color='green', label='Upregulated')
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
42 down_reg = mpatches.Patch(color='red', label='Downregulated')
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
43 font = font_manager.FontProperties(weight='bold', style='normal')
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
44 l3 = plt.legend(handles=[up_reg,down_reg],bbox_to_anchor=(1.04,0.5), loc="center left", borderaxespad=0)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
45 h1.set_ylabel(" ", fontsize=3, fontweight='bold')
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
46 h1.set_xlabel("Log2FC", fontsize=12, fontweight='bold')
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
47 plt.axvline(x=0, color="k")
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
48
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
49 plt.grid(axis='y', linewidth=0.2)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
50 plt.grid(axis='x', linewidth=0.2)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
51 if flag=='t':
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
52 plt.savefig('tem.png', bbox_inches='tight', dpi=300)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
53 if flag=='nt':
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
54 plt.savefig('non.png', bbox_inches='tight', dpi=300)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
55
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
56 ####################################################################################################################################################################################################################
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
57
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
58 def unique(sequence):
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
59 seen = set()
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
60 return [x for x in sequence if not (x in seen or seen.add(x))]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
61
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
62 ###########################################################################################################################################################################################################################################################################
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
63
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
64 def top_scatter_non(matures,isoforms,non_temp,uni_names,number):
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
65
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
66 mat_names=[]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
67 mat_log2fc=[]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
68
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
69 iso_names=[]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
70 iso_log2fc=[]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
71
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
72 non_temp_names=[]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
73 non_temp_log2fc=[]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
74
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
75 count=0
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
76 for x in uni_names:
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
77 flag = False
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
78 if count<number:
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
79 for y in matures:
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
80 if x in y[0]:
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
81 mat_log2fc.append(y[1])
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
82 mat_names.append(x)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
83 flag=True
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
84 for y in isoforms:
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
85 if x in y[0]:
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
86 iso_log2fc.append(y[1])
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
87 iso_names.append(x)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
88 flag=True
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
89 for y in non_temp:
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
90 if x in y[0]:
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
91 non_temp_log2fc.append(y[1])
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
92 non_temp_names.append(x)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
93 flag=True
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
94 if flag==True:
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
95 count+=1
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
96
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
97 mat_df = pd.DataFrame(dict(names=mat_names, log2fc=mat_log2fc))
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
98 iso_df = pd.DataFrame(dict(names=iso_names, log2fc=iso_log2fc))
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
99 non_df = pd.DataFrame(dict(names=non_temp_names, log2fc= non_temp_log2fc))
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
100
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
101 iso_df.sort_values(by=['names'])
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
102 mat_df.sort_values(by=['names'])
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
103 non_df.sort_values(by=['names'])
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
104
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
105 fig, ax = plt.subplots()
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
106
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
107 h3=ax.scatter(iso_df['log2fc'],iso_df['names'],edgecolors='k',linewidth=1, marker='o', c='red')
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
108 h1=ax.scatter(mat_df['log2fc'],mat_df['names'],edgecolors='k',linewidth=1, marker='o', c='green')
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
109 h2=ax.scatter(non_df['log2fc'],non_df['names'],edgecolors='k',linewidth=1, marker='o', c='blue')
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
110
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
111 l3 = plt.legend([h1,h2,h3],["Reference miRNA","Non-template","Template isomiRs"],bbox_to_anchor=(1.04,0.5), loc="center left", borderaxespad=0)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
112 plt.axvline(x=0, color="k")
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
113 plt.grid(axis='y', linewidth=0.2)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
114 plt.grid(axis='x', linewidth=0.2)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
115 plt.xlabel("Log2FC", fontsize=12, fontweight='bold')
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
116 plt.yticks(rotation=0,ha="right", fontsize=10)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
117 plt.xticks(rotation=0,ha="right", fontsize=10)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
118 plt.tight_layout()
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
119 figure = plt.gcf() # get current figure
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
120 figure.set_size_inches(16, 12) # set figure's size manually to your full screen (32x18)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
121 plt.savefig('a2.png', bbox_inches='tight', dpi=300)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
122
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
123 #########################################################################################################################################################################################################################################
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
124 def top_scatter_tem(matures,isoforms,uni_names,number):
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
125
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
126 mat_names=[]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
127 mat_log2fc=[]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
128
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
129 iso_names=[]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
130 iso_log2fc=[]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
131
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
132 count=0
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
133 for x in uni_names:
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
134 flag = False
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
135 if count<number:
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
136 for y in matures:
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
137 if x in y[0]:
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
138 mat_log2fc.append(y[1])
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
139 mat_names.append(x)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
140 flag=True
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
141 for y in isoforms:
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
142 if x in y[0]:
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
143 iso_log2fc.append(y[1])
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
144 iso_names.append(x)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
145 flag=True
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
146 if flag==True:
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
147 count+=1
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
148
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
149 mat_df = pd.DataFrame(dict(names=mat_names, log2fc=mat_log2fc))
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
150 iso_df = pd.DataFrame(dict(names=iso_names, log2fc=iso_log2fc))
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
151
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
152 iso_df.sort_values(by=['names'])
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
153 mat_df.sort_values(by=['names'])
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
154
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
155 fig, ax = plt.subplots()
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
156
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
157 h3=ax.scatter(iso_df['log2fc'],iso_df['names'],edgecolors='k',linewidth=1, marker='o', c='red')
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
158 h1=ax.scatter(mat_df['log2fc'],mat_df['names'],edgecolors='k',linewidth=1, marker='o', c='green')
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
159
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
160 l3 = plt.legend([h1,h3],["Reference miRNA","Template isomiRs"],bbox_to_anchor=(1.04,0.5), loc="center left", borderaxespad=0)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
161 plt.axvline(x=0, color="k")
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
162 plt.grid(axis='y', linewidth=0.2)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
163 plt.grid(axis='x', linewidth=0.2)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
164 plt.xlabel("Log2FC", fontsize=12, fontweight='bold')
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
165 plt.yticks(rotation=0,ha="right", fontsize=10)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
166 plt.xticks(rotation=0,ha="right", fontsize=10)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
167 plt.tight_layout()
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
168 figure = plt.gcf() # get current figure
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
169 figure.set_size_inches(16, 12) # set figure's size manually to your full screen (32x18)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
170 plt.savefig('a2.png', bbox_inches='tight', dpi=300)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
171
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
172
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
173 ##############################################################################################################################################################################################################################################
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
174 def preproccess(non_templated,matures,isoforms,log2fc,pval):
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
175
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
176 non_temp = [[x[0],float(x[1]),float(x[2])] for x in non_templated if abs(float(x[1]))>log2fc and float(x[2])<pval]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
177 mat = [[x[0],float(x[1]),float(x[2])] for x in matures if abs(float(x[1]))>log2fc and float(x[2])<pval]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
178 iso = [[x[0],float(x[1]),float(x[2])] for x in isoforms if abs(float(x[1]))>log2fc and float(x[2])<pval]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
179 mat_iso = mat+iso
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
180
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
181 if not non_temp and not mat and not iso:
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
182 sys.exit("There aren't entries which meet these criteria")
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
183
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
184 mat.sort(key = lambda x: abs(float(x[1])),reverse=True)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
185 iso.sort(key = lambda x: abs(float(x[1])),reverse=True)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
186 non_temp.sort(key = lambda x: abs(float(x[1])),reverse=True)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
187
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
188 all=mat+iso+non_temp
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
189 all.sort(key = lambda x: abs(float(x[1])), reverse=True)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
190 names=[x[0].split("_")[0] for x in all]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
191 uni_names=unique(names)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
192
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
193 diff_non_templated = [[x[0],float(x[1]),float(x[2])] for x in non_templated if abs(float(x[1]))>1 and float(x[2])<pval and x[0].split("_")[0] in uni_names]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
194 diff_matures = [[x[0],float(x[1]),float(x[2])] for x in matures if abs(float(x[1]))>1 and float(x[2])<pval and x[0].split("_")[0] in uni_names]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
195 diff_isoforms = [[x[0],float(x[1]),float(x[2])] for x in isoforms if abs(float(x[1]))>1 and float(x[2])<pval and x[0].split("_")[0] in uni_names]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
196
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
197 diff_matures.sort(key = lambda x: abs(float(x[1])),reverse=True)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
198 diff_isoforms.sort(key = lambda x: abs(float(x[1])),reverse=True)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
199 diff_non_templated.sort(key = lambda x: abs(float(x[1])),reverse=True)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
200
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
201 return diff_matures,diff_isoforms,diff_non_templated,uni_names,non_temp,mat_iso
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
202
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
203 ##################################################################################################################################################################################################################################################################
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
204 starttime = time.time()
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
205
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
206 parser = argparse.ArgumentParser()
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
207 parser.add_argument("-in", "--input", help="choose type of analysis", action="store")
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
208 parser.add_argument("-p_value", "--pval", help="choose type of analysis", action="store")
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
209 parser.add_argument("-fc", "--log2fc", help="choose type of analysis", action="store")
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
210 parser.add_argument("-top", "--top_mirnas", help="choose type of analysis", action="store")
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
211 parser.add_argument("-tool_dir", "--tool_directory", help="tool directory path", action="store")
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
212 parser.add_argument("-statistic", "--stat", help="tool directory path", action="store")
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
213 parser.add_argument("-diff_tool", "--tool", help="tool directory path", action="store")
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
214
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
215 args = parser.parse_args()
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
216
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
217 l=Lock()
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
218 number = int(args.top_mirnas)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
219 log2fc = float(args.log2fc)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
220 pval = float(args.pval)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
221
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
222 if args.tool=="2":
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
223
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
224 raw_EdgeR = read(args.input,0)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
225 EdgeR = [x.rstrip("\n").split("\t") for x in raw_EdgeR]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
226 del EdgeR[0]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
227
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
228 if args.stat=="1":
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
229 non_templated = [[x[0],x[1],x[4]] for x in EdgeR if "__" in x[0] and x[1]!="NA" and x[4]!="NA"]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
230 matures = [[x[0],x[1],x[4]] for x in EdgeR if 'chr' in x[0].split("_")[-1] and "__" not in x[0] and x[1]!="NA" and x[4]!="NA"]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
231 isoforms = [[x[0],x[1],x[4]] for x in EdgeR if 'chr' not in x[0].split("_")[-1] and "__" not in x[0] and x[1]!="NA" and x[4]!="NA"]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
232 else:
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
233 non_templated = [[x[0],x[1],x[5]] for x in EdgeR if "__" in x[0] and x[1]!="NA" and x[5]!="NA"]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
234 matures = [[x[0],x[1],x[5]] for x in EdgeR if 'chr' in x[0].split("_")[-1] and "__" not in x[0] and x[1]!="NA" and x[5]!="NA"]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
235 isoforms = [[x[0],x[1],x[5]] for x in EdgeR if 'chr' not in x[0].split("_")[-1] and "__" not in x[0] and x[1]!="NA" and x[5]!="NA"]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
236
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
237 if args.tool=="1":
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
238
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
239 raw_Deseq = read(args.input,0)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
240 Deseq = [x.rstrip("\n").split("\t") for x in raw_Deseq]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
241
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
242 if args.stat=="1":
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
243 non_templated = [[x[0],x[2],x[5]] for x in Deseq if "__" in x[0] and x[2]!="NA" and x[5]!="NA"]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
244 matures = [[x[0],x[2],x[5]] for x in Deseq if 'chr' in x[0].split("_")[-1] and "__" not in x[0] and x[2]!="NA" and x[5]!="NA"]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
245 isoforms = [[x[0],x[2],x[5]] for x in Deseq if 'chr' not in x[0].split("_")[-1] and "__" not in x[0] and x[2]!="NA" and x[5]!="NA"]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
246 else:
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
247 non_templated = [[x[0],x[2],x[6]] for x in Deseq if "__" in x[0] and x[2]!="NA" and x[6]!="NA"]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
248 matures = [[x[0],x[2],x[6]] for x in Deseq if 'chr' in x[0].split("_")[-1] and "__" not in x[0] and x[2]!="NA" and x[6]!="NA"]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
249 isoforms = [[x[0],x[2],x[6]] for x in Deseq if 'chr' not in x[0].split("_")[-1] and "__" not in x[0] and x[2]!="NA" and x[6]!="NA"]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
250
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
251
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
252 diff_matures,diff_isoforms,diff_non_templated,names,non_temp,mat_iso = preproccess(non_templated,matures,isoforms,log2fc,pval)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
253
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
254 if non_templated!=[]:
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
255 analysis="2"
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
256 p=[Process(target=top_diff,args=(non_temp,number,"nt",l))]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
257 p.extend([Process(target=top_diff,args=(mat_iso,number,"t",l))])
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
258 p.extend([Process(target=top_scatter_non,args=(diff_matures,diff_isoforms,diff_non_templated,names,number))])
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
259
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
260 else:
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
261 analysis="1"
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
262 p=[Process(target=top_diff,args=(mat_iso,number,"t"))]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
263 p.extend([Process(target=top_scatter_tem,args=(diff_matures,diff_isoforms,names,number))])
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
264
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
265 [x.start() for x in p]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
266 [x.join() for x in p]
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
267
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
268 pdf_after_DE(analysis,args.top_mirnas)
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
269
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
270 print('That took {} seconds'.format(time.time() - starttime))
2c5723e2421a Uploaded
glogobyte
parents:
diff changeset
271