Nuncleosome Module¶
Module
Description
This module is designed to handle the various geometrical considerations of nucleosomes.
Quick access
Needed modules
precision
(dp()
,pi()
)
Variables

nucleosome/
basepairsperturn
[real,parameter=10.5_dp]¶


nucleosome/
multiparams
(10,wlc_p__max_bacepairs_per_bead) [real]¶


nucleosome/
nucleosomerot
(3,3,147) [real,private]¶


nucleosome/
nucleosometran
(3,147) [real,private]¶

Subroutines and functions

subroutine
nucleosome/
nucleosome_prop
(uin, vin, rin, linkbp, wrapbp, uout, vout, rout)¶ Calculates the final position and orientation Rout,Uout,Vout based on the the incomming position and orientation Rin, Uin, Vin for a nucleosome with wrapBP bace paris of DNA wrapped around it. The intrisic rotation of a linkBP long linker that follows is also included.
Parameters:  uin (3) [real,in] :: Entry direction along DNA
 vin (3) [real,in] :: Entry tangent vector
 rin (3) [real,in] :: Position of entry
 linkbp [real,in]
 wrapbp [integer,in]
 uout (3) [real,out] :: Exit position
 vout (3) [real,out] :: Exit tangent vector
 rout (3) [real,out] :: Exit position
Use : vector_utils
(cross()
)Called from: sterics_check()
,nucleosome_energy()
,initcond()
Call to: cross()

function
nucleosome/
nucleosome_energy
(rp1, r, up1, u, vp1, v, linkbp, wrapbp)¶ Caltulate the bending energy of a nucleosome at position R and orientation U, V with wrapBP of DNA wrapped around it followed by a liner linkBP bace pairs long that ends at RP1, UP1, and VP1. Assumes a SSWLCWT linker.
Parameters:  rp1 (3) [real,in] :: R of bead i+1
 r (3) [real,in] :: R of bead i
 up1 (3) [real,in] :: U of bead i+1
 u (3) [real,in] :: U of bead i
 vp1 (3) [real,in] :: multiParams(1,linkBP),& ! EB
 v (3) [real,in] :: V of bead i
 linkbp [real,in]
 wrapbp [integer,in]
Return: nucleosome_energy (4) [real]
Use : mc_wlc
(e_sswlcwt()
)Called from: energy_elas()
,mc_eelas()
,nucleosome_energy()
Call to: nucleosome_energy()
,nucleosome_prop()
,get_params()
,e_sswlcwt()

function
nucleosome/
internucleosome_energy
(ri, rj, ui, uj, vi, vj)¶ internucleosome attraction energy. this is based off the work out of de pablos group where they look at the pairwise potential between 2 nucleosome dependent on their orientation/geometry and distance from each other. parameters come from their counterion condensation assumptions. i try to simplify their findings and create 3 main classes of interactions: 1) faceface where the nucleosomes are aligned such that their core histones can interact 2) faceside where the nucleosomes are aligned perpendicular such that the core histones of one nucleosome interacts with the DNA wrapping the exterior of the other nucleosome and 3) sideside where the nucleosome DNA wrappings are in line with each other.
Parameters:  ri (3) [real,in] :: R of nuc i
 rj (3) [real,in] :: R of nuc j
 ui (3) [real,in] :: U of nuc i
 uj (3) [real,in] :: U of nuc j
 vi (3) [real,in] :: V of nuc i
 vj (3) [real,in] :: V of nuc j
Return: internucleosome_energy [real]
Use : mc_wlc
(e_sswlcwt()
),vector_utils
(cross()
),energies
(energyof()
,internucleosome_()
)Called from: mc_internucleosome()
,calculate_energies_from_scratch()
Call to: cross()

subroutine
nucleosome/
get_params
(i, eb, epar, eperp, gam, eta, xir, xiu, sigma, etwist, simtype)¶ Return parameters for a linker that is i bace pairs long
Parameters:  i [real,in] :: Number of bace pairs in linder
 eb [real,out] :: Bending modulus
 epar [real,out] :: Stretch modulus
 eperp [real,out] :: Shear modulus
 gam [real,out] :: ground state segment length
 eta [real,out] :: bendshear coupling
 xir [real,out]
 xiu [real,out]
 sigma [real,out]
 etwist [real,out] :: Twist coefficient
 simtype [real,out] :: WLC, SSWLC, or Gaussian Chain
Called from:

subroutine
nucleosome/
setup_nucleosome_constants
()¶ Use : precision
(nan()
),mc_wlc
(calc_elastic_constants()
)Called from: set_parameters()
Call to: calc_elastic_constants()

subroutine
nucleosome/
load_nucleosome_positions
(wlc_nucleosomewrap, wlc_basepairs)¶ if WLC_P__INCLUDE_DISCRETIZE_LINKER is turned on, then this determines the discretization scheme of the beads throughout the chain. it sets a real (can be noninteger) value for the discretization as a function of contour length and WLC_P__NB. if WLC_P__INCLUDE_DISCRETIZE_LINKER is off, then each bead is if WLC_P__INCLUDE_DISCRETIZE_LINKER is turn on, then this determines the discretization scheme of the beads throughout the chain. it defaults to trying to set integer values for each bead discretization, but not has the capability to use real numbers. if WLC_P__INCLUDE_DISCRETIZE_LINKER is off, then each bead is default assumed to be a nucleosome, so there are no additional beads used to model the fluctuations of the linker geometry with more detail. nucleosomes are intialized on the chain according to WLC_P__LINKER_TYPE, where the default is ‘phased’, i.e. the nuclesomes are separated by a constant linker length throughout the chain
Parameters:  wlc_nucleosomewrap (wlc_p__nt) [integer,out]
 wlc_basepairs (wlc_p__nt) [real,out]
Use : precision
(nan()
),gjkalgorithm
(gjk()
,sameshapetest()
,nointersectx()
,intersectx()
,tangentx()
,runtimetest5()
,runtimetest6()
,nointersecty()
,intersecty()
,tangenty()
,runtimetest1()
,runtimetest3()
,nointersectz()
,intersectz()
,tangentz()
,runtimetest2()
,runtimetest4()
),polydispersity
(first_bead_of_chain()
,last_bead_of_chain()
)Called from: initialize_wlcsim_data()
Call to: first_bead_of_chain()
,last_bead_of_chain()
,sameshapetest()
,nointersectx()
,intersectx()
,tangentx()
,nointersecty()
,intersecty()
,tangenty()
,nointersectz()
,intersectz()
,tangentz()
,runtimetest1()
,runtimetest2()
,runtimetest3()
,runtimetest4()
,runtimetest5()
,runtimetest6()