/clonifier

A web app for viewing plasmid maps & genomes, and simulating PCR and Gibson assembly

Primary LanguageTypeScriptGNU General Public License v3.0GPL-3.0

Clonifier

This is a web app that lets you view DNA sequences in Genbank (.gb) format and simulate PCR and DNA assembly methods such as Gibson Assembly.

Notes

All of the work is done by the 'backend' which is written in Rust and runs in a web worker. Because of this, every request to the Rust backend is asynchronous and returns a promise (see app/worker_comms for details). To keep things feeling snappy and avoiding excessive 'loading' indicators, the frontend makes use of React's upcoming Suspense feature. In short, views can "throw promises" during rendering, and React will delay rendering until the promise resolves.

Once WebAssembly threads become available, it should be possible to avoid most of this complexity!

The code in /rust in this repository is mostly just glue code, the actual work is done in gb-io, pcr and assembly.