comparison commons/launcher/launchPhyML.py @ 18:94ab73e8a190

Uploaded
author m-zytnicki
date Mon, 29 Apr 2013 03:20:15 -0400
parents
children
comparison
equal deleted inserted replaced
17:b0e8584489e6 18:94ab73e8a190
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()