Giter Site home page Giter Site logo

itp-websim's Introduction

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.

itp-websim's People

Contributors

alexandre-avaro avatar alvinsunyixiao avatar kaiyingjiang avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

songlinliu

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.