Run germline calling, handling populations.

    TODO:
      - We could better handle trio calling with ped inputs as octopus
        has special support.

def _run_germline(align_bams, items, ref_file, target, out_file):
    """Run germline calling, handling populations.

    TODO:
      - We could better handle trio calling with ped inputs as octopus
        has special support.
    """
    align_bams = " ".join(align_bams)
    cores = dd.get_num_cores(items[0])
    cmd = ("octopus --threads {cores} --reference {ref_file} --reads {align_bams} "
           "--regions-file {target} "
           "--working-directory {tmp_dir} "
           "-o {tx_out_file} --legacy")
    with file_transaction(items[0], out_file) as tx_out_file:
        tmp_dir = os.path.dirname(tx_out_file)
        do.run(cmd.format(**locals()), "Octopus germline calling")
        _produce_compatible_vcf(tx_out_file, items[0])
    return out_file