| 18 | 1 #!/usr/bin/env python | 
|  | 2 | 
|  | 3 import os | 
|  | 4 import sys | 
|  | 5 import getopt | 
|  | 6 | 
|  | 7 from pyRepet.launcher.programLauncher import programLauncher | 
|  | 8 from commons.tools.ChangeSequenceHeaders import ChangeSequenceHeaders | 
|  | 9 | 
|  | 10 | 
|  | 11 def help(): | 
|  | 12     print | 
|  | 13     print "usage: ",sys.argv[0],"[ options ]" | 
|  | 14     print "options:" | 
|  | 15     print "     -h: this help" | 
|  | 16     print "     -i: name of the input file (aligned fasta)" | 
|  | 17     print "     -c: clean" | 
|  | 18     print "     -v: verbose (default=0)" | 
|  | 19     print | 
|  | 20 | 
|  | 21 | 
|  | 22 def main(): | 
|  | 23 | 
|  | 24     inFileName = "" | 
|  | 25     clean = False | 
|  | 26     verbose = 0 | 
|  | 27     try: | 
|  | 28         opts,args=getopt.getopt(sys.argv[1:],"hi:cv:") | 
|  | 29     except getopt.GetoptError, err: | 
|  | 30         print str(err) | 
|  | 31         help(); sys.exit(1) | 
|  | 32     for o,a in opts: | 
|  | 33         if o == "-h": | 
|  | 34             help(); sys.exit(0) | 
|  | 35         elif o == "-i": | 
|  | 36             inFileName = a | 
|  | 37         elif o == "-c": | 
|  | 38             clean = True | 
|  | 39         elif o == "-v": | 
|  | 40             verbose = int(a) | 
|  | 41     if inFileName == "": | 
|  | 42         print "ERROR: missing compulsory options" | 
|  | 43         help(); sys.exit(1) | 
|  | 44 | 
|  | 45     if verbose > 0: | 
|  | 46         print "START %s" % (sys.argv[0].split("/")[-1]) | 
|  | 47         sys.stdout.flush() | 
|  | 48 | 
|  | 49     csh = ChangeSequenceHeaders() | 
|  | 50     csh.setInputFile( inFileName ) | 
|  | 51     csh.setFormat( "fasta" ) | 
|  | 52     csh.setStep( 1 ) | 
|  | 53     csh.setPrefix( "seq" ) | 
|  | 54     csh.setLinkFile( inFileName+".shortHlink" ) | 
|  | 55     csh.setOutputFile( inFileName+".shortH" ) | 
|  | 56     csh.run() | 
|  | 57 | 
|  | 58     pL = programLauncher( inFileName+".shortH" ) | 
|  | 59 | 
|  | 60     pL.launchSreformat( outFormat="phylip", outFileName=inFileName+".shortH.phylip", verbose=verbose ) | 
|  | 61 | 
|  | 62     pL.reset( inFileName+".shortH.phylip" ) | 
|  | 63 | 
|  | 64     pL.launchPhyML( verbose=verbose ) | 
|  | 65 | 
|  | 66     csh.setInputFile( inFileName+".shortH.phylip_phyml_tree.txt" ) | 
|  | 67     csh.setFormat( "newick" ) | 
|  | 68     csh.setStep( 2 ) | 
|  | 69     csh.setLinkFile( inFileName+".shortHlink" ) | 
|  | 70     csh.setOutputFile( inFileName+"_phyml.newick" ) | 
|  | 71     csh.run() | 
|  | 72 | 
|  | 73     if clean: | 
|  | 74         for f in [ inFileName+".shortH", inFileName+".shortHlink", inFileName+".shortH.phylip", | 
|  | 75                    inFileName+".shortH.phylip_phyml_lk.txt", inFileName+".shortH.phylip_phyml_tree.txt" ]: | 
|  | 76             os.remove( f ) | 
|  | 77         os.system( "mv %s.shortH.phylip_phyml_stat.txt %s_phyml.txt" % ( inFileName, inFileName ) ) | 
|  | 78 | 
|  | 79     if verbose > 0: | 
|  | 80         print "END %s" % (sys.argv[0].split("/")[-1]) | 
|  | 81         sys.stdout.flush() | 
|  | 82 | 
|  | 83     return 0 | 
|  | 84 | 
|  | 85 | 
|  | 86 if __name__ == "__main__": | 
|  | 87     main() |