Interactive reference map of genome assembly workflows, with a shared assembly backbone plus distinct short-read and long-read technology branches.
Live site: https://jakeelamb.github.io/genome-assembler-graph/
Best public share link: https://jakeelamb.github.io/genome-assembler-graph/?view=backbone&scope=assembly_universe
This repository ships as a lightweight static web app plus a curated graph dataset so you can:
- inspect the nodes and recorded workflow paths attached to an assembler, support-data type, stage, or output
- traverse recursive prerequisites and dependents through a clean dependency DAG derived from the curated relation set
- inspect how curated workflows such as
hifiasm,Verkko,Flye,LJA,HiCanu, andShastaare represented in the graph - see where auxiliary data like
ONT ultra-long,Hi-C, andtrioplug into specific modules and finishing paths - inspect typed workflow components such as inputs, support data, algorithms, modules, tools, stages, outputs, and metrics
- inspect normalized tool records derived from linked workflows, including grouped inputs, support data, algorithms, modules, outputs, and metrics
- share a node or multi-node selection with a deep link
- extend the graph into Neo4j, Memgraph, ArangoDB, or a backend API later
Default landing view with hifiasm as the public entry point:
Hybrid branch focused on Verkko:
Chromosome-scale endpoint view:
data/genome_assembler_graph.json: curated graph data, ontology metadata, pipeline paths, paper links, structured pipelinecomponents, and workflow-derived tooltool_profilerecordsschema/genome_assembler_graph.schema.json: JSON schema for the graph contractindex.html: single-page interfacestyles.css: layout and visual systemapp.js: graph rendering, selection state, and highlighting logicvendor/force-graph/: vendoredforce-graphruntime (1.51.2) plus license textscripts/validate_graph.py: structural and referential-integrity checks
The app is dependency-free, but it needs to be served over HTTP so the browser can load data/genome_assembler_graph.json:
cd /home/jake/Projects/genome-assembler-graph
python3 -m http.server 8000Then open http://localhost:8000.
The interactive graph runtime is vendored locally, so the site no longer depends on a third-party CDN at runtime.
Deep links are supported:
http://localhost:8000/?node=tool_hifiasmhttp://localhost:8000/?nodes=tool_hifiasm,tool_verkkohttp://localhost:8000/#node=tool_hifiasm(legacy hash format)
This repo is a plain static site, so GitHub Pages can publish it directly from the main branch root.
- Push the repo to GitHub and make the repository public.
- In GitHub, open
Settings->Pages. - Under
Build and deployment, chooseDeploy from a branch. - Set the branch to
mainand the folder to/ (root). - Save the settings.
For the current remote, the published site URL will be:
https://jakeelamb.github.io/genome-assembler-graph/
Before changing the dataset, validate it:
cd /home/jake/Projects/genome-assembler-graph
python3 scripts/validate_graph.pyThe graph is organized into these lanes:
Assembly GoalGenome PropertyPrimary ReadsSupport DataAlgorithmic PrimitiveAssembly ConceptFunctional ModuleToolPipeline StageOutputEvaluation Metric
The current dataset intentionally excludes organism and case-study nodes. The priority is interpretability:
- the graph is small enough to read
- recursive prerequisite and dependent traversal runs on a dependency-only DAG rather than every stored relation
- every highlighted path corresponds to a coherent algorithm/module story
- tools are broken into modular pieces rather than treated as black boxes
- nodes, pipelines, and pipeline-defining edges carry source citations
- the graph can be validated before export or UI work
Contextual relations such as pairing, suitability, and validation remain in the dataset, but they do not participate in recursive prerequisite traversal.
The first version includes curated paths for:
hifiasmon PacBio HiFihifiasmwith Hi-C/trio supportVerkkoon HiFi + ONT ultra-longhifiasm-ULon HiFi + ONT ultra-longhifiasm-ONTon ONT simplex readsFlyeon noisy long readsLJAon HiFi readsHiCanuon HiFi readsShastaon ONT reads
It now focuses on algorithmic primitives and functional modules such as haplotype partitioning, ultra-long bridging, repeat disambiguation, variable-k refinement, marker compression, homopolymer compression, ONT-specific graph cleaning, seeding/indexing, graph cleanup, consensus refinement, and scaffolding.
- add ploidy classes and chemistry/basecaller versions as first-class nodes when they materially change workflow choice
- add timeline mode to show method evolution
- add richer Neo4j labels and typed module families for overlap, graph, and finishing subroutines
- add full edge coverage for source provenance beyond the current pipeline-defining relations
- add comparison mode for two pipelines at once
The current dataset uses selected primary papers plus a recent review as the seed knowledge base. Those URLs are embedded in the graph data and surfaced in the UI.
The repository ships with a small export script for graph-database ingestion:
cd /home/jake/Projects/genome-assembler-graph
python3 scripts/export_graph_csv.py --out export/csvIt writes:
nodes.csvedges.csvsources.csvpipelines.csvpipeline_nodes.csvpipeline_edges.csv
Those tables are generic on purpose so they can be loaded into Neo4j, DuckDB, SQLite, or a notebook without rewriting the ontology first.


