Mercurial > repos > yufei-luo > s_mart
view commons/tools/HmmOutput2alignAndTransformCoordInNtAndFilterScores_script.py @ 18:94ab73e8a190
Uploaded
author | m-zytnicki |
---|---|
date | Mon, 29 Apr 2013 03:20:15 -0400 |
parents | |
children |
line wrap: on
line source
#!/usr/bin/env python import os import sys import getopt from commons.pyRepetUnit.align.hmmOutputParsing.HmmpfamOutput2align import HmmpfamOutput2align from commons.pyRepetUnit.align.hmmOutputParsing.HmmscanOutput2align import HmmscanOutput2align from commons.pyRepetUnit.align.transformAACoordIntoNtCoord.TransformAACoordIntoNtCoordInAlignFormat import TransformAACoordIntoNtCoordInAlignFormat from commons.core.utils.FileUtils import FileUtils #------------------------------------------------------------------------------ def help(): """ Give the command-line parameters. """ print "" print "usage: ",sys.argv[0],"[ options ]" print "options:" print " -h: this help" print " -i: name of the input file (format='hmmpfam Output' or 'hmmscan Output)" print " -o: name of the output file (default=inFileName+'.align')" print " -T: name of the consensus File (To launch the transformation of aa positions in nt positions and Filter positive score, default=no transformation)" print " -v: verbose (default=0/1/2)" print " -p: name of program (default=hmmpfam, but you can specify hmmscan too)" print " -c: clean" print "" #------------------------------------------------------------------------------ def main(): inFileName = "" outFileName = "" verbose = 0 clean = False consensusFileName = "" program = "hmmpfam" try: opts,args=getopt.getopt(sys.argv[1:],"hi:o:T:v:p:c") except getopt.GetoptError, err: print str(err) help() sys.exit(1) for o,a in opts: if o == "-h": help() sys.exit(0) elif o == "-i": inFileName = a elif o == "-o": outFileName = a elif o == "-T": consensusFileName = a elif o == "-v": verbose = int(a) elif o == "-p": program = a elif o == "-c": clean = True if inFileName == "": print "*** Error: missing compulsory options" help() sys.exit(1) if verbose > 0: print "beginning of %s" % (sys.argv[0].split("/")[-1]) sys.stdout.flush() if outFileName == "": outFileName = "%s.align" % ( inFileName ) if program == "hmmpfam": hmmpfamOutput2align = HmmpfamOutput2align( ) hmmpfamOutput2align.setInputFile( inFileName ) if consensusFileName == "": hmmpfamOutput2align.setOutputFile( outFileName ) else: hmmpfamOutput2align.setOutputFile( outFileName + ".tmp" ) hmmpfamOutput2align.run( ) else: if program == "hmmscan": hmmscanOutput2align = HmmscanOutput2align( ) hmmscanOutput2align.setInputFile( inFileName ) if consensusFileName == "": hmmscanOutput2align.setOutputFile( outFileName ) else: hmmscanOutput2align.setOutputFile( outFileName + ".tmp" ) hmmscanOutput2align.run( ) else: print "\nWarning: You must specify a valid program (-p option). Only hmmpfam or hmmscan are supported !\n" if consensusFileName != "": alignTransformation = TransformAACoordIntoNtCoordInAlignFormat() alignTransformation.setInFileName( outFileName + ".tmp" ) alignTransformation.setOutFileName( outFileName ) alignTransformation.setConsensusFileName( consensusFileName ) alignTransformation.setIsFiltered(True) alignTransformation.run() os.remove( outFileName + ".tmp" ) if clean == True: os.remove( inFileName ) if verbose > 0: if FileUtils.isRessourceExists( outFileName ) and not(FileUtils.isEmpty( outFileName )): print "%s finished successfully" % (sys.argv[0].split("/")[-1]) sys.stdout.flush() else: print "warning %s execution failed" % (sys.argv[0].split("/")[-1]) sys.stdout.flush() return 0 #------------------------------------------------------------------------------ if __name__ == '__main__': main()