Part of #20 . Depends on #21 . Covers the remaining scanpy/anndata readers: read_hdf, read_csv, read_text.
Generic HDF5 (read_hdf)
scanpy's read_hdf(file, key) treats one HDF5 dataset as a dense X.
adata convert m.h5 -o m.h5ad --key /path/to/matrix \
[--obs-names-key /path] [--var-names-key /path] [--transpose] [--sparse]
With no --key, list the candidate 2-D datasets (reuse adata ls logic) and exit.
Delimited text (read_csv, read_text, .tsv/.txt/.tab, optionally gzipped)
Dense matrix, first row = column names, first column = row names.
Parse row blocks as a stream; never load the file.
--sparse writes CSR via sparsify from core/convert.py (recommended for count tables).
--delimiter, --first-column-names/--no-first-column-names, --transpose (many tables are genes × cells).
Needs a tiny CSV reader without pandas — share it with Convert: Parse Biosciences split-pipe outputs #30 .
Out of scope
Excel, .soft.gz, UMI-tools — listed in #31 .
Tests
Compare with scanpy.read_hdf / read_csv / read_text; perf guard on row-block parsing.
Part of #20. Depends on #21. Covers the remaining scanpy/anndata readers:
read_hdf,read_csv,read_text.Generic HDF5 (
read_hdf)scanpy's
read_hdf(file, key)treats one HDF5 dataset as a denseX.With no
--key, list the candidate 2-D datasets (reuseadata lslogic) and exit.Delimited text (
read_csv,read_text,.tsv/.txt/.tab, optionally gzipped)Dense matrix, first row = column names, first column = row names.
--sparsewrites CSR viasparsifyfromcore/convert.py(recommended for count tables).--delimiter,--first-column-names/--no-first-column-names,--transpose(many tables are genes × cells).Out of scope
Excel,
.soft.gz, UMI-tools — listed in #31.Tests
Compare with
scanpy.read_hdf/read_csv/read_text; perf guard on row-block parsing.