# HG changeset patch # User bgruening # Date 1423386013 18000 # Node ID a54ec247ad5279df8b73d157556860ba089544d9 # Parent 571090e22eb53e708ef9b6d016e2e33f169ff2c0 Uploaded diff -r 571090e22eb5 -r a54ec247ad52 data_manager/data_manager_diamond_database_builder.py --- a/data_manager/data_manager_diamond_database_builder.py Sun Feb 08 03:55:09 2015 -0500 +++ b/data_manager/data_manager_diamond_database_builder.py Sun Feb 08 04:00:13 2015 -0500 @@ -150,7 +150,10 @@ def _stream_fasta_to_file( fasta_stream, target_directory, database_id, database_name, params, close_stream=True ): fasta_base_filename = "%s.fa" % database_id fasta_filename = os.path.join( target_directory, fasta_base_filename ) - fasta_writer = open( fasta_base_filename, 'wb+' ) + + temp_fasta = tempfile.NamedTemporaryFile( delete=False, suffix=".fasta" ) + temp_fasta.close() + fasta_writer = open( temp_fasta.name, 'wb+' ) if isinstance( fasta_stream, list ) and len( fasta_stream ) == 1: fasta_stream = fasta_stream[0] @@ -181,7 +184,7 @@ fasta_writer.close() - args = [ 'diamond', 'makedb', '--in', fasta_base_filename, '--db', fasta_filename] + args = [ 'diamond', 'makedb', '--in', temp_fasta.name, '--db', fasta_filename] tmp_stderr = tempfile.NamedTemporaryFile( prefix = "tmp-data-manager-diamond-database-builder-stderr" ) proc = subprocess.Popen( args=args, shell=False, cwd=target_directory, stderr=tmp_stderr.fileno() ) @@ -189,7 +192,7 @@ if return_code: tmp_stderr.flush() tmp_stderr.seek(0) - print >> sys.stderr, "Error building diamond databse:" + print >> sys.stderr, "Error building diamond database:" while True: chunk = tmp_stderr.read( CHUNK_SIZE ) if not chunk: @@ -197,7 +200,7 @@ sys.stderr.write( chunk ) sys.exit( return_code ) tmp_stderr.close() - + os.remove( temp_fasta.name ) return dict( value=database_id, name=database_name, path="%s.dmnd" % fasta_base_filename )