annotate save_z_15/save_z7_15nodes.py @ 0:ae6f616e7637 draft

Uploaded
author nanettec
date Fri, 18 Mar 2016 05:49:55 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
1 """
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
2 @summary: Save partial z file
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
3 @version 7
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
4
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
5 """
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
6 # MAPPER --> save z file
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
7
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
8 # Input: qtlcart.inp
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
9 # qtlcart.map
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
10 # parameters.txt
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
11
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
12 # Output: z_partial.txt
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
13
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
14 import optparse, sys
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
15 import tempfile
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
16 import re
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
17
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
18 def stop_err( msg ):
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
19 sys.stderr.write( "%s\n" % msg )
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
20 sys.exit()
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
21
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
22 def __main__():
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
23 parser = optparse.OptionParser()
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
24 parser.add_option("-i", "--input1", default=None, dest="input1",
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
25 help="qtlcart.inp file")
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
26 parser.add_option("-j", "--input2", default=None, dest="input2",
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
27 help="qtlcart.map file")
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
28 parser.add_option("-k", "--input3", default=None, dest="input3",
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
29 help="parameters.txt file")
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
30
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
31 parser.add_option("-p", "--output1", default=None, dest="output1",
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
32 help="qtlcart_partial.z file")
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
33 (options, args) = parser.parse_args()
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
34
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
35 try:
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
36 open(options.input1, "r").close()
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
37 except TypeError, e:
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
38 stop_err("You need to supply the qtlcart.inp file:\n" + str(e))
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
39 except IOError, e:
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
40 stop_err("Can not open the qtlcart.inp file:\n" + str(e))
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
41
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
42 try:
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
43 open(options.input2, "r").close()
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
44 except TypeError, e:
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
45 stop_err("You need to supply the qtlcart.map file:\n" + str(e))
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
46 except IOError, e:
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
47 stop_err("Can not open the qtlcart.map file:\n" + str(e))
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
48
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
49 try:
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
50 open(options.input3, "r").close()
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
51 except TypeError, e:
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
52 stop_err("You need to supply the parameters.txt file:\n" + str(e))
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
53 except IOError, e:
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
54 stop_err("Can not open the parameters.txt file:\n" + str(e))
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
55
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
56 ######################################################################
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
57 # submit.py
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
58 ######################################################################
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
59
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
60 import subprocess
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
61 import os
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
62
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
63 # Create temp direcotry
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
64 tempdir = tempfile.mkdtemp()
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
65 #print tempdir
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
66
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
67 s = "cp %s %s/parameters.txt" %(options.input3, tempdir)
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
68 subprocess.call(s, shell=True)
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
69 paramters_file = open(tempdir+"/parameters.txt", "r")
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
70 parvalues = []
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
71 for line in paramters_file:
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
72 l = line.strip().split("\t")
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
73 if l[0] == "SRmodel":
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
74 SRmodel = l[1]
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
75 if l[0] == "Zmodel":
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
76 Zmodel = l[1]
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
77 if l[0] == "threshold":
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
78 threshold = l[1]
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
79 if l[0] == "walking_speed":
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
80 walking_speed = l[1]
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
81 if l[0] == "window_size":
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
82 window_size = l[1]
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
83 if l[0] == "minimum_cM_between_QTL":
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
84 minimum_cM_between_QTL = l[1]
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
85 paramters_file.close()
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
86
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
87 # copy INPUT file to the temp directory
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
88 s = "cp %s %s/qtlcart.inp" %(options.input1, tempdir)
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
89 subprocess.call(s, shell=True)
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
90 s = "cp %s %s/qtlcart.map" %(options.input2, tempdir)
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
91 subprocess.call(s, shell=True)
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
92
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
93 f=open(tempdir+"/qtlcart.inp", "r")
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
94 ln=f.readlines()
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
95 f.close()
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
96 count = 0
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
97
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
98 if ln[0] == "NA":
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
99 f1=open(tempdir+"/QTLs_total_parsed_LOD.txt", "w")
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
100 f1.write("")
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
101 f1.close()
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
102 os.system("mv %s/QTLs_total_parsed_LOD.txt %s" %(tempdir,options.output1))
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
103 #os.system("mv %s/qtlcart.rc %s" %(tempdir,options.output2))
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
104 else:
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
105 count += 1
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
106 if count == 1:
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
107 instruction = "/cluster1/bin/Rcross -i %s/qtlcart.inp -o %s/qtlcart.cro -A -V" %(tempdir, tempdir)
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
108 os.system(instruction)
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
109
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
110 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))
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
111 os.system(instruction)
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
112
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
113 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))
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
114 os.system(instruction)
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
115
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
116 #####################
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
117 # Save partial z file
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
118 #####################
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
119
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
120 zfile=open(tempdir+"/qtlcart_partial.z", "w")
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
121 f=open(tempdir+"/qtlcart.z", "r")
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
122 done = "no"
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
123 for l in f:
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
124 if (done != "yes") and (not l.startswith("-e")):
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
125 zfile.write(l.strip()+"\n")
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
126 else:
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
127 done = "yes"
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
128 f.close()
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
129 zfile.write("-e\n")
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
130 zfile.close()
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
131
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
132 os.system("mv %s/qtlcart_partial.z %s" %(tempdir,options.output1))
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
133
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
134 if __name__=="__main__":
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
135 __main__()
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
136
ae6f616e7637 Uploaded
nanettec
parents:
diff changeset
137