12216: Allow Content-Type header via CORS.
[arvados.git] / crunch_scripts / rtg-map
1 #!/usr/bin/env python
2 # Copyright (C) The Arvados Authors. All rights reserved.
3 #
4 # SPDX-License-Identifier: Apache-2.0
5
6 import arvados
7 import os
8 import re
9 import sys
10 import pyrtg
11
12 arvados.job_setup.one_task_per_input_stream(if_sequence=0, and_end_task=True)
13
14 this_job = arvados.current_job()
15 this_task = arvados.current_task()
16 in_dir = os.path.join(this_task.tmpdir, 'input')
17 arvados.util.run_command(['rm', '-rf', in_dir], stderr=sys.stderr)
18 in_dir = arvados.util.stream_extract(
19     stream = arvados.StreamReader(this_task['parameters']['input']),
20     path = in_dir,
21     decompress = False)
22 ref_dir = arvados.util.collection_extract(
23     collection = this_job['script_parameters']['reference'],
24     path = 'reference',
25     decompress = False)
26
27 out_dir = os.path.join(arvados.current_task().tmpdir, 'out')
28 arvados.util.run_command(['rm', '-rf', out_dir], stderr=sys.stderr)
29
30 # map reads
31 pyrtg.run_rtg('map', out_dir,
32               ['-i', in_dir,
33                '-t', ref_dir,
34                '-a', '2',
35                '-b', '1',
36                '--sam-rg', '@RG\\tID:NA\\tSM:NA\\tPL:ILLUMINA'])
37
38 # store output
39 out = arvados.CollectionWriter()
40 out.write_directory_tree(out_dir, this_task['parameters']['input'][0], 0)
41 this_task.set_output(out.finish())