tyssue.dynamics package#

Submodules#

tyssue.dynamics.apoptosis_model module#

Specific functions for apoptosis vertex model

class tyssue.dynamics.apoptosis_model.ApicoBasalTension[source]#

Bases: AbstractEffector

Effector for the apical-basal tension.

The energy is proportional to the heigth of the cell

dimensions = array(1.) * fJ/um**2#
element = 'vert'#
static energy(sheet)[source]#
static gradient(sheet)[source]#
label = 'Apical-basal tension'#
magnitude = 'radial_tension'#
specs = {'vert': {'height': 1.0, 'is_active': 1, 'radial_tension': 0.0}}#

tyssue.dynamics.base_gradients module#

tyssue.dynamics.base_gradients.length_grad(sheet)[source]#

returns -(dx/l, dy/l, dz/l), ie grad_i(l_ij))

tyssue.dynamics.bulk_gradients module#

Base gradients for bulk geometry

tyssue.dynamics.bulk_gradients.lumen_volume_grad(eptm)[source]#

Calculates the gradient for the volume enclosed by the epithelium.

For a monolayer, it will by default compute the volume enclosed by the basal side (edges whose ‘segment’ column is “basal”). If the polarity is reversed and the apical side faces the lumen, this can be changed by setting eptm.settings[“lumen_side”] to ‘apical’

tyssue.dynamics.bulk_gradients.volume_grad(eptm)[source]#

tyssue.dynamics.bulk_model module#

Dynamical models for monlayer and bulk epithelium.

class tyssue.dynamics.bulk_model.LaminaModel[source]#

Bases: NewModel

Not implemented yet

tyssue.dynamics.effectors module#

Generic forces and energies

class tyssue.dynamics.effectors.AbstractEffector[source]#

Bases: object

The effector class is used by model factories to construct a model.

dimensions = None#
element = None#
static energy(eptm)[source]#
static get_nrj_norm(specs)[source]#
static gradient(eptm)[source]#
label = 'Abstract effector'#
magnitude = None#
spatial_ref = (None, None)#
specs = {'cell': {}, 'edge': {}, 'face': {}, 'vert': {}}#
temporal_ref = (None, None)#
class tyssue.dynamics.effectors.BarrierElasticity[source]#

Bases: AbstractEffector

Barrier use to maintain the tissue integrity.

dimensions = array(1.) * fJ/um**2#
element = 'vert'#
static energy(eptm)[source]#
static gradient(eptm)[source]#
label = 'Barrier elasticity'#
magnitude = 'barrier_elasticity'#
specs = {'vert': {'barrier_elasticity': 1.0, 'delta_rho': 0.0, 'is_active': 1}}#
class tyssue.dynamics.effectors.BorderElasticity[source]#

Bases: AbstractEffector

dimensions = array(1.) * fJ/um**2#
element = 'edge'#
static energy(eptm)[source]#
static get_nrj_norm(specs)[source]#
static gradient(eptm)[source]#
label = 'Border edges elasticity'#
magnitude = 'border_elasticity'#
spatial_ref = ('prefered_length', UnitLength('micrometer', 0.001 * mm, 'um'))#
specs = {'edge': {'border_elasticity': 1.0, 'is_active': 1, 'is_border': 1.0, 'length': 1.0, 'prefered_length': 1.0}}#
class tyssue.dynamics.effectors.CellAreaElasticity[source]#

Bases: AbstractEffector

dimensions = array(1.) * fJ/um**4#
element = 'cell'#
static energy(eptm)[source]#
static get_nrj_norm(specs)[source]#
static gradient(eptm)[source]#
label = 'Area elasticity'#
magnitude = 'area_elasticity'#
spatial_ref = ('prefered_area', array(1.) * um**2)#
specs = {'cell': {'area': 1.0, 'area_elasticity': 1.0, 'is_alive': 1, 'prefered_area': 1.0}}#
class tyssue.dynamics.effectors.CellVolumeElasticity[source]#

Bases: AbstractEffector

dimensions = array(1.) * fJ/um**6#
element = 'cell'#
static energy(eptm)[source]#
static get_nrj_norm(specs)[source]#
static gradient(eptm)[source]#
label = 'Volume elasticity'#
magnitude = 'vol_elasticity'#
spatial_ref = ('prefered_vol', array(1.) * um**3)#
specs = {'cell': {'is_alive': 1, 'prefered_vol': 1.0, 'vol': 1.0, 'vol_elasticity': 1.0}}#
class tyssue.dynamics.effectors.FaceAreaElasticity[source]#

Bases: AbstractEffector

dimensionless = False#
dimensions = array(1.) * fJ/um**4#
element = 'face'#
static energy(eptm)[source]#
static get_nrj_norm(specs)[source]#
static gradient(eptm)[source]#
label = 'Area elasticity'#
magnitude = 'area_elasticity'#
spatial_ref = ('prefered_area', array(1.) * um**2)#
specs = {'edge': {'sub_area': 0.16666666666666666}, 'face': {'area': 1.0, 'area_elasticity': 1.0, 'is_alive': 1, 'prefered_area': 1.0}}#
class tyssue.dynamics.effectors.FaceContractility[source]#

Bases: AbstractEffector

dimensions = array(1.) * fJ/um**2#
element = 'face'#
static energy(eptm)[source]#
static gradient(eptm)[source]#
label = 'Contractility'#
magnitude = 'contractility'#
spatial_ref = ('mean_perimeter', UnitLength('micrometer', 0.001 * mm, 'um'))#
specs = {'face': {'contractility': 1.0, 'is_alive': 1, 'perimeter': 1.0}}#
class tyssue.dynamics.effectors.FaceVolumeElasticity[source]#

Bases: AbstractEffector

dimensions = array(1.) * fJ/um**6#
element = 'face'#
static energy(eptm)[source]#
static get_nrj_norm(specs)[source]#
static gradient(eptm)[source]#
label = 'Volume elasticity'#
magnitude = 'vol_elasticity'#
spatial_ref = ('prefered_vol', array(1.) * um**3)#
specs = {'edge': {'sub_area': 0.16666666666666666}, 'face': {'is_alive': 1, 'prefered_vol': 1.0, 'vol': 1.0, 'vol_elasticity': 1.0}, 'vert': {'height': 1.0}}#
class tyssue.dynamics.effectors.LengthElasticity[source]#

Bases: AbstractEffector

Elastic half edge

dimensions = array(1.) * fJ/um**2#
element = 'edge'#
static energy(eptm)[source]#
static get_nrj_norm(specs)[source]#
static gradient(eptm)[source]#
label = 'Length elasticity'#
magnitude = 'length_elasticity'#
spatial_ref = ('prefered_length', UnitLength('micrometer', 0.001 * mm, 'um'))#
specs = {'edge': {'is_active': 1, 'length': 1.0, 'length_elasticity': 1.0, 'prefered_length': 1.0, 'ux': 0.5773502691896257, 'uy': 0.5773502691896257, 'uz': 0.5773502691896257}}#
class tyssue.dynamics.effectors.LineTension[source]#

Bases: AbstractEffector

dimensions = array(1.) * fJ/um#
element = 'edge'#
static energy(eptm)[source]#
static gradient(eptm)[source]#
label = 'Line tension'#
magnitude = 'line_tension'#
spatial_ref = ('mean_length', UnitLength('micrometer', 0.001 * mm, 'um'))#
specs = {'edge': {'is_active': 1, 'line_tension': 1.0}}#
class tyssue.dynamics.effectors.LineViscosity[source]#

Bases: AbstractEffector

dimensions = array(1.) * s*nN/um#
element = 'edge'#
static gradient(eptm)[source]#
label = 'Linear viscosity'#
magnitude = 'edge_viscosity'#
spatial_ref = ('mean_length', UnitLength('micrometer', 0.001 * mm, 'um'))#
specs = {'edge': {'edge_viscosity': 1.0, 'is_active': 1}}#
temporal_ref = ('dt', UnitTime('second', 's'))#
class tyssue.dynamics.effectors.LumenAreaElasticity[source]#

Bases: AbstractEffector

..math:

rac{K_Y}{2}(A_{mathrm{lumen}} - A_{0,mathrm{lumen}})^2

dimensions = array(1.) * fJ/um**4#
element = 'settings'#
static energy(eptm)[source]#
static gradient(eptm)[source]#
label = 'Lumen volume constraint'#
magnitude = 'lumen_elasticity'#
spatial_ref = ('lumen_prefered_vol', array(1.) * um**2)#
specs = {'settings': {'lumen_elasticity': 1.0, 'lumen_prefered_vol': 1.0, 'lumen_vol': 1.0}}#
class tyssue.dynamics.effectors.LumenVolumeElasticity[source]#

Bases: AbstractEffector

Global volume elasticity of the object. For example the volume of the yolk in the Drosophila embryo

dimensions = array(1.) * fJ/um**6#
element = 'settings'#
static energy(eptm)[source]#
static get_nrj_norm(specs)[source]#
static gradient(eptm)[source]#
label = 'Lumen volume elasticity'#
magnitude = 'lumen_vol_elasticity'#
spatial_ref = ('lumen_prefered_vol', array(1.) * um**3)#
specs = {'settings': {'lumen_prefered_vol': 1.0, 'lumen_vol': 1.0, 'lumen_vol_elasticity': 1.0}}#
class tyssue.dynamics.effectors.MidlineBoundary[source]#

Bases: AbstractEffector

Elastic boundary at the x-axis, to be used with MidlineBoundaryGeometry. Intended to use with a high midline_boundary_stiffness to prevent vertices from crossing the midline.

dimensions = array(1.) * fJ/um**2#
element = 'vert'#
static energy(eptm)[source]#
static gradient(eptm)[source]#
label = 'Midline boundary'#
magnitude = 'midline_boundary'#
specs = {'vert': {'boundary_K': 280, 'delta_boundary': 0, 'is_active': 1}}#
class tyssue.dynamics.effectors.PerimeterElasticity[source]#

Bases: AbstractEffector

From Mapeng Bi et al. https://doi.org/10.1038/nphys3471

dimensions = array(1.) * fJ/um**2#
element = 'face'#
static energy(eptm)[source]#
static gradient(eptm)[source]#
label = 'Perimeter Elasticity'#
magnitude = 'perimeter_elasticity'#
spatial_ref = ('prefered_perimeter', UnitLength('micrometer', 0.001 * mm, 'um'))#
specs = {'face': {'is_alive': 1, 'perimeter': 1.0, 'perimeter_elasticity': 0.1, 'prefered_perimeter': 3.81}}#
class tyssue.dynamics.effectors.RadialTension[source]#

Bases: AbstractEffector

Apply a tension perpendicular to a face.

dimensions = array(1.) * fJ/um#
element = 'face'#
static energy(eptm)[source]#
static gradient(eptm)[source]#
label = 'Apical basal tension'#
magnitude = 'radial_tension'#
specs = {'face': {'height': 1.0, 'radial_tension': 1.0}}#
class tyssue.dynamics.effectors.SurfaceTension[source]#

Bases: AbstractEffector

dimensions = array(1.) * fJ/um**2#
element = 'face'#
static energy(eptm)[source]#
static gradient(eptm)[source]#
label = 'Surface tension'#
magnitude = 'surface_tension'#
spatial_ref = ('prefered_area', array(1.) * um**2)#
specs = {'face': {'area': 1.0, 'is_active': 1, 'surface_tension': 1.0}}#
tyssue.dynamics.effectors.dimensionalize(nondim_specs, dim_specs, effector, ref_effector)[source]#
tyssue.dynamics.effectors.elastic_energy(element_df, var, elasticity, prefered)[source]#
tyssue.dynamics.effectors.elastic_force(element_df, var, elasticity, prefered)[source]#
tyssue.dynamics.effectors.normalize(dim_specs, nondim_specs, effector, ref_effector)[source]#
tyssue.dynamics.effectors.scaler(nondim_specs, dim_specs, effector, ref_effector)[source]#

tyssue.dynamics.factory module#

tyssue.dynamics.factory.model_factory(effectors, ref_effector=None)[source]#

Produces a Model class with the provided effectors.

Parameters
  • effectors (list of effectors.AbstractEffectors classes.) –

  • ref_effector (optional, default None) – if passed, will be used for normalization, by default, the last effector in the list is used

Returns

NewModel – methods

Return type

a Model derived class with compute_enregy and compute_gradient

tyssue.dynamics.planar_gradients module#

tyssue.dynamics.planar_gradients.area_grad(sheet)[source]#
tyssue.dynamics.planar_gradients.lumen_area_grad(eptm)[source]#

tyssue.dynamics.planar_vertex_model module#

tyssue.dynamics.sheet_gradients module#

Base gradients for sheet like geometries

tyssue.dynamics.sheet_gradients.area_grad(sheet)[source]#
tyssue.dynamics.sheet_gradients.height_grad(sheet)[source]#

tyssue.dynamics.sheet_vertex_model module#

Vertex model for an Epithelial sheet (see definitions).

Depends on the sheet vertex geometry functions.

tyssue.dynamics.units module#

Small module to manage units and dimension analysis

Module contents#

dynamics