Mercurial > repos > yufei-luo > s_mart
comparison commons/launcher/LaunchRefalign_old.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 import pyRepet.launcher.programLauncher | |
| 8 from commons.core.seq.BioseqDB import BioseqDB | |
| 9 from commons.tools.ChangeSequenceHeaders import ChangeSequenceHeaders | |
| 10 | |
| 11 | |
| 12 def help(): | |
| 13 print | |
| 14 print "usage: launchRefalign.py [ options ]" | |
| 15 print "options:" | |
| 16 print " -h: this help" | |
| 17 print " -i: name of the input file (refseq is first, format='fasta')" | |
| 18 print " -r: keep the reference sequence" | |
| 19 print " -o: name of the output file (default=inFileName+'.fa_aln')" | |
| 20 print " -v: verbose (default=0)" | |
| 21 print | |
| 22 | |
| 23 | |
| 24 def main(): | |
| 25 """ | |
| 26 Launch 'refalign' to build a master-slave multiple sequence alignment. | |
| 27 """ | |
| 28 inFileName = "" | |
| 29 keepRefseq = False | |
| 30 outFileName = "" | |
| 31 verbose = 0 | |
| 32 try: | |
| 33 opts,args=getopt.getopt(sys.argv[1:],"hi:ro:v:") | |
| 34 except getopt.GetoptError, err: | |
| 35 print str(err); help(); sys.exit(1) | |
| 36 for o,a in opts: | |
| 37 if o == "-h": | |
| 38 help() | |
| 39 sys.exit(0) | |
| 40 elif o == "-i": | |
| 41 inFileName = a | |
| 42 elif o == "-r": | |
| 43 keepRefseq = True | |
| 44 elif o == "-o": | |
| 45 outFileName = a | |
| 46 elif o == "-v": | |
| 47 verbose = int(a) | |
| 48 if inFileName == "": | |
| 49 print "ERROR: missing compulsory options" | |
| 50 help() | |
| 51 sys.exit(1) | |
| 52 | |
| 53 if verbose > 0: | |
| 54 print "START %s" % (sys.argv[0].split("/")[-1]) | |
| 55 sys.stdout.flush() | |
| 56 | |
| 57 if verbose > 0: | |
| 58 print "build a multiple alignment from '%s'..." % ( inFileName ) | |
| 59 sys.stdout.flush() | |
| 60 | |
| 61 if outFileName == "": | |
| 62 outFileName = "%s.fa_aln" % ( inFileName ) | |
| 63 | |
| 64 csh = ChangeSequenceHeaders() | |
| 65 csh.setInputFile( inFileName ) | |
| 66 csh.setFormat( "fasta" ) | |
| 67 csh.setStep( 1 ) | |
| 68 csh.setPrefix( "seq" ) | |
| 69 csh.setLinkFile( inFileName+".shortHlink" ) | |
| 70 csh.setOutputFile( inFileName+".shortH" ) | |
| 71 csh.setVerbosityLevel( verbose - 1 ) | |
| 72 csh.run() | |
| 73 | |
| 74 bsDB = BioseqDB( inFileName+".shortH" ) | |
| 75 bsDB.upCase() | |
| 76 bsDB.save( inFileName+".shortHtmp" ) | |
| 77 del bsDB | |
| 78 os.rename( inFileName+".shortHtmp", inFileName+".shortH" ) | |
| 79 | |
| 80 pL = pyRepet.launcher.programLauncher.programLauncher( inFileName+".shortH" ) | |
| 81 if keepRefseq: | |
| 82 pL.launchRefalign( outFileName=inFileName+".shortH.fa_aln", refseqName="seq1", verbose=verbose ) | |
| 83 else: | |
| 84 pL.launchRefalign( outFileName=inFileName+".shortH.fa_aln", verbose=verbose ) | |
| 85 | |
| 86 csh.setInputFile( inFileName+".shortH.fa_aln" ) | |
| 87 csh.setFormat( "fasta" ) | |
| 88 csh.setStep( 2 ) | |
| 89 csh.setLinkFile( inFileName+".shortHlink" ) | |
| 90 csh.setOutputFile( outFileName ) | |
| 91 csh.setVerbosityLevel( verbose - 1 ) | |
| 92 csh.run() | |
| 93 | |
| 94 for f in [ inFileName+".shortH", inFileName+".shortHlink", inFileName+".shortH.fa_aln" ]: | |
| 95 os.remove( f ) | |
| 96 | |
| 97 if verbose > 0: | |
| 98 print "END %s" % (sys.argv[0].split("/")[-1]) | |
| 99 sys.stdout.flush() | |
| 100 | |
| 101 return 0 | |
| 102 | |
| 103 | |
| 104 if __name__ == "__main__": | |
| 105 main() |
