def concatenate(out_file_name, all_in_file_names):
""" Concatenate a list of bam files into a final output file """
# Filter out empty BAM files -- these cause samtools cat to generate
# a BAM with a premature end block
in_file_names = [f for f in all_in_file_names if not bam_is_empty(f)]
if len(in_file_names) > 1:
args = ['samtools', 'cat', '-o', out_file_name]
args.extend(in_file_names)
subprocess.check_call(args)
elif len(in_file_names) == 0:
# If all the BAMs are empty, just copy 1 over
shutil.copy(all_in_file_names[0], out_file_name)
else:
shutil.copy(in_file_names[0], out_file_name)
评论列表
文章目录