comparison save_z_15/save_z7_15nodes.py @ 0:ae6f616e7637 draft

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