annotate test_script_path.py @ 8:a303f3ffa153 draft default tip

Uploaded
author nanette
date Wed, 21 Aug 2013 07:05:54 -0400
parents b41fc3e15949
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
1 """
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
2 @summary: GO enrichment analysis (hotspots)
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
3 @author: nanette.coetzer@gmail.com
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
4 @version 5
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
5
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
6 """
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
7 import optparse, sys
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
8 import subprocess
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
9 import tempfile
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
10 import os, re
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
11
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
12 def stop_err( msg ):
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
13 sys.stderr.write( "%s\n" % msg )
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
14 sys.exit()
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
15
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
16 def __main__():
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
17 #Parse Command Line
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
18 parser = optparse.OptionParser()
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
19 parser.add_option("-i", "--input1", default=None, dest="input1",
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
20 help="genes")
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
21 parser.add_option("-o", "--output1", default=None, dest="output1",
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
22 help="star genes")
8
a303f3ffa153 Uploaded
nanette
parents: 7
diff changeset
23 parser.add_option("-p", "--output2", default=None, dest="output2",
a303f3ffa153 Uploaded
nanette
parents: 7
diff changeset
24 help="plot")
0
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
25 parser.add_option("-m", "--myflag", default=None, dest="myflag",
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
26 help="star genes")
8
a303f3ffa153 Uploaded
nanette
parents: 7
diff changeset
27
0
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
28 (options, args) = parser.parse_args()
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
29
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
30 try:
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
31 open(options.input1, "r").close()
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
32 except TypeError, e:
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
33 stop_err("You need to supply the Gene Universe file:\n" + str(e))
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
34 except IOError, e:
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
35 stop_err("Can not open the Gene Universe file:\n" + str(e))
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
36
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
37
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
38 ##########################################################
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
39
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
40 infile = open(options.input1,"r")
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
41 inlist = []
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
42 for line in infile:
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
43 inlist.append(line.strip())
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
44 infile.close()
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
45 outfile = open(options.output1,"w")
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
46 for l in inlist:
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
47 outfile.write("* "+str(l)+"\n")
7
b41fc3e15949 Uploaded
nanette
parents: 0
diff changeset
48 outfile.write("--- TEST ---" + "\n")
0
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
49 outfile.write(options.myflag + "\n")
7
b41fc3e15949 Uploaded
nanette
parents: 0
diff changeset
50 outfile.write("--- TEST ---" + "\n")
0
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
51 outfile.close()
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
52
8
a303f3ffa153 Uploaded
nanette
parents: 7
diff changeset
53 ##########################################################
a303f3ffa153 Uploaded
nanette
parents: 7
diff changeset
54
a303f3ffa153 Uploaded
nanette
parents: 7
diff changeset
55 # Create temp direcotry
a303f3ffa153 Uploaded
nanette
parents: 7
diff changeset
56 tempdir = tempfile.mkdtemp()
a303f3ffa153 Uploaded
nanette
parents: 7
diff changeset
57 fixdir = options.myflag
a303f3ffa153 Uploaded
nanette
parents: 7
diff changeset
58
a303f3ffa153 Uploaded
nanette
parents: 7
diff changeset
59 # copy INPUT file to the temp directory
a303f3ffa153 Uploaded
nanette
parents: 7
diff changeset
60 # create R script => save in temp directory
a303f3ffa153 Uploaded
nanette
parents: 7
diff changeset
61 # generate new header
a303f3ffa153 Uploaded
nanette
parents: 7
diff changeset
62 new_script = open(tempdir+"/new_script.r","w")
a303f3ffa153 Uploaded
nanette
parents: 7
diff changeset
63 header = "setwd(\"%s\")" %tempdir
a303f3ffa153 Uploaded
nanette
parents: 7
diff changeset
64 new_script.write(header+"\n")
a303f3ffa153 Uploaded
nanette
parents: 7
diff changeset
65
a303f3ffa153 Uploaded
nanette
parents: 7
diff changeset
66 # add script body
a303f3ffa153 Uploaded
nanette
parents: 7
diff changeset
67 script = open(fixdir+"/r_plot.r","r")
a303f3ffa153 Uploaded
nanette
parents: 7
diff changeset
68 for line in script:
a303f3ffa153 Uploaded
nanette
parents: 7
diff changeset
69 new_script.write(line.strip()+"\n")
a303f3ffa153 Uploaded
nanette
parents: 7
diff changeset
70 new_script.close()
a303f3ffa153 Uploaded
nanette
parents: 7
diff changeset
71
a303f3ffa153 Uploaded
nanette
parents: 7
diff changeset
72 # run R script from temp directory
a303f3ffa153 Uploaded
nanette
parents: 7
diff changeset
73 s = "R CMD BATCH %s/new_script.r out.txt" %tempdir
a303f3ffa153 Uploaded
nanette
parents: 7
diff changeset
74 subprocess.call(s, shell=True)
a303f3ffa153 Uploaded
nanette
parents: 7
diff changeset
75
a303f3ffa153 Uploaded
nanette
parents: 7
diff changeset
76 os.system("mv %s/plot.pdf %s" %(tempdir,options.output2))
a303f3ffa153 Uploaded
nanette
parents: 7
diff changeset
77
0
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
78 ##############################################
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
79
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
80 if __name__=="__main__":
bfe8aba3fd1c Uploaded
nanette
parents:
diff changeset
81 __main__()