annotate mirgene_graphs.py @ 5:6633f4447090 draft

Uploaded
author glogobyte
date Fri, 16 Oct 2020 18:55:18 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
1 import itertools
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
2 import time
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
3 import sys
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
4 import os
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
5 import urllib.request
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
6 import gzip
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
7 from multiprocessing import Process, Queue, Lock, Pool, Manager, Value
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
8 import subprocess
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
9 import argparse
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
10 from collections import OrderedDict
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
11 from matplotlib.backends.backend_pdf import PdfPages
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
12 import pandas as pd
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
13 from math import pi
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
14 import numpy as np
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
15 import matplotlib.pyplot as plt
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
16 from matplotlib.ticker import PercentFormatter
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
17 import seaborn as sns
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
18 import scipy.stats as stats
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
19 from plotnine import *
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
20 import math
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
21 import re
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
22 import matplotlib.ticker as mtick
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
23 import copy
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
24
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
25
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
26 #########################################################################################################################
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
27 def pie_non_temp(merge_LH2E,merge_non_LH2E,merge_LH8E,merge_non_LH8E,c_unmap,t_unmap,c_unmap_counts,t_unmap_counts):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
28
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
29 c_samples=[[x[0],x[1],sum(int(i) for i in x[2:])] for x in merge_LH2E]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
30 t_samples=[[x[0],x[1],sum(int(i) for i in x[2:])] for x in merge_LH8E]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
31 c_non_samples=[[x[0],x[1],sum(int(i) for i in x[2:])] for x in merge_non_LH2E]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
32 t_non_samples=[[x[0],x[1],sum(int(i) for i in x[2:])] for x in merge_non_LH8E]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
33
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
34 c_templ = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
35 c_tem_counts = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
36 c_mature = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
37 c_mat_counts = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
38 t_templ = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
39 t_tem_counts = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
40 t_mature = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
41 t_mat_counts = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
42
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
43 c_non = len(c_non_samples)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
44 c_non_counts = sum(x[2] for x in c_non_samples)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
45 t_non = len(t_non_samples)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
46 t_non_counts = sum(x[2] for x in t_non_samples)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
47
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
48 c_unmap = c_unmap - c_non
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
49 t_unmap = c_unmap - t_non
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
50
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
51 c_unmap_counts=c_unmap_counts - c_non_counts
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
52 t_unmap_counts=t_unmap_counts - t_non_counts
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
53
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
54
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
55 for x in c_samples:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
56
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
57 if "/" not in x[0]:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
58 if len(x[0].split("_"))==2:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
59 c_mature+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
60 c_mat_counts += x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
61 else:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
62 c_templ+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
63 c_tem_counts += x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
64 else:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
65 f=0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
66 for y in x[0].split("/"):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
67 if len(y.split("_"))==2:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
68 c_mature+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
69 c_mat_counts += x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
70 f=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
71 break
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
72 if f==0:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
73 c_templ+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
74 c_tem_counts += x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
75
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
76 for x in t_samples:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
77
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
78 if "/" not in x[0]:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
79 if len(x[0].split("_"))==2:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
80 t_mature+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
81 t_mat_counts += x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
82 else:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
83 t_templ+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
84 t_tem_counts += x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
85 else:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
86 f=0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
87 for y in x[0].split("/"):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
88 if len(y.split("_"))==2:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
89 t_mature+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
90 t_mat_counts += x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
91 f=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
92 break
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
93 if f==0:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
94 t_templ+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
95 t_tem_counts += x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
96
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
97 fig = plt.figure(figsize=(7,5))
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
98
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
99 labels = 'miRNA RefSeq','Template', 'Unmapped','Non-template'
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
100 sizes = [c_mat_counts, c_tem_counts, c_unmap_counts,c_non_counts]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
101 colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
102 # Plot
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
103 ax1 = plt.subplot2grid((1,2),(0,0))
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
104 patches, texts, autotexts=plt.pie(sizes, labels=labels, colors=colors, startangle=140,autopct='%1.1f%%',radius=0.8)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
105 [x.set_fontsize(8) for x in texts]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
106 plt.title('Control Group (reads)',fontsize=12)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
107
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
108 labels = 'miRNA RefSeq','Template', 'Unmapped','non-template'
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
109 sizes = [t_mat_counts, t_tem_counts, t_unmap_counts, t_non_counts]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
110 colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
111 # Plot
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
112 ax2 = plt.subplot2grid((1,2),(0,1))
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
113 patches, texts, autotexts=plt.pie(sizes, labels=labels, colors=colors, startangle=140,autopct='%1.1f%%',radius=0.8)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
114 [x.set_fontsize(8) for x in texts]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
115 plt.title('Treated Group (reads)', fontsize=12)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
116 plt.savefig('pie_non.png',dpi=300)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
117
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
118 ####################################################################################################################################################################################################################
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
119
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
120 def pie_temp(merge_LH2E,c_unmap,c_unmap_counts,merge_LH8E,t_unmap,t_unmap_counts):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
121
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
122 c_samples=[[x[0],x[1],sum(int(i) for i in x[2:])] for x in merge_LH2E]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
123 t_samples=[[x[0],x[1],sum(int(i) for i in x[2:])] for x in merge_LH8E]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
124
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
125 c_templ = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
126 c_tem_counts = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
127 c_mature = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
128 c_mat_counts = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
129 t_templ = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
130 t_tem_counts = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
131 t_mature = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
132 t_mat_counts = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
133
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
134 for x in c_samples:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
135
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
136 if "/" not in x[0]:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
137 if len(x[0].split("_"))==2:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
138 c_mature+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
139 c_mat_counts += x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
140 else:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
141 c_templ+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
142 c_tem_counts += x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
143 else:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
144 f=0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
145 for y in x[0].split("/"):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
146 if len(y.split("_"))==2:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
147 c_mature+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
148 c_mat_counts += x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
149 f=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
150 break
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
151 if f==0:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
152 c_templ+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
153 c_tem_counts += x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
154
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
155 for x in t_samples:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
156
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
157 if "/" not in x[0]:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
158 if len(x[0].split("_"))==2:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
159 t_mature+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
160 t_mat_counts += x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
161 else:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
162 t_templ+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
163 t_tem_counts += x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
164 else:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
165 f=0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
166 for y in x[0].split("/"):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
167 if len(y.split("_"))==2:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
168 t_mature+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
169 t_mat_counts += x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
170 f=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
171 break
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
172 if f==0:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
173 t_templ+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
174 t_tem_counts += x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
175
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
176
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
177 fig = plt.figure()
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
178 labels = 'miRNA RefSeq','Template', 'Unmapped'
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
179 sizes = [c_mat_counts, c_tem_counts, c_unmap_counts]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
180 colors = ['gold', 'yellowgreen', 'lightskyblue']
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
181 explode = (0.2, 0.05, 0.1)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
182 # Plot
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
183 ax1 = plt.subplot2grid((1,2),(0,0))
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
184 patches, texts, autotexts=plt.pie(sizes, labels=labels, colors=colors, startangle=140,autopct='%1.1f%%',radius=0.8)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
185 [x.set_fontsize(8) for x in texts]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
186 plt.title('Control group (reads)', fontsize=12)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
187 labels = 'miRNA RefSeq','Template', 'Unmapped'
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
188 sizes = [t_mat_counts, t_tem_counts, t_unmap_counts]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
189 colors = ['gold', 'yellowgreen', 'lightskyblue']
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
190 explode = (0.2, 0.05, 0.1)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
191 # Plot
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
192 ax2 = plt.subplot2grid((1,2),(0,1))
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
193 patches, texts, autotexts=plt.pie(sizes, labels=labels, colors=colors, startangle=140,autopct='%1.1f%%',radius=0.8)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
194 [x.set_fontsize(8) for x in texts]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
195 plt.title('Treated group (reads)',fontsize = 12)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
196 plt.savefig('pie_tem.png',dpi=300)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
197
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
198 ###################################################################################################################################################################################################################
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
199
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
200 def make_spider(merge_LH2E,merge_LH8E):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
201
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
202 c_samples=[[x[0],x[1],sum(int(i) for i in x[2:])] for x in merge_LH2E]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
203 t_samples=[[x[0],x[1],sum(int(i) for i in x[2:])] for x in merge_LH8E]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
204
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
205 c_5 = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
206 c_5_counts = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
207 c_3 = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
208 c_3_counts = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
209 c_both =0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
210 c_both_counts=0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
211 c_mature = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
212 c_mat_counts = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
213 c_exception=0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
214 c_exception_counts=0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
215
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
216
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
217 t_5 = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
218 t_5_counts = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
219 t_3 = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
220 t_3_counts = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
221 t_both = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
222 t_both_counts = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
223 t_mature = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
224 t_mat_counts = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
225 t_exception = 0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
226 t_exception_counts=0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
227
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
228 for x in c_samples:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
229
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
230 if "/" not in x[0]:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
231 if len(x[0].split("_"))==2:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
232 c_mature+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
233 c_mat_counts += x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
234 elif 0 == int(x[0].split("_")[3]):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
235 c_5+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
236 c_5_counts += x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
237 elif 0 == int(x[0].split("_")[2]):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
238 c_3+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
239 c_3_counts += x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
240 else:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
241 c_both+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
242 c_both_counts+=x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
243
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
244 else:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
245 f=0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
246 for y in x[0].split("/"):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
247 if len(y.split("_"))==2:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
248 c_mature+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
249 c_mat_counts += x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
250 f=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
251 break
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
252 if f==0:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
253 part=x[0].split("/")[0].split("_")[-2]+"_"+x[0].split("/")[0].split("_")[-1]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
254 num=0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
255 for y in x[0].split("/"):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
256 if y.split("_")[-2]+"_"+y.split("_")[-1]==part:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
257 num+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
258 if num==len(x[0].split("/")):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
259
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
260 if 0 == int(x[0].split("/")[0].split("_")[3]):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
261 c_5+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
262 c_5_counts += x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
263 elif 0 == int(x[0].split("/")[0].split("_")[2]):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
264 c_3+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
265 c_3_counts += x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
266 else:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
267 c_both+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
268 c_both_counts+=x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
269 else:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
270 c_exception+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
271 c_exception_counts += x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
272
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
273
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
274 for x in t_samples:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
275
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
276 if "/" not in x[0]:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
277 if len(x[0].split("_"))==2:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
278 t_mature+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
279 t_mat_counts += x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
280 elif 0 == int(x[0].split("_")[3]):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
281 t_5+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
282 t_5_counts += x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
283 elif 0 == int(x[0].split("_")[2]):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
284 t_3+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
285 t_3_counts += x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
286 else:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
287 t_both+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
288 t_both_counts+=x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
289
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
290 else:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
291 f=0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
292 for y in x[0].split("/"):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
293 if len(y.split("_"))==2:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
294 t_mature+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
295 t_mat_counts += x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
296 f=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
297 break
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
298 if f==0:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
299 part=x[0].split("/")[0].split("_")[-2]+"_"+x[0].split("/")[0].split("_")[-1]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
300 num=0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
301 for y in x[0].split("/"):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
302 if y.split("_")[-2]+"_"+y.split("_")[-1]==part:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
303 num+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
304 if num==len(x[0].split("/")):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
305
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
306 if 0 == int(x[0].split("/")[0].split("_")[3]):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
307 t_5+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
308 t_5_counts += x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
309 elif 0 == int(x[0].split("/")[0].split("_")[2]):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
310 t_3+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
311 t_3_counts += x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
312 else:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
313 t_both+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
314 t_both_counts+=x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
315 else:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
316 t_exception+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
317 t_exception_counts += x[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
318
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
319
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
320 c_all = c_5+c_3+c_both+c_mature+c_exception
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
321 c_all_counts = c_5_counts + c_3_counts + c_both_counts + c_mat_counts + c_exception_counts
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
322
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
323 t_all = t_5+t_3+t_both+t_mature + t_exception
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
324 t_all_counts = t_5_counts + t_3_counts + t_both_counts + t_mat_counts + t_exception_counts
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
325
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
326 c_5 = round(c_5/c_all*100,2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
327 c_3 = round(c_3/c_all*100,2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
328 c_both = round(c_both/c_all*100,2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
329 c_mature = round(c_mature/c_all*100,2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
330 c_exception = round(c_exception/c_all*100,2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
331
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
332 c_5_counts = round(c_5_counts/c_all_counts*100,2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
333 c_3_counts = round(c_3_counts/c_all_counts*100,2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
334 c_both_counts = round(c_both_counts/c_all_counts*100,2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
335 c_mat_counts = round(c_mat_counts/c_all_counts*100,2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
336 c_exception_counts = round(c_exception_counts/c_all_counts*100,2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
337
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
338 t_5 = round(t_5/t_all*100,2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
339 t_3 = round(t_3/t_all*100,2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
340 t_both = round(t_both/t_all*100,2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
341 t_mature = round(t_mature/t_all*100,2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
342 t_exception = round(t_exception/t_all*100,2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
343
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
344 t_5_counts = round(t_5_counts/t_all_counts*100,2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
345 t_3_counts = round(t_3_counts/t_all_counts*100,2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
346 t_both_counts = round(t_both_counts/t_all_counts*100,2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
347 t_mat_counts = round(t_mat_counts/t_all_counts*100,2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
348 t_exception_counts = round(t_exception_counts/t_all_counts*100,2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
349
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
350 radar_max = max(c_5, c_3, c_both,c_mature,c_exception,t_5,t_3,t_both,t_mature,t_exception)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
351 radar_max_counts = max(c_5_counts,c_3_counts,c_both_counts,c_mat_counts,c_exception_counts,t_5_counts,t_3_counts,t_both_counts,t_mat_counts,t_exception_counts)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
352
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
353 df=pd.DataFrame({
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
354 'group':['Controls','Treated'],
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
355 """5' and 3' isomiRs""":[c_both,t_both],
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
356 """3' isomiRs""":[c_3,t_3],
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
357 'miRNA RefSeq':[c_mature,t_mature],
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
358 """5' isomiRs""":[c_5,t_5],
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
359 'Others*':[c_exception,t_exception]})
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
360
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
361 df1=pd.DataFrame({
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
362 'group':['Controls','Treated'],
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
363 """5' and 3' isomiRs""":[c_both_counts,t_both_counts],
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
364 """3' isomiRs""":[c_3_counts,t_3_counts],
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
365 'miRNA RefSeq':[c_mat_counts,t_mat_counts],
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
366 """5' isomiRs""":[c_5_counts,t_5_counts],
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
367 'Others*':[c_exception_counts,t_exception_counts]})
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
368
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
369 spider_last(df,radar_max,1)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
370 spider_last(df1,radar_max_counts,2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
371
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
372
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
373 ##############################################################################################################################################################################################################
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
374
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
375 def spider_last(df,radar_max,flag):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
376 # ------- PART 1: Create background
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
377 fig = plt.figure()
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
378 # number of variable
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
379 categories=list(df)[1:]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
380 N = len(categories)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
381
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
382 # What will be the angle of each axis in the plot? (we divide the plot / number of variable)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
383 angles = [n / float(N) * 2 * pi for n in range(N)]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
384 angles += angles[:1]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
385
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
386 # Initialise the spider plot
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
387 ax = plt.subplot(111, polar=True)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
388
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
389 # If you want the first axis to be on top:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
390 ax.set_theta_offset(pi/2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
391 ax.set_theta_direction(-1)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
392
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
393 # Draw one axe per variable + add labels labels yet
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
394 plt.xticks(angles[:-1], categories, fontsize=11)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
395
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
396 # Draw ylabels
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
397 radar_max=round(radar_max+radar_max*0.1)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
398 mul=len(str(radar_max))-1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
399 maxi=int(math.ceil(radar_max / pow(10,mul))) * pow(10,mul)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
400 sep = round(maxi/4)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
401 plt.yticks([sep, 2*sep, 3*sep, 4*sep, 5*sep], [str(sep)+'%', str(2*sep)+'%', str(3*sep)+'%', str(4*sep)+'%', str(5*sep)+'%'], color="grey", size=10)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
402 plt.ylim(0, maxi)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
403
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
404 # ------- PART 2: Add plots
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
405
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
406 # Plot each individual = each line of the data
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
407 # I don't do a loop, because plotting more than 3 groups makes the chart unreadable
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
408
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
409 # Ind1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
410 values=df.loc[0].drop('group').values.flatten().tolist()
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
411 values += values[:1]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
412 ax.plot(angles, values,'-o', linewidth=1, linestyle='solid', label="Controls")
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
413 ax.fill(angles, values, 'b', alpha=0.1)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
414
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
415 # Ind2
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
416 values=df.loc[1].drop('group').values.flatten().tolist()
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
417 values += values[:1]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
418 ax.plot(angles, values, '-o' ,linewidth=1, linestyle='solid', label="Treated")
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
419 ax.fill(angles, values, 'r', alpha=0.1)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
420
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
421 # Add legend
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
422 if flag==1:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
423 plt.legend(loc='upper right', bbox_to_anchor=(0.0, 0.1))
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
424 plt.savefig('spider_non_red.png',dpi=300)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
425 else:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
426 plt.legend(loc='upper right', bbox_to_anchor=(0.0, 0.1))
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
427 plt.savefig('spider_red.png',dpi=300)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
428
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
429 #############################################################################################################################################################################################################
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
430
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
431 def hist_red(samples,flag):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
432
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
433 lengths=[]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
434 cat=[]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
435 total_reads=0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
436 seq=[]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
437
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
438 if flag == "c":
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
439 title = "Length Distribution of Control group (Redudant reads)"
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
440 if flag == "t":
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
441 title = "Length Distribution of Treated group (Redudant reads)"
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
442
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
443 for i in samples:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
444 for x in i:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
445 lengths.append(len(x[9]))
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
446 if x[1]=="0":
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
447 seq.append([x[9],x[0].split("-")[1],"Mapped"])
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
448 cat.append("Mapped")
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
449 if x[1] == "4":
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
450 seq.append([x[9],x[0].split("-")[1],"Unmapped"])
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
451 cat.append("Unmapped")
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
452
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
453 uni_len=list(set(lengths))
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
454 uni_len=[x for x in uni_len if x<=35]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
455 low=min(lengths)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
456 up=max(lengths)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
457 seq.sort()
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
458 uni_seq=list(seq for seq,_ in itertools.groupby(seq))
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
459 dim=up-low
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
460
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
461 if dim>20:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
462 s=5
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
463 else:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
464 s=8
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
465 total_reads+=sum([int(x[1]) for x in uni_seq])
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
466
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
467 map_reads=[]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
468 unmap_reads=[]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
469 length=[]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
470 for y in uni_len:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
471 map_temp=0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
472 unmap_temp=0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
473 for x in uni_seq:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
474 if len(x[0])==y and x[2]=="Mapped":
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
475 map_temp+=int(x[1])
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
476 if len(x[0])==y and x[2]=="Unmapped":
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
477 unmap_temp+=int(x[1])
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
478 if y<=35:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
479 length.append(y)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
480 map_reads.append(round(map_temp/total_reads*100,2))
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
481 unmap_reads.append(round(unmap_temp/total_reads*100,2))
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
482
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
483 ylim=max([sum(x) for x in zip(unmap_reads, map_reads)])
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
484 ylim=ylim+ylim*20/100
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
485 fig, ax = plt.subplots()
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
486 width=0.8
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
487 ax.bar(length, unmap_reads, width, label='Unmapped')
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
488 h=ax.bar(length, map_reads, width, bottom=unmap_reads, label='Mapped')
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
489 plt.xticks(np.arange(length[0], length[-1]+1, 1))
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
490 plt.xlabel('Length (nt)',fontsize=14)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
491 plt.ylabel('Percentage',fontsize=14)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
492 plt.title(title,fontsize=14)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
493 ax.legend()
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
494 plt.ylim([0, ylim])
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
495 ax.grid(axis='y',linewidth=0.2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
496
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
497 if flag=='c':
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
498 plt.savefig('c_hist_red.png',dpi=300)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
499
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
500 if flag=='t':
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
501 plt.savefig('t_hist_red.png',dpi=300)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
502
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
503 ##############################################################################################################################################################################################################################################
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
504
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
505 def logo_seq_red(merge, flag):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
506
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
507 if flag=="c":
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
508 titlos="Control group (Redundant)"
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
509 file_logo="c_logo.png"
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
510 file_bar="c_bar.png"
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
511 if flag=="t":
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
512 titlos="Treated group (Redundant)"
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
513 file_logo="t_logo.png"
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
514 file_bar="t_bar.png"
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
515
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
516 c_samples=[[x[0],x[1],sum(int(i) for i in x[2:])] for x in merge]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
517
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
518 A=[0]*5
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
519 C=[0]*5
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
520 G=[0]*5
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
521 T=[0]*5
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
522 total_reads=0
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
523
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
524 for y in c_samples:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
525 if "/" in y[0]:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
526 length=[]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
527 for x in y[0].split("/"):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
528 length.append([len(x.split("_")[-1]),x.split("_")[-1],y[2]])
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
529
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
530 best=min(length)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
531 total_reads+=best[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
532 for i in range(5):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
533 if i<len(best[1]):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
534 if best[1][i] == "A":
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
535 A[i]+=best[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
536 elif best[1][i] == "C":
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
537 C[i]+=best[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
538 elif best[1][i] == "G":
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
539 G[i]+=best[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
540 else:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
541 T[i]+=best[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
542 else:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
543 total_reads+=y[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
544 for i in range(5):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
545 if i<len(y[0].split("_")[-1]):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
546 if y[0].split("_")[-1][i] == "A":
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
547 A[i]+=(y[2])
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
548 elif y[0].split("_")[-1][i] == "C":
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
549 C[i]+=(y[2])
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
550 elif y[0].split("_")[-1][i] == "G":
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
551 G[i]+=(y[2])
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
552 else:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
553 T[i]+=y[2]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
554
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
555 A[:] = [round(x*100,1) / total_reads for x in A]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
556 C[:] = [round(x*100,1) / total_reads for x in C]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
557 G[:] = [round(x*100,1) / total_reads for x in G]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
558 T[:] = [round(x*100,1) / total_reads for x in T]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
559
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
560 data = {'A':A,'C':C,'G':G,'T':T}
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
561 df = pd.DataFrame(data, index=[1,2,3,4,5])
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
562
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
563 h=df.plot.bar(color=tuple(["g", "b","gold","r"]) )
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
564 h.grid(axis='y',linewidth=0.2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
565 plt.xticks(rotation=0, ha="right")
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
566 plt.ylabel("Counts (%)",fontsize=18)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
567 plt.xlabel("Positions (nt)",fontsize=18)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
568 plt.title(titlos,fontsize=20)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
569 plt.tight_layout()
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
570 plt.savefig(file_bar, dpi=300)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
571
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
572 import logomaker as lm
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
573 crp_logo = lm.Logo(df, font_name = 'DejaVu Sans')
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
574
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
575 crp_logo.style_spines(visible=False)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
576 crp_logo.style_spines(spines=['left', 'bottom'], visible=True)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
577 crp_logo.style_xticks(rotation=0, fmt='%d', anchor=0)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
578 crp_logo.ax.set_title(titlos,fontsize=18)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
579 crp_logo.ax.set_ylabel("Counts (%)", fontsize=16,labelpad=5)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
580 crp_logo.ax.set_xlabel("Positions (nt)",fontsize=16, labelpad=5)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
581 crp_logo.ax.xaxis.set_ticks_position('none')
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
582 crp_logo.ax.xaxis.set_tick_params(pad=-1)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
583 figure = plt.gcf()
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
584 figure.set_size_inches(6, 4)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
585 crp_logo.fig.savefig(file_logo,dpi=300)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
586
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
587 ##########################################################################################################################################################################################################
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
588
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
589 def logo_seq_non_red(merge_LH2E):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
590
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
591 c_samples=[[x[0],x[1],sum(int(i) for i in x[2:])] for x in merge_LH2E]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
592
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
593 A=[0]*5
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
594 C=[0]*5
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
595 G=[0]*5
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
596 T=[0]*5
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
597
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
598 for y in c_samples:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
599 if "/" in y[0]:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
600 length=[]
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
601 for x in y[0].split("/"):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
602 length.append([len(x.split("_")[-1]),x.split("_")[-1],y[2]])
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
603
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
604 best=min(length)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
605 for i in range(5):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
606 if i<len(best[1]):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
607 if best[1][i] == "A":
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
608 A[i]+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
609 elif best[1][i] == "C":
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
610 C[i]+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
611 elif best[1][i] == "G":
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
612 G[i]+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
613 else:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
614 T[i]+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
615 else:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
616 for i in range(5):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
617 if i<len(y[0].split("_")[-1]):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
618 if y[0].split("_")[-1][i] == "A":
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
619 A[i]+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
620 elif y[0].split("_")[-1][i] == "C":
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
621 C[i]+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
622 elif y[0].split("_")[-1][i] == "G":
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
623 G[i]+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
624 else:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
625 T[i]+=1
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
626
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
627 data = {'A':A,'C':C,'G':G,'T':T}
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
628 df = pd.DataFrame(data, index=[1,2,3,4,5])
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
629 h=df.plot.bar(title="Non-templated nucleotides after templated sequence",color=tuple(["g", "b","gold","r"]))
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
630 h.set_xlabel("Positions (nt)")
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
631 h.set_ylabel("Unique sequences")
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
632 plt.xticks(rotation=0, ha="right")
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
633 plt.tight_layout()
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
634 plt.savefig("bar2.png", dpi=300)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
635
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
636
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
637 import logomaker as lm
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
638 crp_logo = lm.Logo(df, font_name = 'DejaVu Sans')
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
639
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
640 crp_logo.style_spines(visible=False)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
641 crp_logo.style_spines(spines=['left', 'bottom'], visible=True)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
642 crp_logo.style_xticks(rotation=0, fmt='%d', anchor=0)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
643
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
644 crp_logo.ax.set_ylabel("Unique sequences", labelpad=5)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
645 crp_logo.ax.set_xlabel("Positions (nt)", labelpad=5)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
646 crp_logo.ax.xaxis.set_ticks_position('none')
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
647 crp_logo.ax.xaxis.set_tick_params(pad=-1)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
648 crp_logo.ax.set_title("Non-redundant")
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
649 figure = plt.gcf()
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
650 crp_logo.fig.savefig('logo2.png', dpi=300)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
651
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
652
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
653 ################################################################################################################################################################################################################
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
654
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
655
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
656
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
657
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
658
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
659 ################################################################################################################################################################
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
660
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
661 def pdf_before_DE(analysis):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
662
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
663 # Import FPDF class
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
664 from fpdf import FPDF, fpdf
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
665
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
666 # Import glob module to find all the files matching a pattern
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
667 import glob
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
668
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
669 # Image extensions
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
670 if analysis=="2":
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
671 image_extensions = ("c_hist_red.png","t_hist_red.png","pie_non.png","spider_red.png","spider_non_red.png","c_logo.png","t_logo.png","c_bar.png","t_bar.png")
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
672 else:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
673 image_extensions = ("c_hist_red.png","t_hist_red.png","pie_tem.png","spider_red.png","spider_non_red.png")
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
674 # This list will hold the images file names
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
675 images = []
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
676
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
677 # Build the image list by merging the glob results (a list of files)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
678 # for each extension. We are taking images from current folder.
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
679 for extension in image_extensions:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
680 images.extend(glob.glob(extension))
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
681 #sys.exit(images)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
682 # Create instance of FPDF class
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
683 pdf = FPDF('P', 'in', 'A4')
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
684 # Add new page. Without this you cannot create the document.
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
685 pdf.add_page()
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
686 # Set font to Arial, 'B'old, 16 pts
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
687 pdf.set_font('Arial', 'B', 20.0)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
688
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
689 # Page header
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
690 pdf.cell(pdf.w-0.5, 0.5, 'IsomiR Profile Report',align='C')
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
691 pdf.ln(0.7)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
692 pdf.set_font('Arial','', 16.0)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
693 pdf.cell(pdf.w-0.5, 0.5, 'sRNA Length Distribution',align='C')
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
694
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
695 # Smaller font for image captions
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
696 pdf.set_font('Arial', '', 11.0)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
697
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
698 # Image caption
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
699 pdf.ln(0.5)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
700
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
701 yh=FPDF.get_y(pdf)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
702 pdf.image(images[0],x=0.3,w=4, h=3)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
703 pdf.image(images[1],x=4,y=yh, w=4, h=3)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
704 pdf.ln(0.3)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
705
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
706 # Image caption
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
707 pdf.cell(0.2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
708 pdf.cell(3.0, 0.0, " Mapped and unmapped reads to custom precussor arm reference DB (5p and 3p arms) in Control (left)")
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
709 pdf.ln(0.2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
710 pdf.cell(0.2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
711 pdf.cell(3.0, 0.0, " and Treated (right) groups")
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
712
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
713
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
714 pdf.ln(0.5)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
715 h1=FPDF.get_y(pdf)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
716 pdf.image(images[2],x=1, w=6.5, h=5)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
717 h2=FPDF.get_y(pdf)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
718 FPDF.set_y(pdf,h1+0.2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
719 pdf.set_font('Arial','', 14.0)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
720 pdf.cell(pdf.w-0.5, 0.5, 'Template and non-template IsomiRs',align='C')
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
721 pdf.set_font('Arial', '', 11.0)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
722 FPDF.set_y(pdf,h2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
723 FPDF.set_y(pdf,9.5)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
724 # Image caption
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
725 pdf.cell(0.2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
726 if analysis=="2":
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
727 pdf.cell(3.0, 0.0, " Template, non-template, miRNA RefSeq and unmapped sequences as percentage of total sRNA reads")
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
728 pdf.ln(0.2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
729 pdf.cell(0.2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
730 pdf.cell(3.0, 0.0, " in Control (left) and treated (right) groups")
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
731 else:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
732 pdf.cell(3.0, 0.0, " Template, miRNA RefSeq and unmapped sequences as percentage of total sRNA reads in")
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
733 pdf.ln(0.2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
734 pdf.cell(0.2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
735 pdf.cell(3.0, 0.0, " Control (left) and treated (right) groups")
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
736
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
737
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
738
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
739 pdf.add_page()
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
740 pdf.set_font('Arial', 'B', 16.0)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
741 pdf.cell(pdf.w-0.5, 0.5, "Reference form and isomiR among total miRNA reads",align='C')
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
742 pdf.ln(0.7)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
743 pdf.set_font('Arial', 'B', 12.0)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
744 pdf.cell(pdf.w-0.5, 0.5, "Template isomiR profile (redundant)",align='C')
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
745 pdf.ln(0.5)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
746 pdf.image(images[3],x=1.5, w=5.5, h=4)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
747 pdf.ln(0.6)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
748 pdf.cell(pdf.w-0.5, 0.0, "Template isomiR profile (non-redundant)",align='C')
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
749 pdf.set_font('Arial', '', 12.0)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
750 pdf.ln(0.2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
751 pdf.image(images[4],x=1.5, w=5.5, h=4)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
752 pdf.ln(0.3)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
753 pdf.set_font('Arial', '', 11.0)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
754 pdf.cell(0.2)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
755 pdf.cell(3.0, 0.0, " * IsomiRs potentialy initiated from multiple loci")
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
756
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
757
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
758 if analysis=="2":
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
759 pdf.add_page('L')
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
760
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
761 pdf.set_font('Arial', 'B', 16.0)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
762 pdf.cell(pdf.w-0.5, 0.5, "Non-template IsomiRs",align='C')
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
763 pdf.ln(0.5)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
764 pdf.set_font('Arial', 'B', 12.0)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
765 pdf.cell(pdf.w-0.5, 0.5, "3' Additions of reference of isomiR sequence",align='C')
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
766 pdf.ln(0.7)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
767
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
768 yh=FPDF.get_y(pdf)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
769 pdf.image(images[5],x=1.5,w=3.65, h=2.65)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
770 pdf.image(images[7],x=6.5,y=yh, w=3.65, h=2.65)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
771 pdf.ln(0.5)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
772 yh=FPDF.get_y(pdf)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
773 pdf.image(images[6],x=1.5,w=3.65, h=2.65)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
774 pdf.image(images[8],x=6.5,y=yh, w=3.65, h=2.65)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
775
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
776 pdf.close()
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
777 pdf.output('report1.pdf','F')
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
778
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
779
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
780
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
781
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
782 #############################################################################################################################################################3
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
783
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
784 def pdf_after_DE(analysis):
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
785
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
786 # Import FPDF class
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
787 from fpdf import FPDF
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
788
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
789 # Import glob module to find all the files matching a pattern
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
790 import glob
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
791
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
792 # Image extensions
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
793 image_extensions = ("tem.png","non.png","a2.png")
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
794
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
795 # This list will hold the images file names
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
796 images = []
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
797
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
798 # Build the image list by merging the glob results (a list of files)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
799 # for each extension. We are taking images from current folder.
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
800 for extension in image_extensions:
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
801 images.extend(glob.glob(extension))
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
802
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
803 # Create instance of FPDF class
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
804 pdf = FPDF('P', 'in', 'letter')
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
805 # Add new page. Without this you cannot create the document.
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
806 pdf.add_page()
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
807 # Set font to Arial, 'B'old, 16 pts
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
808 pdf.set_font('Arial', 'B', 16.0)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
809
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
810 # Page header
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
811 pdf.cell(pdf.w-0.5, 0.5, 'Differential expression of miRNAs and Isoforms',align='C')
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
812 #pdf.ln(0.25)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
813
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
814 pdf.ln(0.7)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
815 pdf.set_font('Arial','B', 12.0)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
816 pdf.cell(pdf.w-0.5, 0.5, 'Top 50 most differentially expressed miRNA and template isoforms',align='C')
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
817
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
818
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
819 # Smaller font for image captions
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
820 pdf.set_font('Arial', '', 10.0)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
821
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
822 # Image caption
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
823 pdf.ln(0.4)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
824 pdf.image(images[0],x=0.8, w=7, h=8)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
825 pdf.ln(0.3)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
826
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
827 if analysis=="2":
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
828
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
829 pdf.add_page()
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
830 pdf.ln(0.7)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
831 pdf.set_font('Arial','B', 12.0)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
832 pdf.cell(pdf.w-0.5, 0.5, 'Top 50 most differentially expressed non-template isomiRs',align='C')
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
833 pdf.ln(0.4)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
834 pdf.image(images[1],x=0.5, w=7.5, h=6.5)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
835
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
836 pdf.add_page()
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
837 pdf.ln(0.5)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
838 pdf.cell(pdf.w-0.5, 0.5, 'Top 50 most differentially expressed miRNAs and isomiRs grouped by arm',align='C')
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
839 pdf.ln(0.4)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
840 pdf.image(images[2],x=0.8, w=7, h=8)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
841 pdf.ln(0.3)
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
842
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
843
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
844 pdf.output('report2.pdf', 'F')
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
845
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
846
6633f4447090 Uploaded
glogobyte
parents:
diff changeset
847