Merge branch '8784-dir-listings'
[arvados.git] / crunch_scripts / rtg-snp
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 this_job = arvados.current_job()
13 this_task = arvados.current_task()
14 ref_dir = arvados.util.collection_extract(
15     collection = this_job['script_parameters']['reference'],
16     path = 'reference',
17     decompress = False)
18 input_dir = arvados.util.collection_extract(
19     collection = this_job['script_parameters']['input'],
20     path = 'input')
21 bam_files = map(lambda f: os.path.join(input_dir, f),
22                 filter(lambda f: re.search(r'^(.*/)?alignments.bam$', f),
23                        arvados.util.listdir_recursive(input_dir)))
24 out_dir = os.path.join(arvados.current_task().tmpdir, 'out')
25 arvados.util.run_command(['rm', '-rf', out_dir], stderr=sys.stderr)
26
27 # call sequence variants
28 pyrtg.run_rtg('snp', out_dir,
29               ['-t', ref_dir] + bam_files)
30
31 # store output
32 out = arvados.CollectionWriter()
33 out.write_directory_tree(out_dir, max_manifest_depth=0)
34 this_task.set_output(out.finish())