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()
Example #2
0
        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"