ag4349/msa-webgpu

Private, browser-native protein MSA search with WebGPU

1

stars

6

commits

TypeScript

primary language

Aug 21, 2026

updated

README

MSA WebGPU

A small browser-based protein search and MSA tool. Database scoring runs with WebGPU, and local FASTA files stay on your machine.

Running locally

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.

How it works

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.

Swiss-Prot data

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.

Checks

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.

License

MIT

Contributors

ag4349

6 commits

ag4349/msa-webgpu

Private, browser-native protein MSA search with WebGPU

1

stars

6

commits

TypeScript

primary language

Aug 21, 2026

updated

README

MSA WebGPU

A small browser-based protein search and MSA tool. Database scoring runs with WebGPU, and local FASTA files stay on your machine.

Running locally

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.

How it works

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.

Swiss-Prot data

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.

Checks

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.

License

MIT

Contributors

ag4349

6 commits

Languages

TypeScript

86.9%

JavaScript

10.5%

WGSL

2.2%