changeset 9:a54ec247ad52 draft

Uploaded
author bgruening
date Sun, 08 Feb 2015 04:00:13 -0500
parents 571090e22eb5
children 5f15a8bcca72
files data_manager/data_manager_diamond_database_builder.py
diffstat 1 files changed, 7 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- 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 )