INNER CODE UNIT · Python
_sample_items
antigenomics/vdjtools · python/vdjtools/cli/__init__.py:118
def _sample_items(samples, metadata, base_dir, sample_col, file_template) -> list:
"""[(sample_id, path), ...] — from a metadata table if given, else positional files.
Returns paths, not loaded frames: the caller streams them through
:func:`vdjtools.io.map_samples` so only ``O(workers)`` samples are ever resident.
"""
from vdjtools.io.batch import read_metadata
if metadata is not None:
md = read_metadata(metadata)
if sample_col not in md.columns:
_err(f"--sample-col {sample_col!r} not in metadata columns: {md.columns}")
base = base_dir or Path(metadata).parent
return [(str(r[sample_col]), base / file_template.format(sample=r[sample_col]))
for r in md.iter_rows(named=True)]
if not samples:
_err("give sample files as arguments, or -m/--metadata <table> (with --base-dir)")
return [(Path(s).name.split(".")[0], s) for s in samples]