Skip to content

alvinsunyixiao/itp-websim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spresso Web - An Isotachphoresis Simulator

This project is a web based GPU-accelerated re-implementation of Spresso (Stanford Public Release Electrophoretic Sparation Solver). It adopts a pure-frontend implementation that removes the requirement for a backend compute server. This means that all computations run entirely on local browsers, providing a maximum degree of real-time user interactivity.

Implementation Notes

High dimensional array processing is done via TensorFlow JavaScript. A simulation step is defined as a TensorFlow computation graph here. The graph is serialized and saved as a TF SavedModel. The model is then loaded by the JavaScript frontend, and inference is done by executing the graph. The computation can be accelerated on GPU (via WebGL) per device supports, thanks to tfjs-backend-webgl. CPU acceleration (via WebAssembly) is unfortunately not yet supported. It is mainly awaiting upstream tfjs-backend-wasm supports for cumsum operator.

Project Structure

|-- public              # directory for all statically served files
|   |-- spresso_sim     # serialized simulation model
|   |-- spresso_ph      # serialized pH initialization model
|-- src                 # all JS / CSS source files
|   |-- App.js          # top level simulation UI interface
|   |-- Input.js        # encapsulation of commonly used input elements
|   |-- Spresso.js      # encapsulation of spresso simulation states management
|   |-- worker.js       # a seperate web worker that runs the simulation
|-- python              # all Python source files
|   |-- spresso_tf.py   # Tensorflow 2.x implementation of Spresso computation graph
|   |-- utils.py        # utility functions for post analysis
|-- config-overrides.js # react-app-rewired custom configurations
|-- package.json        # library dependancies

Serving

This project is bootstrapped with Create React App. Follow their instructions to setup and serve the project.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •