changeset 2:0442b1c31ef2 draft default tip

Uploaded
author da-intersect
date Tue, 25 Jun 2013 20:45:01 -0400
parents 1321822ee8bc
children
files mrf.py
diffstat 1 files changed, 80 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mrf.py	Tue Jun 25 20:45:01 2013 -0400
@@ -0,0 +1,80 @@
+#!/usr/bin/env python2.6
+import subprocess
+import sys
+import re
+import shutil
+import os
+from optparse import OptionParser
+
+toolname = "MRF"
+
+
+def main():
+
+	tool_path = os.path.dirname(os.path.realpath(sys.argv[0])) + "/" + toolname
+
+	usage = "usage: %prog [options] arg"
+	parser = OptionParser(usage)
+	parser.add_option("-f", "--file",
+        	action="store", type="string", dest="configfile",
+		help="File containing the Values")
+	
+	parser.add_option("-o", "--output",
+		action="store", type="string", dest="outputfile", nargs=4, 
+		help="Output file where to store the result")
+
+	(options, args) = parser.parse_args()
+
+	if options.configfile is None or options.outputfile is None:
+		print "Missing arguments"
+		parser.print_help()
+		exit (1)
+
+	mrf(tool_path, options.configfile, options.outputfile)
+	
+def mrf(tool_path, configfile, outputfile):
+
+	
+	f = open(configfile, 'r+b')
+
+	tool = subprocess.Popen([tool_path],stdin=f, stdout=subprocess.PIPE)
+	tool.wait()
+	f.close()
+
+	if tool.returncode != 0:
+		sys.stderr.write("There was a problem when running the $toolname tool")
+		output = tool.stdout.read()
+		print output
+		exit (1)
+
+	output = tool.stdout.read()
+	print output
+
+	# Determining the Output file generated by MRF
+	m1 = re.search("(.*Cluster: )*(\/.*\.pos$)", output, re.MULTILINE )
+	m1_1 = re.search("(\/.*\/dataset_[0-9]*.dat-dataset_[0-9]*\.dat-\w*)(\..*)", m1.group(2), re.MULTILINE)
+	prefix = m1_1.group(1)
+
+	m2 = re.search("(.*Cluster: )*(\/.*\.pos$)", output, re.MULTILINE )
+	file1 = m2.group(2)
+
+	file2 = prefix + '.mrf.txt'
+
+	m3 = re.search("(.*Morphology: )*(\/.*\.txt$)",output, re.MULTILINE )
+	file3 = m3.group(2)
+
+	file4 = prefix + '.wc_histogram.txt'
+
+	#Move the generated files to the Galaxy outputs and remove the tmp file	
+
+	shutil.move(file1, outputfile[0])
+
+	lines = open(file2).readlines()
+	open(outputfile[1], 'w').writelines(lines[1:])
+	os.remove(file2)
+
+	shutil.move(file3, outputfile[2])
+	shutil.move(file4, outputfile[3])
+
+if __name__ == "__main__":
+    main()