Skip to content

feat: gene page — search a gene, see its eQTLs across tissues#21

Merged
boxiangliu merged 1 commit into
mainfrom
feat/gene-page
Jul 6, 2026
Merged

feat: gene page — search a gene, see its eQTLs across tissues#21
boxiangliu merged 1 commit into
mainfrom
feat/gene-page

Conversation

@boxiangliu

Copy link
Copy Markdown
Contributor

What

The first real user-facing feature (issue #5): search a gene symbol or Ensembl id and see its eQTLs across tissues.

Why

Turns the skeleton + data layer into a working portal slice. Built against the QtlRepository interface, so routes are tested with a fake and run on the real DB unchanged.

How it was tested

ruff, ruff format, mypy --strict, pytest green; 100% coverage. Routes tested via an injected fake repo. Verified end-to-end against the live DB (read-only): resolve_gene('TP53') → gene 141510 → real GTEx eQTLs across tissues.

Notes / follow-ups

Checklist

  • CI green; 100% coverage; no test weakening
  • No secrets committed (DB creds only via env at runtime)
  • Feature branch + PR

Closes #5.

Closes #5. Advances #4 (search) and #9 (name resolution).

- repository.py: Gene + ensembl_number() (ENSG -> integer shard key) + resolve_gene()
  on the interface, fake, and real repos (queries gencode_v26_hg38); eQTL fan-out now
  reuses one DB connection.
- web.py: create_app() takes a repository (DI); GET /search parses the query and
  routes gene symbols/Ensembl ids to GET /gene/{name}; the gene page joins tissue names
  and renders the eQTL table.
- templates: search box on the landing page; gene.html; not_found.html.
- Verified end-to-end against the live DB (read-only): "TP53" -> gene 141510 -> real
  GTEx eQTLs across tissues. beta direction is shown-without-interpretation per #18.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@boxiangliu boxiangliu merged commit 1d7ece4 into main Jul 6, 2026
3 checks passed
@boxiangliu boxiangliu deleted the feat/gene-page branch July 6, 2026 10:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Gene page: sortable table of significant eQTLs across tissues

1 participant