annotate qtlmap_15/qtlmap7_15nodes.py @ 0:fa0693cf076b draft

Uploaded
author nanettec
date Fri, 18 Mar 2016 05:51:39 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
1 """
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
2 @summary: MAP and PARSE
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
3 @version 7
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
4
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
5 """
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
6 # MAPPER --> save only QTL output
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
7
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
8 # Input: qtlcart.inp
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
9 # qtlcart.map
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
10 # parameters.txt
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
11
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
12 # Output: QTLs_total.txt
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
13
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
14 import optparse, sys
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
15 import tempfile
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
16 import re
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
17
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
18 def stop_err( msg ):
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
19 sys.stderr.write( "%s\n" % msg )
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
20 sys.exit()
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
21
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
22 def __main__():
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
23 parser = optparse.OptionParser()
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
24 parser.add_option("-i", "--input1", default=None, dest="input1",
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
25 help="qtlcart.inp file")
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
26 parser.add_option("-j", "--input2", default=None, dest="input2",
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
27 help="qtlcart.map file")
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
28 parser.add_option("-k", "--input3", default=None, dest="input3",
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
29 help="parameters.txt file")
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
30
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
31 parser.add_option("-o", "--output1", default=None, dest="output1",
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
32 help="QTLs_total.txt file")
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
33 (options, args) = parser.parse_args()
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
34
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
35 try:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
36 open(options.input1, "r").close()
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
37 except TypeError, e:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
38 stop_err("You need to supply the qtlcart.inp file:\n" + str(e))
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
39 except IOError, e:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
40 stop_err("Can not open the qtlcart.inp file:\n" + str(e))
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
41
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
42 try:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
43 open(options.input2, "r").close()
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
44 except TypeError, e:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
45 stop_err("You need to supply the qtlcart.map file:\n" + str(e))
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
46 except IOError, e:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
47 stop_err("Can not open the qtlcart.map file:\n" + str(e))
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
48
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
49 try:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
50 open(options.input3, "r").close()
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
51 except TypeError, e:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
52 stop_err("You need to supply the parameters.txt file:\n" + str(e))
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
53 except IOError, e:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
54 stop_err("Can not open the parameters.txt file:\n" + str(e))
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
55
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
56 ######################################################################
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
57 # submit.py
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
58 ######################################################################
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
59
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
60 import subprocess
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
61 import os
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
62
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
63 # Create temp direcotry
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
64 tempdir = tempfile.mkdtemp()
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
65 #print tempdir
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
66
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
67 s = "cp %s %s/parameters.txt" %(options.input3, tempdir)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
68 subprocess.call(s, shell=True)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
69 paramters_file = open(tempdir+"/parameters.txt", "r")
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
70 parvalues = []
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
71 for line in paramters_file:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
72 l = line.strip().split("\t")
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
73 if l[0] == "SRmodel":
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
74 SRmodel = l[1]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
75 if l[0] == "Zmodel":
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
76 Zmodel = l[1]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
77 if l[0] == "threshold":
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
78 threshold = l[1]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
79 if l[0] == "walking_speed":
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
80 walking_speed = l[1]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
81 if l[0] == "window_size":
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
82 window_size = l[1]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
83 if l[0] == "minimum_cM_between_QTL":
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
84 minimum_cM_between_QTL = l[1]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
85 paramters_file.close()
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
86
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
87 # copy INPUT file to the temp directory
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
88 s = "cp %s %s/qtlcart.inp" %(options.input1, tempdir)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
89 subprocess.call(s, shell=True)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
90 s = "cp %s %s/qtlcart.map" %(options.input2, tempdir)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
91 subprocess.call(s, shell=True)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
92
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
93 f=open(tempdir+"/qtlcart.inp", "r")
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
94 ln=f.readlines()
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
95 f.close()
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
96
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
97 if ln[0] == "NA":
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
98 f1=open(tempdir+"/QTLs_total_parsed_LOD.txt", "w")
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
99 f1.write("")
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
100 f1.close()
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
101 os.system("mv %s/QTLs_total_parsed_LOD.txt %s" %(tempdir,options.output1))
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
102 #os.system("mv %s/qtlcart.rc %s" %(tempdir,options.output2))
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
103 else:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
104 instruction = "/cluster1/bin/Rcross -i %s/qtlcart.inp -o %s/qtlcart.cro -A -V" %(tempdir, tempdir)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
105 os.system(instruction)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
106
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
107 instruction = "/cluster1/bin/SRmapqtl -i %s/qtlcart.cro -e %s/SRqtlcart.log -o %s/qtlcart.sr -m %s/qtlcart.map -M %s -t 9999999999 -A -V" %(tempdir, tempdir, tempdir, tempdir, str(SRmodel))
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
108 os.system(instruction)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
109
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
110 instruction = "/cluster1/bin/Zmapqtl -i %s/qtlcart.cro -o %s/qtlcart.z -m %s/qtlcart.map -S %s/qtlcart.sr -M %s -d %s -w %s -t 9999999999 -A -V" %(tempdir, tempdir, tempdir, tempdir, str(Zmodel), str(walking_speed), str(window_size))
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
111 os.system(instruction)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
112
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
113 #instruction = "/cluster1/bin/Eqtl -m %s/qtlcart.map -z %s/qtlcart.z -e %s/Eqtlcart.log -o %s/qtlcart.eqt -S %s -A -V" %(tempdir, tempdir, tempdir, tempdir, str(threshold))
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
114 #os.system(instruction)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
115
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
116 #####################
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
117 # parse_eqt_file.py
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
118 #####################
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
119
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
120 infile = open(tempdir+"/qtlcart.z","r")
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
121 outfile = open(tempdir+"/QTLs_total_parsed.txt","w")
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
122
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
123 outfile.write("trait_name\ttrait_number\teQTL_number\tchr\tpeak_marker\tpeak_position\tpeak_LR\tpeak_LOD\tR2\tTR2\tS\tadditive\tdominance\n")
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
124
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
125 for line in infile:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
126 l = line.strip().split()
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
127 if line.startswith("-trait"):
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
128 trait_num = l[1]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
129 trait_name = l[-1][1:-1]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
130 prev_lr_max = float(threshold)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
131 decrease = 0
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
132 #print trait_num
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
133 #print trait_name
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
134 #print "---"
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
135 eqtl_keep = ""
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
136 eqtl_list = []
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
137 prev_chromosome = 0
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
138 try:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
139 ans = l[0]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
140 except:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
141 ans = ""
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
142 if ans != "":
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
143 if l[0].startswith(('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')):
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
144 chromosome = l[0]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
145 chr_change = 0
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
146 if chromosome != prev_chromosome:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
147 #print "NEW CHROMOSOME !!!!"
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
148 chr_change = 1
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
149 prev_chromosome = l[0]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
150 if chr_change == 1 and eqtl_keep != "":
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
151 eqtl_list.append(eqtl_keep)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
152 #print "APPEND PREV"
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
153 eqtl_keep = ""
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
154 decrease = 0
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
155 prev_lr_max = float(threshold)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
156
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
157 if float(l[3]) > float(threshold):
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
158 #print line
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
159 if float(l[3]) > prev_lr_max:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
160 eqtl_keep = line.strip()
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
161 prev_lr_max = float(l[3])
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
162 decrease = 0
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
163 #print "KEEP"
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
164 else:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
165 decrease += 1
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
166 if decrease == 1:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
167 eqtl_list.append(eqtl_keep)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
168 #print "APPEND PREV"
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
169 eqtl_keep = ""
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
170 prev_lr_max = float(l[3])
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
171 else:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
172 prev_lr_max = float(l[3])
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
173 else:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
174 decrease += 1
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
175 if decrease == 1 and eqtl_keep != "":
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
176 eqtl_list.append(eqtl_keep)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
177 #print "APPEND PREV"
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
178 eqtl_keep = ""
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
179 decrease = 0
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
180 prev_lr_max = float(threshold)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
181 #print decrease
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
182
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
183 if line.startswith("-e"):
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
184 if eqtl_keep != "":
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
185 eqtl_list.append(eqtl_keep)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
186 #print "APPEND PREV"
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
187 eqtl_keep = ""
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
188 decrease = 0
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
189 prev_lr_max = float(threshold)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
190 #print "########"
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
191 count = 0
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
192 for eqtl in eqtl_list:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
193 e = eqtl.split()
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
194 #print e
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
195 count += 1
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
196 index = str(count)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
197 chrom = str(e[0])
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
198 marker = str(e[1])
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
199 pos = str(e[2])
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
200 lr = str(e[3])
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
201 lod = str(0.217*float(e[3]))
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
202 additive = str(e[6])
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
203 dominance = str(e[8])
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
204 r2 = str(e[4])
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
205 tr2 = str(e[5])
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
206 s = str(e[7])
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
207 outfile.write(trait_name+"\t"+trait_num+"\t"+index+"\t"+chrom+"\t"+marker+"\t"+pos+"\t"+lr+"\t"+lod+"\t"+r2+"\t"+tr2+"\t"+s+"\t"+additive+"\t"+dominance+"\n")
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
208 #print len(eqtl_list)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
209 infile.close()
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
210 outfile.close()
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
211
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
212 #########################
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
213 # calc_LOD_intervals.py
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
214 #########################
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
215 outfile = open(tempdir+"/QTLs_total_parsed_LOD.txt","w")
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
216 eqtfile = open(tempdir+"/QTLs_total_parsed.txt","r")
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
217
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
218 eQTL_dict = {}
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
219 eQTL_id = 0
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
220 for line in eqtfile:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
221 l = line.strip().split("\t")
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
222 if (l[0] != "trait_name"):
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
223 eQTL_id += 1
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
224 eQTL_dict[eQTL_id] = [l[0],l[3],l[4],l[5],l[7]]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
225 eqtfile.close()
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
226 #print eQTL_dict
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
227
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
228 for i in range(1,len(eQTL_dict)+1):
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
229 ans = []
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
230
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
231 eqt_eQTL = eQTL_dict[i][0]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
232 eqt_c = eQTL_dict[i][1]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
233 eqt_m = eQTL_dict[i][2]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
234 eqt_pos = eQTL_dict[i][3]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
235 eqt_lod = eQTL_dict[i][4]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
236
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
237 z_eQTL = ""
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
238 z_id = 0
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
239 z_dict = {}
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
240 peak_id = 0
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
241
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
242 zfile = open(tempdir+"/qtlcart.z","r")
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
243 for line in zfile:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
244 if line.startswith("-trait"):
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
245 l = line.strip().split("[")
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
246 z_eQTL = l[1][:-1]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
247 #print "z_eQTL = "+z_eQTL
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
248 #print "eqt_eQTL = "+eqt_eQTL
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
249 if (eqt_eQTL == z_eQTL) and (line.strip().startswith(eqt_c)):
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
250 if str(line.strip().split()[0]) == str(eqt_c):
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
251 l = line.strip().split()
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
252 z_id += 1
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
253 z_c = l[0]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
254 z_m = l[1]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
255 z_pos = l[2]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
256 z_lod = float(l[3])*0.217
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
257 z_dict[z_id] = [z_c, z_m, z_pos, z_lod]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
258 if float(eqt_pos) == float(z_pos):
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
259 peak_id = z_id
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
260 zfile.close()
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
261
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
262 lod1 = float(eqt_lod)-1
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
263 lod2 = float(eqt_lod)-2
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
264
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
265 # lod1_L calculation
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
266 #print "==== lod1_L"
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
267 subtract = 1
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
268 left_id = peak_id-1
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
269 if left_id != 0:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
270 #print "peak_id-subtract "+ str(peak_id-subtract)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
271 #print "left_id "+str(left_id)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
272 while (z_dict[peak_id-subtract][3] > lod1) and (left_id > 1):
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
273 subtract += 1
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
274 left_id = peak_id-subtract
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
275
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
276 s1 = float(z_dict[left_id][2]) # small position
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
277 s2 = float(z_dict[left_id][3]) # small lod
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
278 l1 = float(z_dict[left_id+1][2]) # large position
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
279 l2 = float(z_dict[left_id+1][3]) # large lod
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
280
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
281 if (l2-s2) != 0:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
282 lod1_L_pos = round(((lod1-s2)*(l1-s1)/(l2-s2))+s1,4)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
283 else:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
284 lod1_L_pos = round(((lod1-s2)*(l1-s1)/(0.00001))+s1,4)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
285 lod1_L_m = z_dict[left_id][1]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
286 if lod1_L_pos < 0:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
287 lod1_L_pos = z_dict[1][2]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
288 lod1_L_m = z_dict[1][1]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
289 if ((lod1_L_pos >= s1) and (lod1_L_pos <= l1)):
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
290 pass
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
291 else:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
292 lod1_L_pos = z_dict[1][2]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
293 lod1_L_m = z_dict[1][1]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
294 else:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
295 lod1_L_pos = z_dict[1][2]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
296 lod1_L_m = z_dict[1][1]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
297 ans.append(lod1_L_m)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
298 ans.append(lod1_L_pos)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
299
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
300 # lod1_R calculation
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
301 #print "==== lod1_R"
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
302 add = 1
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
303 right_id = peak_id+1
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
304 if right_id <= max(z_dict.keys()):
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
305 while (z_dict[peak_id+add][3] > lod1) and (right_id < max(z_dict.keys())):
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
306 add += 1
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
307 right_id = peak_id+add
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
308
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
309 s1 = float(z_dict[right_id-1][2]) # small position
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
310 s2 = float(z_dict[right_id-1][3]) # small lod
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
311 l1 = float(z_dict[right_id][2]) # large position
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
312 l2 = float(z_dict[right_id][3]) # large lod
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
313
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
314 if (l2-s2) != 0:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
315 lod1_R_pos = round(((lod1-s2)*(l1-s1)/(l2-s2))+s1,4)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
316 else:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
317 lod1_R_pos = round(((lod1-s2)*(l1-s1)/(0.00001))+s1,4)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
318 lod1_R_m = z_dict[right_id-1][1]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
319
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
320 if lod1_R_pos > float(z_dict[max(z_dict.keys())][2]):
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
321 lod1_pos = z_dict[1][2]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
322 #lod1_m = z_dict[2][1]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
323 #lod1_R_pos = z_dict[max(z_dict.keys())][2]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
324 lod1_R_m = z_dict[max(z_dict.keys())][1]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
325 if ((lod1_R_pos >= s1) and (lod1_R_pos <= l1)):
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
326 pass
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
327 else:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
328 lod1_R_pos = z_dict[max(z_dict.keys())][2]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
329 lod1_R_m = z_dict[max(z_dict.keys())][1]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
330 else:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
331 lod1_R_pos = z_dict[max(z_dict.keys())][2]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
332 lod1_R_m = z_dict[max(z_dict.keys())][1]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
333
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
334 ans.append(lod1_R_m)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
335 ans.append(lod1_R_pos)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
336
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
337 # lod2_L calculation
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
338 #print "==== lod2_L"
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
339 subtract = 1
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
340 left_id = peak_id-1
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
341 if left_id != 0 :
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
342 while (z_dict[peak_id-subtract][3] > lod2) and (left_id > 1):
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
343 subtract += 1
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
344 left_id = peak_id-subtract
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
345
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
346 s1 = float(z_dict[left_id][2]) # small position
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
347 s2 = float(z_dict[left_id][3]) # small lod
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
348 l1 = float(z_dict[left_id+1][2]) # large position
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
349 l2 = float(z_dict[left_id+1][3]) # large lod
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
350
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
351 if (l2-s2) != 0:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
352 lod2_L_pos = round(((lod2-s2)*(l1-s1)/(l2-s2))+s1,4)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
353 else:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
354 lod2_L_pos = round(((lod2-s2)*(l1-s1)/(0.00001))+s1,4)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
355
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
356 lod2_L_m = z_dict[left_id][1]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
357 if lod2_L_pos < 0:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
358 lod2_L_pos = z_dict[1][2]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
359 lod2_L_m = z_dict[2][1]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
360 if ((lod2_L_pos >= s1) and (lod2_L_pos <= l1)):
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
361 pass
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
362 else:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
363 lod2_L_pos = z_dict[1][2]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
364 lod2_L_m = z_dict[1][1]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
365 else:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
366 lod2_L_pos = z_dict[1][2]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
367 lod2_L_m = z_dict[1][1]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
368 ans.append(lod2_L_m)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
369 ans.append(lod2_L_pos)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
370
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
371
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
372 # lod2_R calculation
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
373 #print "==== lod2_R"
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
374 add = 1
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
375 right_id = peak_id+1
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
376 if right_id <= max(z_dict.keys()):
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
377 while (z_dict[peak_id+add][3] > lod2) and (right_id < max(z_dict.keys())):
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
378 add += 1
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
379 right_id = peak_id+add
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
380
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
381 s1 = float(z_dict[right_id-1][2]) # small position
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
382 s2 = float(z_dict[right_id-1][3]) # small lod
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
383 l1 = float(z_dict[right_id][2]) # large position
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
384 l2 = float(z_dict[right_id][3]) # large lod
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
385
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
386 if (l2-s2) != 0:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
387 lod2_R_pos = round(((lod2-s2)*(l1-s1)/(l2-s2))+s1,4)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
388 else:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
389 lod2_R_pos = round(((lod2-s2)*(l1-s1)/(0.00001))+s1,4)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
390 lod2_R_m = z_dict[right_id-1][1]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
391
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
392 if lod2_R_pos > float(z_dict[max(z_dict.keys())][2]):
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
393 lod2_R_pos = z_dict[max(z_dict.keys())][2]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
394 lod2_R_m = z_dict[max(z_dict.keys())][1]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
395 if ((lod2_R_pos >= s1) and (lod2_R_pos <= l1)):
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
396 pass
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
397 else:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
398 lod2_R_pos = z_dict[max(z_dict.keys())][2]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
399 lod2_R_m = z_dict[max(z_dict.keys())][1]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
400 else:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
401 lod2_R_pos = z_dict[max(z_dict.keys())][2]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
402 lod2_R_m = z_dict[max(z_dict.keys())][1]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
403 ans.append(lod2_R_m)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
404 ans.append(lod2_R_pos)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
405
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
406 eQTL_dict[i].append(ans)
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
407
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
408 head = ["LOD1_L_m","LOD1_L_pos","LOD1_R_m","LOD1_R_pos","LOD2_L_m","LOD2_L_pos","LOD2_R_m","LOD2_R_pos"]
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
409
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
410 i = -1
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
411 eqtfile = open(tempdir+"/QTLs_total_parsed.txt","r")
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
412 for line in eqtfile:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
413 i += 1
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
414 if i == 0:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
415 outfile.write(line.strip()+"\t"+"\t".join(head)+"\n")
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
416 else:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
417 outfile.write(line.strip()+"\t"+"\t".join(str(x) for x in eQTL_dict[i][5])+"\n")
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
418
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
419 eqtfile.close()
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
420 outfile.close()
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
421
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
422 #####################
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
423 # merge_QTLs.py
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
424 #####################
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
425
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
426 infile = open(tempdir+"/QTLs_total_parsed_LOD.txt","r")
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
427 outfile = open(tempdir+"/QTLs_total_parsed_LOD_merged.txt","w")
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
428
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
429 test = ""
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
430 for line in infile:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
431 l = line.strip().split("\t")
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
432 if l[0] == "trait_name":
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
433 keep = l
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
434 else:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
435 test = l
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
436 if keep[0] != test[0]: # if trait names are not the same ---> write keep
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
437 if keep[0] != "trait_name": # no not include header, only when integrate
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
438 outfile.write("\t".join(keep)+"\n")
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
439 keep = test
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
440 else:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
441 if keep[3] != test[3]: # if chrs are not the same --> write keep
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
442 outfile.write("\t".join(keep)+"\n")
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
443 keep = test
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
444 else:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
445 if not (((float(keep[11])<0) and (float(test[11])<0)) or ((float(keep[11])>0) and (float(test[11])>0))): # if additive signs are not the same --> write keep
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
446 outfile.write("\t".join(keep)+"\n")
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
447 keep = test
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
448 else:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
449 #print str((abs(float(test[5])*100-float(keep[5])*100)))
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
450 if not (abs(float(test[5])*100-float(keep[5])*100)<float(minimum_cM_between_QTL)): #if minimum cM between QTLs > 20 --> write keep
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
451 outfile.write("\t".join(keep)+"\n")
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
452 keep = test
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
453 else:
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
454 if (float(keep[7])<float(test[7])): #if LOD(keep) > LOD(test) --> new keep
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
455 keep = test
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
456
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
457 if l[0] != "trait_name":
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
458 outfile.write("\t".join(keep)+"\n")
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
459
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
460 infile.close()
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
461 outfile.close()
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
462
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
463
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
464 os.system("mv %s/QTLs_total_parsed_LOD_merged.txt %s" %(tempdir,options.output1))
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
465
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
466 if __name__=="__main__":
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
467 __main__()
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
468
fa0693cf076b Uploaded
nanettec
parents:
diff changeset
469