def run( self ): """ Run the program. """ self.start() lInitHeaders = FastaUtils.dbHeaders( self.getInputFile(), self.getVerbosityLevel()-1 ) csh = ChangeSequenceHeaders() csh.setInputFile( self.getInputFile() ) csh.setFormat( "fasta" ) csh.setStep( 1 ) csh.setPrefix( "seq" ) csh.setLinkFile( "%s.shortHlink" % ( self.getInputFile() ) ) csh.setOutputFile( "%s.shortH" % ( self.getInputFile() ) ) csh.setVerbosityLevel( self.getVerbosityLevel() - 1 ) csh.run() bsDB = BioseqDB( "%s.shortH" % ( self.getInputFile() ) ) bsDB.upCase() bsDB.save( "%s.shortHtmp" % ( self.getInputFile() ) ) del bsDB os.rename( "%s.shortHtmp" % ( self.getInputFile() ), "%s.shortH" % ( self.getInputFile() ) ) self.setProgramCommandLine() cmd = self.getProgramCommandLine() if self.getVerbosityLevel() > 0: print "LAUNCH: %s" % ( cmd ) sys.stdout.flush() exitStatus = os.system( cmd ) if exitStatus != 0: string = "ERROR: program '%s' returned exit status '%i'" % ( self.getProgramName(), exitStatus ) print string sys.exit(1) csh.setInputFile( "%s.shortH.fa_aln" % ( self.getInputFile() ) ) csh.setFormat( "fasta" ) csh.setStep( 2 ) csh.setLinkFile( "%s.shortHlink" % ( self.getInputFile() ) ) csh.setOutputFile( "%s.shortH.fa_aln.initH" % ( self.getInputFile() ) ) csh.setVerbosityLevel( self.getVerbosityLevel() - 1 ) csh.run() absDB = AlignedBioseqDB( "%s.shortH.fa_aln.initH" % ( self.getInputFile() ) ) outFileHandler = open( self.getOutputFile(), "w" ) for header in lInitHeaders: bs = absDB.fetch( header ) bs.upCase() bs.write( outFileHandler ) outFileHandler.close() os.remove( "%s.shortH.fa_aln.initH" % ( self.getInputFile() ) ) self.end()
print "prepare MSP file"; sys.stdout.flush() prg = os.environ["REPET_PATH"] + "/bin/align2recon.py" cmd = prg cmd += " -i %s" % ( alignFileName ) cmd += " -o %s_MSP_file" % ( projectName ) cmd += " -v %i" % ( verbose - 1 ) returnStatus = os.system( cmd ) if returnStatus != 0: msg = "ERROR: '%s' returned '%i'" % ( prg, returnStatus ) sys.stderr.write( "%s\n" % ( msg ) ) sys.exit(1) if verbose > 0: print "prepare seq file"; sys.stdout.flush() lSeqNames = FastaUtils.dbHeaders( faFileName, verbose - 1 ) lSeqNames.sort() seqListFile = open( projectName + "_seq_list", "w" ) seqListFile.write( str(len(lSeqNames)) + "\n" ) for seqName in lSeqNames: seqListFile.write( ">%s\n" % ( seqName ) ) seqListFile.close() if verbose > 0: print "Recon is running..."; sys.stdout.flush() prg = "recon.pl" cmd = prg cmd += " %s_seq_list" % ( projectName ) cmd += " %s_MSP_file" % ( projectName ) cmd += " 1"