Mercurial > repos > yufei-luo > s_mart
comparison commons/launcher/launchPhyML.py @ 31:0ab839023fe4
Uploaded
| author | m-zytnicki |
|---|---|
| date | Tue, 30 Apr 2013 14:33:21 -0400 |
| parents | 94ab73e8a190 |
| children |
comparison
equal
deleted
inserted
replaced
| 30:5677346472b5 | 31:0ab839023fe4 |
|---|---|
| 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() |
