Mercurial > repos > xuebing > sharplabtool
diff tools/hyphy/hyphy_dnds_wrapper.py @ 0:9071e359b9a3
Uploaded
author | xuebing |
---|---|
date | Fri, 09 Mar 2012 19:37:19 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/hyphy/hyphy_dnds_wrapper.py Fri Mar 09 19:37:19 2012 -0500 @@ -0,0 +1,55 @@ +#Guru +#takes fasta alignments, a distance metric and builds neighbor joining trees +import os, sys +from galaxy import eggs +from galaxy.tools.util import hyphy_util + +#Retrieve hyphy path, this will need to be the same across the cluster +tool_data = sys.argv.pop() +HYPHY_PATH = os.path.join( tool_data, "HYPHY" ) +HYPHY_EXECUTABLE = os.path.join( HYPHY_PATH, "HYPHY" ) + +#Read command line arguments +input_filename = os.path.abspath(sys.argv[1].strip()) +output_filename = os.path.abspath(sys.argv[2].strip()) +tree_contents = sys.argv[3].strip() +nuc_model = sys.argv[4].strip() +analysis = sys.argv[5].strip() + +if tree_contents == "": + print >> sys.stderr, "Please specify a valid tree definition." + sys.exit() + +tree_filename = hyphy_util.get_filled_temp_filename(tree_contents) + +if analysis == "local": + fitter_filename = hyphy_util.get_filled_temp_filename(hyphy_util.SimpleLocalFitter) +else: + fitter_filename = hyphy_util.get_filled_temp_filename(hyphy_util.SimpleGlobalFitter) + +tabwriter_filename = hyphy_util.get_filled_temp_filename(hyphy_util.TabWriter) +FastaReader_filename = hyphy_util.get_filled_temp_filename(hyphy_util.FastaReader) +#setup Config file +config_filename = hyphy_util.get_dnds_config_filename(fitter_filename, tabwriter_filename, "Universal", tree_filename, input_filename, nuc_model, output_filename, FastaReader_filename) + +#Run Hyphy +hyphy_cmd = "%s BASEPATH=%s USEPATH=/dev/null %s" % (HYPHY_EXECUTABLE, HYPHY_PATH, config_filename) +hyphy = os.popen(hyphy_cmd, 'r') +#print hyphy.read() +hyphy.close() + +#remove temporary files +os.unlink(fitter_filename) +os.unlink(tabwriter_filename) +os.unlink(tree_filename) +os.unlink(FastaReader_filename) +os.unlink(config_filename) + +if nuc_model == "000000": + model = "F81" +elif nuc_model == "010010": + model = "HKY85" +else: + model = "REV" + +print "Analysis: %s; Model: %s; Tree: %s" %(analysis, model, tree_contents)