GithubHelp home page GithubHelp logo

achalmahajan1 / chromatin_code Goto Github PK

View Code? Open in Web Editor NEW
4.0 1.0 1.0 2.05 MB

A boundary integral simulation tool for chromatin organization inside the nucleus.

Fortran 75.04% Makefile 1.84% Shell 0.46% Python 11.27% C++ 10.97% C 0.42%
cell-biology hydrodynamics polymer-dynamics simulations chromatin-dynamics

chromatin_code's Introduction

Chromatin Code

To simulate the genome organization at a resolution of ~100 kbp, along with phase separation of active and silent regions of the genome using first principles. We can model the chromatin chain (nucleosomes with nuclear enzymes) as a simplistic microscopic mechanical description in the form of a polymer chain with beads connected by entropic springs (FENE). To differentiate, structurally and functionally heterochromatin and euchromatin domains of the genome, we can add additional crosslink springs to model the specific binding interaction of heterochromatin protein 1 (HP1) with H3K9me3 as crosslinks betweek heterochromatin domains.

This code performs Brownian dynamics simulations of bead-spring polymer (chromatin) in the presence of a rigid confinement (Sphere/Elliposid at present). The input parameters are assigned in Ext_mod2a.f90 (refer to the paper for more details on the model: https://journals.aps.org/prx/abstract/10.1103/PhysRevX.12.041033). N: Number of beads/chain needed to be simulated Nc: Number of chains in the system Ntr: Number of brownian tracer particles (can be either the)

Rs = effective radius of the confinement aoc, boc = ratio of a/c and b/c (= 1 for a sphere) k_on/k_off = on and off rate of the molecular motors

Prerequisites

gfortran; OpemMPI, and STKFMM as a dependency: https://github.com/wenyan4work/STKFMM. Install STKFMM and compile test codes. The instructions are available on the github page (feel free to reach out if you have any questions). I am also planning to add a simple version of the code to evaluate surface traction forces on an arbitraty domain.

Function/Subroutines (source files)

Each subroutine/functions performs specific functions. Here are the details of it:

  1. ActiveForces.f90: This function evaluates active force dipoles on individual beads (+ve for extensile dipoles and -ve for contractile). The dipoles are stochastic in nature, and their binding/unbinding are dependens on k_{off} and k_{on} (parameters in Variables.f90).
  2. Cholesky.f90: This function evaluates the inverse of a symmetric positive-definite matrix. At present, it's not required in the calculations, but could be used for problems where the Brownian forces drives the flow and are not local.
  3. Ext_mod2a.f90: This is main source file (still don't remember the origin of the name). This is where all the functions are used, and are tied in. All the local variables are defined here.
  4. Geo_Val.f90: For calculating the surface normal on each surface grid. Again, this is not required for this problem specifically as we are dealing with a single layer potential, and the surface is rigid, but for problems where the surface deforms, we might need to evaluate the surface normal/tangent in order to dynamically move the surface.
  5. Green_fs.f90: This function evaluates the surface integral of any vector field on the surface.
  6. InitConfig.f90/Initdip.f90: Initilaize the chain inside the bounding domain. Here, I have initialized the chain as a random walk configuration on the surface of the sphere. I am also planning to add the part where the chain can be initialized as a fractal globule.
  7. Interp.f90: This function interpolates the vector field on the right triangle in (eta-zeta) plane where the surface integrals are performed.
  8. Leonard_jones.f90: This function evaluates the repulsive forces used to avoid crossing of the chain. Again the name is misleading because it's a generic third power repulsive potential and has nothing with Leonard Jones potential.
  9. gasdev.90: Random number generator for Brownian forces.
  10. sgf_3d_fs.f90: This function calculate the greens functions (Stokeslet and Stresslet as well for the pressure).

Initconfig directory contains the initial configuration data files for 23 polymer (chromatin) chains. Each chain is initialized as a random walk on a sphere and then placed systematically inside the ellipsoidal nucleus.

Compilation

Compiling the code is a straigt forward process: make (Make sure to change the files path accordingly).

chromatin_code's People

Contributors

achalmahajan1 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

tanumoydhar

chromatin_code's Issues

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.