A small browser-based protein search and MSA tool. Database scoring runs with WebGPU, and local FASTA files stay on your machine.
Requires Node.js 20+ and a browser with WebGPU support.
npm ci
npm run dev
The local FASTA option works as-is. The Swiss-Prot options need database packs generated separately.
The GPU runs an ungapped BLOSUM62 search over the database. The best candidates are realigned on the CPU with Smith-Waterman-Gotoh, filtered, and exported as A3M, FASTA, or Stockholm.
This is a query-centered star alignment. It is not a replacement for MMseqs2 and does not calculate E-values.
npm run swissprot:fetch
npm run swissprot:pack
npm run swissprot:pack20k
To pack another FASTA file:
npm run db:shard -- proteins.fasta public/packs/my-database 20000
The generated directories go under public/packs. Set VITE_DATABASE_ROOT if they are hosted somewhere else. The file format is described in DATABASE_FORMAT.md.
Swiss-Prot data is available from UniProt under CC BY 4.0.
npm test
npm run build
Shader validation is optional and requires naga:
npm run validate:wgsl
Production deployments need HTTPS for WebGPU and persistent browser storage.
6 commits
TypeScript
86.9%
JavaScript
10.5%
WGSL
2.2%
A small browser-based protein search and MSA tool. Database scoring runs with WebGPU, and local FASTA files stay on your machine.
Requires Node.js 20+ and a browser with WebGPU support.
npm ci
npm run dev
The local FASTA option works as-is. The Swiss-Prot options need database packs generated separately.
The GPU runs an ungapped BLOSUM62 search over the database. The best candidates are realigned on the CPU with Smith-Waterman-Gotoh, filtered, and exported as A3M, FASTA, or Stockholm.
This is a query-centered star alignment. It is not a replacement for MMseqs2 and does not calculate E-values.
npm run swissprot:fetch
npm run swissprot:pack
npm run swissprot:pack20k
To pack another FASTA file:
npm run db:shard -- proteins.fasta public/packs/my-database 20000
The generated directories go under public/packs. Set VITE_DATABASE_ROOT if they are hosted somewhere else. The file format is described in DATABASE_FORMAT.md.
Swiss-Prot data is available from UniProt under CC BY 4.0.
npm test
npm run build
Shader validation is optional and requires naga:
npm run validate:wgsl
Production deployments need HTTPS for WebGPU and persistent browser storage.
6 commits
TypeScript
86.9%
JavaScript
10.5%
WGSL
2.2%