Giter Site home page Giter Site logo

comcon1 / scaling-codes Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 492 KB

Extremly fast and accurate 1D C++ solver of Reaction-Diffusion equation designed for parametric scan

License: BSD 2-Clause "Simplified" License

Makefile 1.88% C++ 31.52% Python 13.40% Jupyter Notebook 53.19%

scaling-codes's Introduction

Simple phenomenological models

Extremly fast and accurate 1D C++ solver of Reaction-Diffusion equation is used here for parametric scan of three phenomenological models of embryonic scaling: Expansion-Repression, Contraction-Induction (original) [1], and Contraction-Induction (improved) [2].

Install prerequisites

You need to install boost headers, boost_program_options libraries, and LAPACK C libraries.

First, clone the repository:

git clone https://github.com/comcon1/scaling-codes

Then init all the submodules:

git submodule update --init

Install required pacakges. For ubuntu/debian use the following packages:

  • DEBIAN: apt install g++ libboost-program-options-dev liblapack3-dev
  • OpenSuse: zypper in lapack-devel libboost_program_options1_66_0-devel (version number varies in different distributions)

The last package is named liblapack-dev in some distributions. For scan codes install also python3:

apt install python3

Build codes and run the scanner

Enter model directory, e.g. ER model: phen-models/er.

If you have boost installed into non-standard place, correct CPPFLAGS and/or LIBS variables as well. In other case, just run make to build and make test to verify if executable is OK.

Before starting the scan, go to phen-models/scanner and modify NCORES variable in the Makefile according to your processor core numbers. Next run scan with make erscan. If you want to modify parametric set, change paramset-er.py.

Complex model of mesoderm patterning

PDE model of Xenopus mesoderm patterning described in [1]. The project includes both the code of simulations (built in the same manner as for phenomenological models) and scripts for parameter fitting via multidimensional minimization.

Install prerequisites

Install the same packages as required for simple models (see above). C++ code of complex model does not require any additional libraries. At the same time, code of the scanner requires scipy and numpy. The scanner uses dual-annealling stochastic optimizer that requires scipy v. 1.2.0+. If your scipy version is lower than upgrade it, e.g., via pip:

apt install python3-pip
pip3 install pip --upgrade
pip3 install numpy scipy

Build codes and run the scanner

Make C++ solver in the same way as described in phenomonological model section.

Next, modify NCORES variable in the Makefile accordingly, and perform the scan in scanner directory with the command:

make scan

We strongly recommend to perform the scan in the detached mode. For example, when using screen:

screen make scan

To terminate the process accurately, please terminate optimizer.py process directly:

pkill optimizer

Citation

  1. D. Ben-Zvi, N. Barkai, Scaling of morphogen gradients by an expansion-repression integral feedback control, Proc. Natl. Acad. Sci. 107 (2010) 6924โ€“6929. doi:10.1073/pnas.0912734107.
  2. E. Orlov, A. Nesterenko, D. Korotkova, E. Parshina, N. Martynova, A. Zaraisky, Targeted search for scaling genes reveals matrix metalloproteinase 3 as a scaler of the dorsal-ventral pattern in Xenopus laevis embryos. Dev. Cell, 57 (2022), 95-111.e12. doi:10.1016/j.devcel.2021.11.021.

scaling-codes's People

Contributors

comcon1 avatar

Watchers

 avatar  avatar

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.