def tabix_index(in_file, config, preset="vcf"): """Index a file using tabix. """ in_file = os.path.abspath(in_file) out_file = in_file + ".tbi" if not utils.file_exists(out_file): with file_transaction(out_file) as tx_out_file: tabix = tools.get_tabix_cmd(config) tx_in_file = os.path.splitext(tx_out_file)[0] os.symlink(in_file, tx_in_file) cmd = "{tabix} -p {preset} {tx_in_file}" do.run(cmd.format(**locals()), "tabix index %s" % os.path.basename(in_file)) return out_file
def tabix_index(in_file, config, preset=None): """Index a file using tabix. """ preset = _guess_preset(in_file) if preset is None else preset in_file = os.path.abspath(in_file) out_file = in_file + ".tbi" if not utils.file_exists(out_file) or not utils.file_uptodate(out_file, in_file): with file_transaction(config, out_file) as tx_out_file: tabix = tools.get_tabix_cmd(config) tx_in_file = os.path.splitext(tx_out_file)[0] utils.symlink_plus(in_file, tx_in_file) cmd = "{tabix} -f -p {preset} {tx_in_file}" do.run(cmd.format(**locals()), "tabix index %s" % os.path.basename(in_file)) return out_file
def tabix_index(in_file, config, preset=None, tabix_args=None): """Index a file using tabix. """ in_file = os.path.abspath(in_file) out_file = in_file + ".tbi" if not utils.file_exists(out_file) or not utils.file_uptodate(out_file, in_file): # Remove old index files to prevent linking into tx directory utils.remove_safe(out_file) with file_transaction(config, out_file) as tx_out_file: tabix = tools.get_tabix_cmd(config) tx_in_file = os.path.splitext(tx_out_file)[0] utils.symlink_plus(in_file, tx_in_file) if tabix_args: cmd = "{tabix} -f {tabix_args} {tx_in_file}" else: preset = _guess_preset(in_file) if preset is None else preset cmd = "{tabix} -f -p {preset} {tx_in_file}" do.run(cmd.format(**locals()), "tabix index %s" % os.path.basename(in_file)) return out_file