HashBrown assembles bacterial genomes from whatever reads you have: Nanopore long reads, Illumina (or
Ion Torrent) short reads, or both. With long reads it assembles with Flye or Shasta and polishes with
Medaka; add short reads and they polish the assembly further (Polypolish, then pyPOLCA --careful); with
short reads alone it assembles with SKESA or SPAdes. Every run ends with QC — QUAST metrics, mapping QC
(samtools flagstat), read depth (mosdepth), assembly graphs, before/after polishing dot plots — and a
per-sample HTML report (with a PDF twin) showing the effect of every stage on the reads and the
assembly, plus optional modules for consensus QV (Merqury), species confirmation (mash + ANI),
completeness (CheckM2, BUSCO), typing (MLST, MOB-suite), AMR and virulence genes (AMRFinderPlus,
abricate), annotation (Bakta or PGAP) and contamination (ConFindr, GenomeScope2, blob plot) — each one
auto-detected and skipped with a hint when not installed.
Like its namesake — shredded potatoes pressed into one piece — HashBrown presses reads into one assembly. It merges and supersedes BGA and BGA_short, which were split when Medaka's TensorFlow builds conflicted with the short-read tools; one conda environment now covers everything.
Quick start
git clone https://github.com/duceppemo/HashBrown
cd HashBrown
conda env create -f environment.yml && conda activate HashBrown
pip install .
# Long reads only
hashbrown -l nanopore_fastq/ -o results/
# Hybrid: the short reads polish the long-read assemblies
hashbrown -l nanopore_fastq/ -s illumina_fastq/ -o results/
# Short reads only
hashbrown -s illumina_fastq/ -o results/ -a skesa
Each long-read fastq file is one sample. Short-read files pair on _R1/_R2 in the name; a file without
either is a single-end sample. The sample name is everything before the first underscore, and in hybrid
mode the long- and short-read names must match. Rerunning the same command resumes where it stopped.
Documentation
Everything else is in the wiki, whose sources are maintained
in docs/wiki:
- Installation — conda, pip, troubleshooting
- Usage — inputs, options, resuming, performance
- Methods — what each step runs and why
- Outputs — folders and files, with example reports from a real E. coli K-12 hybrid run (HTML · PDF) and from a deliberately contaminated sample (HTML · PDF)
- Validation — benchmarking the polisher combinations against a gold standard
- FAQ — troubleshooting
- Development — tests, CI, releases
Citation
If HashBrown is useful in your work, please cite this repository (see CITATION.cff) and
the programs it runs: Flye or Shasta, Medaka, Porechop, Filtlong, SKESA or SPAdes, fastp, Polypolish,
pyPOLCA, BWA, minimap2, SAMtools, QUAST, mosdepth, MUMmer and Bandage
(references).
License
Metadata
Release files for hashbrown-assembly 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| hashbrown_assembly-1.1.0.tar.gz | 53.7 kB | With provenance | Details for hashbrown_assembly-1.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| hashbrown_assembly-1.1.0-py3-none-any.whl | Python 3 | none | any | Details for hashbrown_assembly-1.1.0-py3-none-any.whl |
Total release size: 102.6 kB
Release files / hashbrown_assembly-1.1.0.tar.gz
| Download URL | hashbrown_assembly-1.1.0.tar.gz |
|---|---|
| Size | 53.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5b4dbcba1d6ddbe12f17971c74d3c18aa0585296b5de085b72ba5295fd875c9d
|
|
BLAKE2b-256 checksum How to use checksums |
9cb4f2dac1f3b738d94aa8965aac36e879a0e3e34d980cf8908dbebd5bf80c0f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.
Transparency logRelease files / hashbrown_assembly-1.1.0-py3-none-any.whl
| Download URL | hashbrown_assembly-1.1.0-py3-none-any.whl |
|---|---|
| Size | 48.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
86238ba9045d86125c718209db60c405fd66007f7c0d8eef7d83fcd4bf79c142
|
|
BLAKE2b-256 checksum How to use checksums |
b23d66cddb4a8ca627a8648653d291700825c79779ceb028930f57bfbe412e4b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.
Transparency logSecurity for hashbrown-assembly 1.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for hashbrown_assembly-1.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.