Giter Club home page Giter Club logo

celltransport's Introduction

CellTransport

Main Screenshot

Metal simulation (GPU) to study intracellular transport by diffusion and active transport through microtubules. Particles diffuse freely through the cell and have a probability to attach and detach to microtubules when in close contact to them. When particles diffuse outside the cell membrane they are automatically reinjected into the centrosome (innermost part of the cell) to provide a easy contour condition for the study. Collisions can be enabled and disabled (even in real time) to study the effect of excluded volume.

Data in the histograms can be exported to a .txt for further analysis in Python or other languages. A separate Parameters.txt file is also exported with the histogram data reflecting the parameters being used for the simulation. A list of those parameters can be found below.

Parameters

Parameter Explanation
Number of biological cells Number of biological cells being simulated in parallel.
Particles per cell Number of particles (organelles) whose dynamics (diffusion, microtubule transport) are being simulated for each biological cell. These particles can interact with each other if they're inside the same biological cell and collisions are enabled.
Microtubules per cell Number of microtubules on each biological cell. Particles can attach and travel through these microtubules towards the cell membrane.
Cell radius Cell radius, in nanometers. Particles will be reinjected in the centrosome if found outside this radius.
Centrosome radius Centrosome radius, in nanometers. Particles are reinjected here.
Microtubule speed Speed at which particles travel through the microtubules, in nanometers per second.
Microtubule segment lenght Segment length of the microtubules. These segments are straight but the angle at which they join is randomly varied to build a realistic microtubule. Several segments are joined to form a full microtubule. Particles have a probability of attaching to every segment in their vicinity.
Microtubule local angle Maximum angle at which new microtubule segments can join the previous segment. In radians.
Microtubule max segments Maximum number of segments that can be joined to form a full microtubule. Segments are added to a forming microtubule upon generation until either the cell membrane is reached or the microtubule max segments count is reached.
Molecular motors Wether the simulation is using KINESIN_ONLY (outward traveling motors) or DYNEIN_ONLY (inward traveling motors).
Boundary conditions Wether the simulation is using REINJECT_INSIDE (particles further than the cell membrane are reinjected in the centrosome), REINJECT_OUTSIDE (particles in the centrosome are reinjected in the cell membrane or CONTAIN_INSIDE (particles are not reinjected anywhere and can't travel outside the cell membrane).
Collisions enabled Wether or not collisions (excluded volume) is enabled.
Attachment probability Factor of the probability of diffusive particles to attach to microtubules, in nm3s-1.
Detachment probability Factor of the probability of transported particles to detach from microtubules, in s-1).
Timestep Timestep used for the simulation.
Cells per dimension Number of spatial cells in which the space is subdivided on each dimension. Only used internally (non-biological meaning), but is related to the volume the particles have in collisions (there can only be one particle on each of these cells).
Cytoplasm viscosity Viscosity of the cytoplasm (expressed as x times the viscosity of pure water).

Compatibility

Works in macOS 11 (Big Sur) or later and iOS 13.6 or later. Requires a Metal-compatible graphic card.

celltransport's People

Contributors

androp0v avatar

Stargazers

 avatar Aiekick avatar Nick Arner avatar Dimitri Diakopoulos avatar  avatar Zheng_Da avatar  avatar

Watchers

James Cloos avatar  avatar

celltransport's Issues

Move simulation stuff from GameViewController to dedicated file

Rigth now the GameViewController file is absurdly large and hosts a lot of code not related to the UI or any other regular ViewController stuff. This complicates modifying the interface (i.e. for restructuring the app for iPhone displays, as the visualization + sidebar don't fit in a single screen).

Proposal: move everything into a singleton class SimulationState that handles the metal loop, simulation initialization and leave the GameViewController only with the things related to the UI. Once done, a better iPhone app could be easily implemented.

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.