comparison data_manager/bwa_index_builder.py @ 1:cc5ae94acf01 draft default tip

planemo upload commit 2b9ef766ea9ee24964464363a9d41faeefa3d360-dirty
author devteam
date Wed, 26 Aug 2015 11:50:48 -0400
parents 367878cb3698
children
comparison
equal deleted inserted replaced
0:367878cb3698 1:cc5ae94acf01
5 import os 5 import os
6 import tempfile 6 import tempfile
7 import optparse 7 import optparse
8 import subprocess 8 import subprocess
9 9
10 from galaxy.util.json import from_json_string, to_json_string 10 from json import loads, dumps
11 11
12 12
13 CHUNK_SIZE = 2**20 13 CHUNK_SIZE = 2**20
14 ONE_GB = 2**30 14 ONE_GB = 2**30
15 15
44 44
45 args = [ 'bwa', 'index', '-a', index_algorithm ] 45 args = [ 'bwa', 'index', '-a', index_algorithm ]
46 if color_space: 46 if color_space:
47 args.append( '-c' ) 47 args.append( '-c' )
48 args.append( sym_linked_fasta_filename ) 48 args.append( sym_linked_fasta_filename )
49 tmp_stderr = tempfile.NamedTemporaryFile( prefix = "tmp-data-manager-bwa-index-builder-stderr" ) 49 proc = subprocess.Popen( args=args, shell=False, cwd=target_directory )
50 proc = subprocess.Popen( args=args, shell=False, cwd=target_directory, stderr=tmp_stderr.fileno() )
51 return_code = proc.wait() 50 return_code = proc.wait()
52 if return_code: 51 if return_code:
53 tmp_stderr.flush() 52 print >> sys.stderr, "Error building index."
54 tmp_stderr.seek(0)
55 print >> sys.stderr, "Error building index:"
56 while True:
57 chunk = tmp_stderr.read( CHUNK_SIZE )
58 if not chunk:
59 break
60 sys.stderr.write( chunk )
61 sys.exit( return_code ) 53 sys.exit( return_code )
62 tmp_stderr.close()
63 data_table_entry = dict( value=sequence_id, dbkey=dbkey, name=sequence_name, path=fasta_base_name ) 54 data_table_entry = dict( value=sequence_id, dbkey=dbkey, name=sequence_name, path=fasta_base_name )
64 _add_data_table_entry( data_manager_dict, data_table_name, data_table_entry ) 55 _add_data_table_entry( data_manager_dict, data_table_name, data_table_entry )
65 56
66 def _add_data_table_entry( data_manager_dict, data_table_name, data_table_entry ): 57 def _add_data_table_entry( data_manager_dict, data_table_name, data_table_entry ):
67 data_manager_dict['data_tables'] = data_manager_dict.get( 'data_tables', {} ) 58 data_manager_dict['data_tables'] = data_manager_dict.get( 'data_tables', {} )
79 parser.add_option( '-c', '--color_space', dest='color_space', action='store_true', default=False, help='color_space' ) 70 parser.add_option( '-c', '--color_space', dest='color_space', action='store_true', default=False, help='color_space' )
80 (options, args) = parser.parse_args() 71 (options, args) = parser.parse_args()
81 72
82 filename = args[0] 73 filename = args[0]
83 74
84 params = from_json_string( open( filename ).read() ) 75 params = loads( open( filename ).read() )
85 target_directory = params[ 'output_data' ][0]['extra_files_path'] 76 target_directory = params[ 'output_data' ][0]['extra_files_path']
86 os.mkdir( target_directory ) 77 os.mkdir( target_directory )
87 data_manager_dict = {} 78 data_manager_dict = {}
88 79
89 dbkey = options.fasta_dbkey 80 dbkey = options.fasta_dbkey
95 86
96 #build the index 87 #build the index
97 build_bwa_index( data_manager_dict, options.fasta_filename, params, target_directory, dbkey, sequence_id, sequence_name, data_table_name=options.data_table_name or DEFAULT_DATA_TABLE_NAME, color_space=options.color_space ) 88 build_bwa_index( data_manager_dict, options.fasta_filename, params, target_directory, dbkey, sequence_id, sequence_name, data_table_name=options.data_table_name or DEFAULT_DATA_TABLE_NAME, color_space=options.color_space )
98 89
99 #save info to json file 90 #save info to json file
100 open( filename, 'wb' ).write( to_json_string( data_manager_dict ) ) 91 open( filename, 'wb' ).write( dumps( data_manager_dict ) )
101 92
102 if __name__ == "__main__": main() 93 if __name__ == "__main__": main()