Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Jakeelamb/genome-assembler-graph

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Genome Assembler Knowledge Graph

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, and Shasta are represented in the graph
  • see where auxiliary data like ONT ultra-long, Hi-C, and trio plug 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

Screenshots

Default landing view with hifiasm as the public entry point:

Default landing view

Hybrid branch focused on Verkko:

Verkko-focused view

Chromosome-scale endpoint view:

Chromosome-scale output view

Project Shape

  • data/genome_assembler_graph.json: curated graph data, ontology metadata, pipeline paths, paper links, structured pipeline components, and workflow-derived tool tool_profile records
  • schema/genome_assembler_graph.schema.json: JSON schema for the graph contract
  • index.html: single-page interface
  • styles.css: layout and visual system
  • app.js: graph rendering, selection state, and highlighting logic
  • vendor/force-graph/: vendored force-graph runtime (1.51.2) plus license text
  • scripts/validate_graph.py: structural and referential-integrity checks

Running It Locally

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 8000

Then 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_hifiasm
  • http://localhost:8000/?nodes=tool_hifiasm,tool_verkko
  • http://localhost:8000/#node=tool_hifiasm (legacy hash format)

Publishing On GitHub Pages

This repo is a plain static site, so GitHub Pages can publish it directly from the main branch root.

  1. Push the repo to GitHub and make the repository public.
  2. In GitHub, open Settings -> Pages.
  3. Under Build and deployment, choose Deploy from a branch.
  4. Set the branch to main and the folder to / (root).
  5. 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.py

Current Ontology

The graph is organized into these lanes:

  1. Assembly Goal
  2. Genome Property
  3. Primary Reads
  4. Support Data
  5. Algorithmic Primitive
  6. Assembly Concept
  7. Functional Module
  8. Tool
  9. Pipeline Stage
  10. Output
  11. Evaluation 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.

Pipeline Coverage

The first version includes curated paths for:

  • hifiasm on PacBio HiFi
  • hifiasm with Hi-C/trio support
  • Verkko on HiFi + ONT ultra-long
  • hifiasm-UL on HiFi + ONT ultra-long
  • hifiasm-ONT on ONT simplex reads
  • Flye on noisy long reads
  • LJA on HiFi reads
  • HiCanu on HiFi reads
  • Shasta on 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.

Next Good Steps

  • 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

Source Notes

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.

Exporting The Graph

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/csv

It writes:

  • nodes.csv
  • edges.csv
  • sources.csv
  • pipelines.csv
  • pipeline_nodes.csv
  • pipeline_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.

About

Interactive modular knowledge graph of modern genome assembly tools

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.