annotate reactivity_cal/react_cal.py @ 22:ec9348a4c42f draft

Uploaded
author tyty
date Mon, 20 Oct 2014 14:32:13 -0400
parents 7a8ddf1819b1
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
1 #!/usr/bin/env python
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
2 # -*- coding: utf-8 -*-
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
3 import sys
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
4 from Bio import SeqIO
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
5 import math
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
6 from parse_dis_react import *
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
7 from react_norm_function import *
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
8 import os
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
9
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
10
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
11 dist_file1 = sys.argv[1] #plus library
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
12 dist_file2 = sys.argv[2] #minus library
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
13 seq_file = sys.argv[3]
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
14 nt_spec = sys.argv[4]
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
15 flag_in = sys.argv[5]
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
16 threshold = sys.argv[6]
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
17 output_file = sys.argv[7]
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
18
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
19
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
20 distri_p = parse_dist(dist_file1)
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
21 distri_m = parse_dist(dist_file2)
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
22 threshold = float(threshold)
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
23
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
24 print(flag_in)
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
25
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
26 ospath = os.path.realpath(sys.argv[0])
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
27 ost = ospath.split('/')
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
28 syspath = ""
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
29 for i in range(len(ost)-1):
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
30 syspath = syspath+ost[i].strip()
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
31 syspath = syspath+'/'
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
32
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
33 h = file(syspath+"react.txt",'w')
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
34 flag_in = int(flag_in)
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
35
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
36 seqs = SeqIO.parse(open(seq_file),'fasta');
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
37 nt_s = set()
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
38 for i in range(len(nt_spec)):
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
39 nt_s.add(nt_spec[i])
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
40
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
41 flag = 0
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
42 trans = []
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
43 distri_p = distri_p[1]
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
44 distri_m = distri_m[1]
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
45
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
46 #thres = int(threshold)
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
47
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
48
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
49 transcripts = {}
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
50 for seq in seqs:
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
51 n = seq.id
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
52 trans.append(n)
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
53 transcripts[n] = seq.seq.tostring()
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
54
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
55
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
56 #print(distri_p)
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
57
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
58
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
59 for i in range(0, len(trans)):
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
60 h.write(trans[i])
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
61 h.write('\n')
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
62 if (trans[i].find('AT1G29930')==-1) and (trans[i].find('At1g29930')==-1):
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
63 for j in range(len(distri_p[trans[i]])):
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
64 distri_p[trans[i]][j] = math.log((int(distri_p[trans[i]][j])+1),math.e)
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
65 for j in range(len(distri_m[trans[i]])):
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
66 distri_m[trans[i]][j] = math.log((int(distri_m[trans[i]][j])+1),math.e)
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
67 s_p = sum(distri_p[trans[i]])
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
68 s_m = sum(distri_m[trans[i]])
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
69 length = len(distri_p[trans[i]])
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
70 if s_p!= 0 and s_m!= 0:
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
71 r = []
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
72 for j in range(0, len(distri_p[trans[i]])):
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
73 f_p = (float(distri_p[trans[i]][j]))/float(s_p)*length
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
74 f_m = (float(distri_m[trans[i]][j]))/float(s_m)*length
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
75 raw_react = f_p-f_m
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
76 r.append(max(0, raw_react))
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
77 else:
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
78 for j in range(len(distri_p[trans[i]])):
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
79 distri_p[trans[i]][j] = int(distri_p[trans[i]][j])
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
80 for j in range(len(distri_m[trans[i]])):
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
81 distri_m[trans[i]][j] = int(distri_m[trans[i]][j])
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
82 s_p = sum(distri_p[trans[i]])
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
83 s_m = sum(distri_m[trans[i]])
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
84 if s_p!= 0 and s_m!= 0:
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
85 r = []
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
86 for j in range(0, len(distri_p[trans[i]])):
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
87 f_p = float(distri_p[trans[i]][j])/float(s_p)
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
88 f_m = float(distri_m[trans[i]][j])/float(s_m)
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
89 r.append((max(0,(f_p-f_m)))*100)
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
90
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
91 if s_p!= 0 and s_m!= 0:
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
92 for k in range(1,(len(r)-1)):
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
93 if transcripts[trans[i]][k-1] in nt_s:
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
94 h.write(str(r[k]))
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
95 h.write('\t')
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
96 else:
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
97 h.write('NA')
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
98 h.write('\t')
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
99 k = k+1
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
100 if transcripts[trans[i]][k-1] in nt_s:
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
101 h.write(str(r[k]))
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
102 h.write('\n')
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
103 else:
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
104 h.write('NA')
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
105 h.write('\n')
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
106
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
107
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
108 h.close()
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
109
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
110 if flag_in:
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
111 react_norm((syspath+"react.txt"),output_file, threshold)
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
112 else:
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
113 h_o = file(output_file, 'w')
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
114 f_i = open(syspath+"react.txt")
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
115 for aline in f_i.readlines():
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
116 h_o.write(aline.strip())
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
117 h_o.write('\n')
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
118 os.system("rm -f "+syspath+"react.txt")
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
119
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
120
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
121
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
122
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
123
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
124
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
125
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
126
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
127
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
128
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
129
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
130
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
131
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
132
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
133
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
134
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
135
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
136
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
137
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
138
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
139
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
140
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
141
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
142
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
143
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
144
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
145
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
146
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
147
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
148
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
149
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
150
7a8ddf1819b1 Uploaded
tyty
parents:
diff changeset
151