Releases: rpetit3/genome-dl
Release list
v1.0.0
1.0.0 - 2026-07-24
First stable release. genome-dl resolves and downloads genome assemblies from
NCBI, written as a drop-in replacement for ncbi-genome-download. Resolution and
metadata come from the NCBI Datasets v2 REST API (immune to the
assembly_summary.txt column breakage that retired ngd); sequence files are
downloaded directly from the NCBI FTP site, where they are already gzipped and
md5-verifiable.
Added
-
Three ways to select assemblies (exactly one required):
--accessionfor a
single accession,--accessionsfor a file of accessions (one per line), and
--speciesfor a taxon name. -
Taxon queries with
--section {refseq,genbank,all},--assembly-level
(complete,chromosome,scaffold,contigorall), and--limit(the first N
assemblies in NCBI relevance order, reference genome first;0for all). -
13 downloadable formats via
--formats(comma-separated, orall), each
written flat as{ACCESSION}.{ext}:Format Output extension fasta.fna.gzgenbank.gbff.gzwgs.wgsmaster.gbff.gzgff.gff.gzgtf.gtf.gzprotein.faa.gzgenpept.gpff.gzcds.cds.fna.gztranslated-cds.translated_cds.faa.gzrna.rna.fna.gzfeature-table.feature_table.txt.gzassembly-report.assembly_report.txtassembly-stats.assembly_stats.txt -
Version-pin policy. A versionless accession selects the current version; an
explicit outdated pin (e.g.GCF_x.1when.2is current) is refused by
default with a message naming the current version, and honored exactly with
--allow-outdated. Suppressed versions always error. -
Integrity checks. Every download is verified against the FTP
md5checksums.txtmanifest and itsContent-Length;--ignoreskips md5 but
still guards against truncated streams.--forcere-downloads existing files. -
Concurrent, resilient downloads.
--cpusparallel FTP workers with a
per-file retry loop (--max-attempts,--sleepbackoff). Transient errors
(5xx, rate-limits, connection drops) are retried; permanent errors (4xx) fail
fast. Partial successes are kept and reported. Ctrl-C cancels queued work and
lets in-flight files finish (press again to force-quit). -
Run outputs. A metadata TSV (columns adapt to the infraspecific fields
present in the run), a human-readable run summary, and a machine-readable JSON
report.--jsonemits the report to stdout for piping;--dry-runlists
targets without downloading. -
API key support via the
NCBI_API_KEYenvironment variable, which raises
the Datasets API rate limit from 5 to 10 requests/second. The key is never
written to output files or attached to FTP traffic. -
Ergonomics.
--outdir/--prefixfor output location and naming,
--progressfor a live progress display, and--silent/--verboselog
levels. Case-insensitive and de-duplicated--formats/--assembly-level. -
Exit-code contract for scripting:
0success,1validation / API /
download error,2not found / empty result / unrecognized taxon,3partial
download.
Requirements
- Python 3.11–3.13.