Research platform·2026
Science that shows its work.
Researchers upload expression data and run real analyses without a command line. Before anything computes, gates check the study design; afterwards every result ships with Methods text and a signed receipt.
- Role
- Founder · product, design, code
- Timeline
- Mar 2026 → now
- Platform
- Web app · API
- Status
- Live · controlled early access
Founded and built solo by Salar Sayyad; scientific advisors consulted on methodology.
Genomarker·The brief
The problem
Analyses can now be produced faster than anyone can check them. Confounded designs, leaky ML splits and mis-scaled inputs still render beautiful plots — and a methods section nobody can reproduce.
What got built
- 01Bulk, microarray and single-cell differential expression
- 02Gates that refuse confounded or leaky designs
- 03Pathway enrichment and calibrated ML biomarker models
- 04Methods text plus a signed receipt, verifiable offline
Genomarker·Hard part 1 of 4
Right, not just plausible.
Obstacle
Statistics that look right can be quietly wrong — and checking a tool against its own output proves nothing.
Fix
Every method is tested against an independent oracle: R's DESeq2 and MAST golden files, a NumPy SVD, a hand-written hypergeometric. Porting limma's treat() from R source showed how much the common fold-change shortcut overstates.
Genomarker·Hard part 2 of 4
The analysis that says no.
Obstacle
Confounding and data leakage don't throw errors. They just produce confident, wrong results.
Fix
One composite gate takes the worst verdict across confounding, leakage, input scale, metadata alignment and drift from the pre-registered plan. Overrides must be signed, and are re-derived when the job runs.
Genomarker·Hard part 3 of 4
Receipts that verify offline.
Obstacle
Provenance has to be tamper-evident and shareable, without leaking anything about the samples behind it.
Fix
Receipts are canonicalised (RFC 8785), hashed and signed as a detached ES256 JWS, with an RO-Crate and PROV record. JavaScript and Python verifiers ship inside each package; CI runs them against a tampered receipt.
11 receipt-schema revisions, none breaking
Genomarker·Hard part 4 of 4
Same seed, different answer.
Obstacle
An XGBoost snapshot disagreed with itself across machines — 504 differences — and CPU architecture was the obvious suspect.
Fix
A seven-cell OS-by-library test matrix proved it was a macOS artifact instead. Receipt-facing numeric libraries are now pinned exactly, backed by written determinism contracts.
Genomarker·Blueprint
Every request is scoped to an organisation; every result leaves with a signature.
Stack
- Web
- Next.js 16 · React 19 · Tailwind v4 · Plotly
- Compute
- Python 3.12 · FastAPI · pydeseq2 · statsmodels · XGBoost · DuckDB
- Data
- Supabase Postgres · Row-level security · Storage
- Provenance
- RFC 8785 · ES256 JWS · RO-Crate · PROV-O
- Ops
- Vercel · Fly.io · Sentry · Resend
- Clients
- Browserresearchers
- Web + API
- Next.js BFFauth · org cookie
- FastAPIJWKS · API keys
- Compute
- Job queuePostgres SKIP LOCKED
- Science workersDESeq2 · limma · MAST
- State
- Supabase PostgresRLS on every table
- Storagematrices · reports
- Evidence
- Signed receiptES256 · RO-Crate
- Offline
- R / Bioconductorgolden files
- Test suite8 required checks
Genomarker·Receipts
The audit trail, abridged.
- 01 1,361 commits in 205 days
- 02 ~8,500 automated tests
- 03 87.67% compute test coverage
- 04 68 migrations, row-level security on every table
- 05 23 CI jobs, 8 of them required
- 06 3 reporting checklists built in (TRIPOD+AI, REMARK, STARD-AI)
Genomarker·Method
Rebuilt from the evidence up.
An earlier prototype was audited line by line — its numbers didn't hold up — so the platform was rebuilt from a written spec. Claude Code paired on most commits under GSD plans and ADRs; the v2 design was prototyped as 40 screens in Claude Design and ported faithfully. Nothing merges without eight required checks.
Agents
- Claude Code
- Claude Design
- 01spec
- 02plan
- 03build
- 04verify
- 05ship
Every change clears
- 8 required checks
- R golden files
- axe a11y
- Visual regression
- Cross-org RLS tests
Genomarker·End of file
End of file.
Capabilities on file
- Statistical genomics
- Cryptographic provenance
- Multi-tenant Postgres
- Numerical determinism
- Python / FastAPI
- Next.js
- Design systems
- Accessibility