v0.0.0.9000 (dev)
Initial development release. tidydragen is a nemo child package that parses and tidies outputs from Illumina DRAGEN pipelines into wide-format tidy tibbles ready for a data warehouse, writing to parquet, TSV, CSV, RDS, or a database. The following pipelines are supported for starters: DNA tumor-normal (somatic), DNA germline-only, RNA tumor-only, and ctTSO500 (the DRAGEN TSO500 ctDNA app layer).
Tools
Six domain tools, each with its own inst/config/tools/<tool>/schema.yaml, all inheriting an intermediate DragenTool base (itself inherit = nemo::Tool) and orchestrated by the Dragen workflow class (exported DRAGEN_TOOLS), which tolerates absent files so each pipeline can expose a different subset.
-
DragenMap: mapping/time metrics, fragment-length histogram, and the cttso trimmer / UMI / GC-bias metrics. -
DragenFqc: the 8 flat per-section FastQC tables. -
DragenCov: coverage metrics/bins/cumulative, contig mean, fine histogram, and cov-report-bed tables across every region (wgs/tmb/exon/target_bed/qc-coverage-region-*) and phenotype. -
DragenVar: variant/SV/CNV/ploidy/TMB/HRD/gVCF metrics plus microsatellite (JSON), native ploidy-VCF parse, and contamination (JSON). -
DragenRna: fusion and quant metrics. -
DragenTso: the ctTSO app-layer (pr3).
The DRAGEN metrics parser
Most *_metrics.csv files share a headerless section,rg,variable,count[,pct] shape. DragenTool registers a dragen-metrics ftype: a plain metrics table is parsed and pivoted wide (one column per mapped metric plus a paired <metric>_pct) with no per-table code; only tables needing a custom split or a region/chrom normalise hook declare explicit tidy_<table>() one-liners. Fail-loud policies (on_unmapped, on_coerce_fail, on_unexpected_col) catch schema drift instead of silently dropping data.
ctTSO app-layer support
DragenTso parses the TSO500 ctDNA outputs beyond the shared DRAGEN metrics: CombinedVariantOutput small variants, Fusions, TMB trace/msaf, exon/gene coverage, and a 6-way fan-out of the SampleAnalysisResults.json.
Test data
Test fixtures rebuilt from real DRAGEN pipeline outputs (trimmed per file), with real sample IDs scrubbed to sampleA/sampleB, and tracked with DVC on a Cloudflare R2 remote. The default remote is public-read, so a fresh clone or CI run fetches fixtures with dvc pull and no credentials. The @testexamples assertions were updated to the real-data values; the roxytest suite passes.
Infrastructure
- CLI, conda recipe, and multi-arch (amd64 + arm64) Docker image (pr6).
- GitHub Actions for version bumping and deploy, refactored to the reusable
tidywf/actionsworkflows and tag-triggered (pr4, pr5). - Vignettes: installation, quickstart, structure, schema table, output naming, PostgreSQL, CI/CD, and UML.
