Mercurial > repos > da-intersect > testdavid
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()