annotate mrf.py @ 2:0442b1c31ef2 draft default tip

Uploaded
author da-intersect
date Tue, 25 Jun 2013 20:45:01 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
1 #!/usr/bin/env python2.6
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
2 import subprocess
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
3 import sys
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
4 import re
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
5 import shutil
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
6 import os
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
7 from optparse import OptionParser
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
8
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
9 toolname = "MRF"
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
10
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
11
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
12 def main():
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
13
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
14 tool_path = os.path.dirname(os.path.realpath(sys.argv[0])) + "/" + toolname
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
15
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
16 usage = "usage: %prog [options] arg"
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
17 parser = OptionParser(usage)
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
18 parser.add_option("-f", "--file",
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
19 action="store", type="string", dest="configfile",
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
20 help="File containing the Values")
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
21
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
22 parser.add_option("-o", "--output",
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
23 action="store", type="string", dest="outputfile", nargs=4,
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
24 help="Output file where to store the result")
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
25
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
26 (options, args) = parser.parse_args()
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
27
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
28 if options.configfile is None or options.outputfile is None:
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
29 print "Missing arguments"
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
30 parser.print_help()
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
31 exit (1)
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
32
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
33 mrf(tool_path, options.configfile, options.outputfile)
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
34
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
35 def mrf(tool_path, configfile, outputfile):
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
36
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
37
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
38 f = open(configfile, 'r+b')
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
39
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
40 tool = subprocess.Popen([tool_path],stdin=f, stdout=subprocess.PIPE)
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
41 tool.wait()
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
42 f.close()
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
43
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
44 if tool.returncode != 0:
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
45 sys.stderr.write("There was a problem when running the $toolname tool")
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
46 output = tool.stdout.read()
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
47 print output
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
48 exit (1)
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
49
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
50 output = tool.stdout.read()
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
51 print output
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
52
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
53 # Determining the Output file generated by MRF
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
54 m1 = re.search("(.*Cluster: )*(\/.*\.pos$)", output, re.MULTILINE )
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
55 m1_1 = re.search("(\/.*\/dataset_[0-9]*.dat-dataset_[0-9]*\.dat-\w*)(\..*)", m1.group(2), re.MULTILINE)
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
56 prefix = m1_1.group(1)
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
57
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
58 m2 = re.search("(.*Cluster: )*(\/.*\.pos$)", output, re.MULTILINE )
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
59 file1 = m2.group(2)
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
60
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
61 file2 = prefix + '.mrf.txt'
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
62
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
63 m3 = re.search("(.*Morphology: )*(\/.*\.txt$)",output, re.MULTILINE )
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
64 file3 = m3.group(2)
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
65
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
66 file4 = prefix + '.wc_histogram.txt'
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
67
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
68 #Move the generated files to the Galaxy outputs and remove the tmp file
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
69
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
70 shutil.move(file1, outputfile[0])
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
71
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
72 lines = open(file2).readlines()
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
73 open(outputfile[1], 'w').writelines(lines[1:])
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
74 os.remove(file2)
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
75
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
76 shutil.move(file3, outputfile[2])
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
77 shutil.move(file4, outputfile[3])
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
78
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
79 if __name__ == "__main__":
0442b1c31ef2 Uploaded
da-intersect
parents:
diff changeset
80 main()