annotate mirbase_graphs.py @ 1:561b0abcae87 draft

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