justgos / spatial-cell

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Spatial cell

Molecule-level simulation of a biological cell

Simulator - spatial_cell_sim

(a Visual Studio 2019 project) Runs the simulation and stores the frames in reduces form in results/frames.dat.

Simulation parameters can be configured via config.json.
The simulated content, though - molecules and stuff - need to be configured via code in src/setup/setup.cuh.

Development

Dependencies

Use vcpkg to install dependencies (it's excepted to be located in C:\_code\vcpkg - see the project's include directories for CUDA)

vcpkg install jsoncpp:x64-windows

Radix sort fix

The fix for "uses too much shared data" is to change
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\include\cub\device\dispatch\dispatch_radix_sort.cuh

and set the Policy200 and the default policy on line 805: typedef Policy200 MaxPolicy; (and do a clean rebuild of the project)

Renderer - spatial_cell_vis

(a Unity project)

Lazily reads the simulation results from spatial_cell_sim/results/frames.dat.

Hotkeys

Space - play/pause the simulation
Left/right arrows - step 1 (+Shift - 5) frame backward/forward
0 - 8 - toggle rendering of a specific particle type (0 - lipids, 1 - dummy particles)
x - toggle between billboard and 3D model rendering of particles
m - toggle visibility of metabolic particles (a.k.a. green fog)

Data-based configurator - universe-config

(a collection of Jupyter notebooks)

chemistry-config.ipynb - messing around with PathwayCommons data and generating a few generic particle types in the end
complexification-config.ipynb - conversion of PDBe molecular complexes into a bunch of connected particles (with some state-machine logic for the ribosome)

About


Languages

Language:Jupyter Notebook 79.0%Language:C# 16.6%Language:Cuda 3.1%Language:ShaderLab 0.7%Language:GLSL 0.4%Language:C++ 0.1%Language:HLSL 0.1%