Git Product home page Git Product logo

mosaicsc's Introduction

MosaicSC

build License: MIT

Simulation of space-embedded molecular aggregates using Potts model

Introduction

When multiple species of particles present in the same system have the capacity for multi-facet mutual interactions, a complicated mix consisting of heterogeneous aggregates may arise.
Its composition depends strongly on details of the interactions and abundance of the particles. Interaction strength of a pair of particles is then often modulated by connections to other particles, leading to nonlinear effects, difficult to capture with analytical methods. This is especially the case when spatial effects or noise-dependent properties are important.
For systems consisting of two components only a well-studied Ising model is a classical approach. Potts model is a generalization of the Ising one to the case of multiple species and interactions, and so offers a much higher versatility often necessary for practical applications.

Case of Respiratory Supercomplexes

In living cells, mitochondrial respiratory complexes (RC) are large proteins present in the inner membrane of mitochondria - intracellular organelles crucial for energy supply, death/survival decision and other important functions. Recently, it became known that the complexes themselves function as building blocks for even larger protein aggregations termed supercomplexes (SCs), but their exact composition is not clear, and is possibly variable, dependent on specific conditions set by current state of the mitochondria.

The software package here incorporates details of the RC interactions to reconstruct composition of the SC aggrregations arising at particular values of species concentration and pairwise reaction rates. All four RC species available in higher eucariotes or only some of them may be included into a modeled environment. Constraints imposed by particular geometry of each molecular species and the membrane positioning would then lead to a specific mix of aggregations.

Installation

The simulator makes use of the general-purpose library utils, (included here as a git submodule). So, when cloning, please make sure, that the dependent library is included, e.g., by applying:

git clone --recursive https://github.com/vsukhor/mosaicsc.git

and, in the case of an update, do this explicitly on the submodule:

git submodule init
git submodule update

Because utils::random relies on boost for generation of pseudo-random numbers, boost header files are expected to be accessible at compile thme.

The code requires a C++20 - capable compiler. It was tested on macOS (clang-12) and Ubuntu (gcc-11).

Using cmake (ver. 3.15 or higher):

cd mosaicsc  
cmake -S . -B build  
cmake --build build  

Running the simulation

The simulation parameters are read from a short configuration file, structured as in the example config.txt. More details on the config file formatting can be found in the utils::config documentation The file is expected to be named as 'config.txt'. Using the above example, and the executable mosaicsc, the simulation may be launched as

./app/mosaicsc /path/to/examples/example1

The first argument is the path to the configuration file.

Analyzing the results

The simulation saves snapshots of the Potts lattice, list of the SCs present and generates a detailed log file reporting evolution of the key metrics parameters.
scripts/temporal_evolution/ directory contains Python 3 code for basic visualization and analysis of the logged data. The scripts can be used independently of the main C++ code, provided the output files are available (see the instructions inside).

License

MosaicSC is available under the terms of the MIT license.

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.