cell_class module¶
Implementation of a class to represent the cell cortex.
-
class
cell_class.
Cell
(initial_guesses, identifier='A', verbose=True, param_dict=None, **cell_kwargs)[source]¶ Bases:
object
Class that represents the apical cell cortex and holds all variables and functions to manipulate it.
The class stores cortex variables
x
,y
,theta
, theta’ (calledc
), theta’’ (calledd
) and alpha (calledgamma
, here).Note
Due to old naming conventions, some variables are different to the published names: (name here = published name),
kappa
= kappa^2,gamma
= alpha,prestrain
= prestretch,s
= S_0.-
activate_fast_adhesions
(on_off)[source]¶ (De)activates the forces coming from fast adhesions
- Parameters
on_off (bool) – Set whether fast adhesions exert forces on the cortex.
-
adaptive_mesh_update
(coarsen=True, refine=True, nodes_to_keep={})[source]¶ refine and coarsen mesh based on curvature
- Parameters
coarsen (bool) – (Default value = True) Whether to apply coarsening by removing nodes.
refine (bool) – (Default value = True) Whether to apply refinement by adding nodes.
nodes_to_keep (set) – (Default value = set()) A list of nodes that cannot be removed.
-
build_adhesion_tree
(build_polygon=False)[source]¶ Builds a kdtree of the possible adhesion locations from self.adhesion_point_coords
- Parameters
build_polygon (bool) – (Default value = False) Set whether the adhesion polygon will be built. (It’s not used much anymore)
-
bvp_bcs
(ya, yb)[source]¶ Check how close we are to periodic BCS for cortex variables. Used for solving BVP
- Parameters
ya (list) – The current value of the cortex variables at the first index:
[theta[0], gamma[0], x[0], y[0], C[0], D[0]]
yb (list) – The current value of the cortex variables at the first index:
[theta[-1], gamma[-1], x[-1], y[-1], C[-1], D[-1]]
- Returns
A list of the differences between the enp-point variables (theta is mod 2pi).
- Return type
np.array
-
check_if_cell_intersects_adhesion_boundary
(x=None, y=None)[source]¶ Check if any cortex node intersects the adhesion boundary
- Parameters
x (list) – (Default value = None) x coords for cell cortex points. Can default to use stored values.
y (list) – (Default value = None) y coords for cell cortex points. Can default to use stored values.
- Returns
If the boundary intersects.
- Return type
bool
-
coarsen_mesh
(method='spacing', nodes_to_keep={})[source]¶ Removes nodes in the mesh that are no longer needed.
- Parameters
method (string) – (Default value = ‘spacing’) Method to determine which nodes are removed. spacing or curvature
nodes_to_keep (set) – (Default value = set()) A set of nodes that can’t be removed.
-
decimate_all_variables_onto_new_grid
(factor, use_scipy=False, new_s=None)[source]¶ Change the grid and interpolate all variables onto it
- Parameters
factor – Scaling factor for removing nodes.
factor – int
use_scipy – (Default value = False) Whether to use Scipy’s version of the function.
use_scipy – bool
new_s – (Default value = None) The new undeformed mesh, S_0., which the decimated grid can be interpolated onto.
new_s – list
-
funcForScipyBVPSolver
(s, U)[source]¶ Function to pass to Scipy’s BVP solver; returns the cortex equilibrium equations from the force balance. U = [theta, gamma, x, y, D, C]
- Parameters
s (np.array) – S_0 cortex coordintes (the undeformed mesh).
U – A list of the cortex variables
[theta, gamma, x, y, C, D]
(passed as arrays; unintuitive ordering)
- Returns
The first derivative of the cortex variables, which will be solved by Scipy.
- Return type
list
-
get_adhesion_nodes_connected_to_xy
(nodes, sort_by_distance=True)[source]¶ Calculate the adhesions that will be connected to given a list of (x,y) coordinates.
- Parameters
nodes (list) – The list of coordinates that will look for adhesion connections.
sort_by_distance (bool) – (Default value = True) Sort the return list by distance.
- Returns
The
distances
that the nodes have to the adhesion boundary, and theindices
matching the output distances to the input nodes.- Return type
(list, list)
-
get_area
(x=None, y=None)[source]¶ Calculate the signed area of the cell
- Parameters
x (np.array) – (Default value = None) x-coordinates to use. Defaults to stored cortex x variable.
y (np.array) – (Default value = None) y-coordinates to use. Defaults to stored cortex y variable.
- Returns
The area enclosed by the cortex.
- Return type
float
-
get_centroid
(x=None, y=None)[source]¶ Get the perimeter-based centroid. This is important if the spacing becomes non-uniform then the mean of node positions becomes biased to where nodes are most dense.
- Parameters
x (np.array) – (Default value = None) x-coordinates to use. Defaults to stored cortex x variable.
y (np.array) – (Default value = None) y-coordinates to use. Defaults to stored cortex y variable.
- Returns
The (x,y) coords of the centroid.
- Return type
tuple
-
get_cortex_forces
()[source]¶ Get the total forces exerted by the cortex (against adhesion), summed of normal and tang dirs.
- Returns
Total force acting across cortex.
- Return type
np.array
-
get_effective_pressure
()[source]¶ Isotropic part of cell-level stress
- Returns
Trace of the stress tensor
- Return type
float
-
get_fast_adhesion_forces_across_cortex
(x=None, y=None, sort_by_distance=True)[source]¶ Query the adhesion tree to get indices of neighouring cortices within the max adhesion length. Then calculate the distance to each point and calculate the force.
- Parameters
x (np.array) – (Default value = None) x-coordintes to use. Defaults to stored cortex x variable.
y (np.array) – (Default value = None) y-coordintes to use. Defaults to stored cortex y variable.
sort_by_distance (bool) – (Default value = True) Organise the adhesions by distance.
- Returns
A list of the adhesion forces acting across the cortex.
- Return type
np.array
-
get_first_derivative_of_cortex_variables
(x=None, y=None, theta=None, gamma=None, C=None, D=None, s=None)[source]¶ Get the first derivative of all cortex variables. (Note, return order differs to input order odo)
- Parameters
x (np.array) – (Default value = None) x-coordinates to use. Defaults to stored cortex x variable.
y (np.array) – (Default value = None) y-coordinates to use. Defaults to stored cortex y variable.
theta (np.array) – (Default value = None) cortex angles to use. Defaults to stored cortex theta variable.
gamma (np.array) – (Default value = None) cortex stretches to use. Defaults to stored cortex gamma variable.
C (np.array) – (Default value = None) theta’ to use. Defaults to stored cortex C variable.
D (np.array) – (Default value = None) theta’’ to use. Defaults to stored cortex D variable.
s (np.array) – (Default value = None) S_0-coordintes to use. Defaults to stored cortex S_0 variable.
- Returns
A list of arrays, where each array is the first deriv of a cortex variable.
- Return type
list
-
get_intersection_indices
(points)[source]¶ Get at list of the idxs, from given points, that intersect adhesion boundaries. DEPRECIATED
- Parameters
points (list) – The coords of points to check
- Return indices
The indices of the points that intersected the boundary.
-
get_length
()[source]¶ Get total length cortex
- Returns
The integrated deformed mesh spacing.
- Return type
float
-
get_length_of_adhesions
(rerun_distance_calculation=True)[source]¶ Get the lengths of all connected adhesions.
- Parameters
rerun_distance_calculation – (Default value = True) Whether to re-check the lengths of adhesions.
rerun_distance_calculation – bool
- Returns
The lengths of the adhesions
- Return type
np.array
-
get_length_of_cortex_with_active_contractility
()[source]¶ Get the total length of the cortex that has active contractility
- Returns
The summed cortex segments that have active contractility.
- Return type
float
-
get_length_of_longest_adhesion
(rerun_distance_calculation=True)[source]¶ Length of the longest connected adhesion.
- Parameters
rerun_distance_calculation – (Default value = True) Whether to update the adhesions.
rerun_distance_calculation – bool
- Returns
The length of the longest adhesion.
- Return type
float
-
get_length_of_shortest_adhesion
(rerun_distance_calculation=True)[source]¶ - Parameters
rerun_distance_calculation – (Default value = True) Whether to update the adhesions.
rerun_distance_calculation – bool
- Returns
The length of the shortest adhesion.
- Return type
float
-
get_mesh_spacing
()[source]¶ Get the spacing between nodes in the undeformed configuration
- Returns
The current undeformed mesh spacing
- Return type
np.array
-
get_normal_and_tangential_components_of_cortex_forces
()[source]¶ Get normal and tangential components of force gradient exerted by cortex. This is sum of adhesion and pressure in equilibrium
- Returns
Cortex forces in the normal and tangential directions
- Return type
(np.array, np.array)
-
get_prestrains
(shape=None)[source]¶ Returns an array of the calculated prestrethc (called prestrain) at every mesh point, using the fast adhesion methods
- Parameters
shape (int) – (Default value = None) The desired return shape (used when solving bvp with collocation nodes).
- Returns
The prestretch across the cortex.
- Return type
np.array
-
get_protrusion_force
(x, y)[source]¶ - Make a protrusion pointing to another cell and get a list of the forces acting across the cortex due to it
(this will mostly be a sparse list of [0,0] except where the protrusion is) odo this is old might not work anymore
- Parameters
x (np.array) – (Default value = None) x-coordintes to use. Defaults to stored cortex x variable.
y (np.array) – (Default value = None) y-coordintes to use. Defaults to stored cortex y variable.
- Returns
A list of the forces acting across the cortex due to protrusions.
- Return type
np.array
-
get_sdk_forces_across_cortex
(x, y, s)[source]¶ Get a vector len(self.s) of the total force on each cortex node due to sdk
- Parameters
x (np.array) – (Default value = None) x-coordintes to use. Defaults to stored cortex x variable.
y (np.array) – (Default value = None) y-coordintes to use. Defaults to stored cortex y variable.
s (np.array) – (Default value = None) S_0-coordintes to use. Defaults to stored cortex S_0 variable.
- Returns
A list of the sidekick adhesion forces acting across the cortex.
- Return type
np.array
-
get_slow_adhesion_forces_across_cortex
(x=None, y=None)[source]¶ Calculate a vector len(self.s) giving the total force at every cortexz node coming from the population of slow adhesions.
- Parameters
x (np.array) – (Default value = None) x-coordintes to use. Defaults to stored cortex x variable.
y (np.array) – (Default value = None) y-coordintes to use. Defaults to stored cortex y variable.
- Returns
A list of the slow adhesion forces acting across the cortex.
- Return type
np.array
-
get_stress_tensor
()[source]¶ Calculate cell stress tensor
- Returns
The 2x2 stress tensor
- Return type
np.array
-
get_total_adhesion_force_across_cortex
(x=None, y=None, s=None)[source]¶ Get the total adhesion force, with fast, sdk and slow adhesions
- Parameters
x (np.array) – (Default value = None) x-coordintes to use. Defaults to stored cortex x variable.
y (np.array) – (Default value = None) y-coordintes to use. Defaults to stored cortex y variable.
s (np.array) – (Default value = None) S_0-coordintes to use. Defaults to stored cortex S_0 variable.
- Returns
A list of the sidekick adhesion forces acting across the cortex.
- Return type
np.array
-
get_total_adhesion_force_from_adhesion_indices
(coord, adhesion_index, is_intersection=False)[source]¶ For fast adhesions. Given (x,y) coord on this cortex and index (adhesion_idx) in adhesion list that it is connected to, calculate vector force. Note self.adhesion_connections[adhesion_index] can be a list of multiple connections.
- Parameters
coord – The (x,y) coord to get the adhesion force for.
is_intersection (bool) – (Default value = False). Unused now. If it is intersecting the adhesion boundary, the force is reversed.
- Returns
The
distances
that the nodes have to the adhesion boundary, and theindices
matching the output distances to the input nodes.- Return type
(list, list)
-
get_xy_segment_lengths
(x=None, y=None)[source]¶ - Parameters
x (np.array) – (Default value = None) x-coordinates to use. Defaults to stored cortex x variable.
y (np.array) – (Default value = None) y-coordinates to use. Defaults to stored cortex y variable.
-
interpolate_variable_onto_new_grid
(variable, current_grid, new_grid)[source]¶ Interpolates a given cortex variable from old_grid to new_grid
- Parameters
variable (list) – The cortex variable (or any array) to be interpolated onto a new grid..
current_grid (list) – The current undeformed mesh spacing, S_0.
new_grid (list) – The new mesh grid that the variable will be interpolated to.
-
static
make_heatmap_from_array
(input_array, cmap='coolwarm')[source]¶ Given an array of values, generate a heatmap
- Parameters
input_array (list) – Input array of values to base the cmap on.
cmap (sring) – (Default value = ‘coolwarm’) Name of a Matplotlib cmap.
- Returns
An rgba colourmap.
- Return type
mpl cmap
-
move_cortex_nodes_to_equilibrium_dist
(scaling=1, neighbours_moving=True)[source]¶ Enforces that the cortex is no closer than delta to any neighbouring cortex
- Parameters
scaling (float) – (Default value = 1) Additional scaling relative to delta that the cortex nodes will sit from neighbours.
neighbours_moving (bool) – (Default value = True) An additional check if the neighbouring cortices will move.
- Returns
Wether we were successful.
- Return type
bool
-
pickle_self
(SAVE_DIR=None, name=None)[source]¶ Pickles instance of this class
- Parameters
SAVE_DIR (string) – (Default value = None) Location to save.
name (string) – (Default value = None) Name of the pickled file.
-
plot_adhesion_points
(ax=None, plot_forces=True, plot_adhesion_at_specific_locations=False)[source]¶ Plot the adhesions on the cortex
- Parameters
ax – (Default value = None)
plot_forces – (Default value = True)
plot_adhesion_at_specific_locations – (Default value = False)
-
plot_cortex
(ax=None, x=None, y=None, plot_tension=False, cortex_width=2, col='k', max_strain=0.002)[source]¶ Plot the cortex (outline) of the cell.
- Parameters
ax – (Default value = None)
x – (Default value = None)
y – (Default value = None)
plot_tension – (Default value = False)
cortex_width – (Default value = 2)
col – (Default value = ‘k’)
max_strain – (Default value = .002)
-
plot_cortex_variables
(ax=None, linestyle='-', plot_legend=True, plot_strain=False)[source]¶ Function to plot the data on 3 plot_3panels
- Parameters
ax – (Default value = None)
linestyle – (Default value = ‘-‘)
plot_legend – (Default value = True)
plot_strain – (Default value = False)
-
plot_medial_pressure
(ax=None)[source]¶ Plot the adhesions on the cortex
- Parameters
ax – (Default value = None)
-
plot_principal_axes_of_shape
(ax=None)[source]¶ Plot pricipal axes of shape
- Parameters
ax – (Default value = None)
-
plot_protrusion_force
(ax=None, colour='C0')[source]¶ Plot the protrusion on the cortex
- Parameters
ax – (Default value = None)
colour – (Default value = ‘C0’)
-
plot_stress
(plot_stress_axis=False, ax=None, sim_type='single')[source]¶ Plot the adhesions on the cortex
- Parameters
plot_stress_axis – (Default value = False)
ax – (Default value = None)
sim_type – (Default value = ‘single’)
-
plot_xy_on_trijunction
(ax=None, col='k', equalAx=True, plotAdhesion=True, cortexwidth=2, plot_adhesion_forces=True, plot_adhesion_at_specific_locations=False, lagrangian_tracking=False, plot_pressure=False, plot_tension=False, label=None, plot_stress=False, plot_stress_axis=False, sim_type='single', plot_shape=False, label_size=26)[source]¶ Plot the ys x for the junction and reflect/rotate if necessary.
- Parameters
ax – (Default value = None)
col – (Default value = ‘k’)
equalAx – (Default value = True)
plotAdhesion – (Default value = True)
cortexwidth – (Default value = 2)
plot_adhesion_forces – (Default value = True)
plot_adhesion_at_specific_locations – (Default value = False)
lagrangian_tracking – (Default value = False)
plot_pressure – (Default value = False)
plot_tension – (Default value = False)
label – (Default value = None)
plot_stress – (Default value = False)
plot_stress_axis – (Default value = False)
sim_type – (Default value = ‘single’)
plot_shape – (Default value = False)
label_size – (Default value = 26)
-
prune_adhesion_data
()[source]¶ Remove all locally stored adhesion data. This data is usually permanently held by the Epithelium class.
-
refine_mesh
(method='spacing')[source]¶ Refine the mesh by adding nodes in regions of high curvature or low spacing
- Parameters
method (string) – (Default value = ‘spacing’) Method to use. Add mesh nodes based on their spacing or curvature.
-
scale_whole_cell_to_fit_adhesion_to_delta
(stretch_factor=1.01, delta_tol=1.05, update_adhesion_lengths=True)[source]¶ Applies a homogenous isotropic stretch/compression to the cell such that the shortest adhesion is delta
- Parameters
stretch_factor (float) – (Default value = 1.01) How much to scale the cortex
x -> x * stretch_factor
delta_tol (float) – (Default value = 1.05) Tolerance range for
delta
.update_adhesion_lengths (bool) – (Default value = True) Whether to perfrom an initial adhesion update.
-
smooth_variables
(fac=40, poly_order=1)[source]¶ Apply a savgol filter to smooth the cortex variables
- Parameters
fac (int) – (Default value = 40) Factor to determine window size, = num_nodes / fac, for smoothing.
poly_order (int) – (Default value = 1) Order of polynomial used for smoothing.
-
solve_bvp
()[source]¶ Solve BVP for cortex variables using Scipy’s BVP solver
- Returns
A tuple, whether solving was a success; a list, the new cortex variables:
[s, theta, gamma, x, y, C, D]
- Return type
(bool, list)
-
static
truncate_colormap
(cmap, minval=0.0, maxval=1.0, n=1000)[source]¶ Truncate a colourmap between 2 values
- Parameters
cmap – A matplotlib colourmap.
cmap – mpl cmap
minval – (Default value = 0.0) New max value for the colourmap.
minval – (Default value = 0.0) float
maxval – (Default value = 1.0) New min value for colourmap.
maxval – (Default value = 1.0) float
n – (Default value = 1000) Number of values in cmap.
n – (Default value = 1000) int
- Returns
The truncaetd cmap
- Return type
mpl cmap
-
update_adhesion_distances_identifiers_and_indices
(x=None, y=None, sort_by_distance=True, build_tree=False)[source]¶ Query the adhesion tree to build adhesion connections, storing the distance, id and index of the connection. The data is stored internally, with no output here.
- Parameters
x (np.array) – (Default value = None) x-coordintes to use. Defaults to stored cortex x variable.
y (np.array) – (Default value = None) y-coordintes to use. Defaults to stored cortex x variable.
sort_by_distance (bool) – (Default value = True) Whether to rganise the adhesion connections by distance.
build_tree (bool) – (Default value = False) Whether to fresh-build the adhesion tree.
-
update_adhesion_points
(points, ids, spacing)[source]¶ Store points that fast adhesions can adhere to.
- Parameters
points (list) – A list of (x,y) coordinates, which the cell cortex xan adhere to.
ids (list) – A list of the cell identifiers that those adhesion points came from.
spacing (list) – A list of the discretised spacing (on the other cortices) for those adhesion points.
-
update_deformed_mesh_spacing
(x=None, y=None)[source]¶ Get the spacing between mesh nodes in the deformed configuration
- Parameters
x (np.array) – (Default value = None) x-coordinates to use. Defaults to stored cortex x variable.
y (np.array) – (Default value = None) y-coordinates to use. Defaults to stored cortex y variable.
-
update_prestrains
()[source]¶ Update the values of prestretches (called prestrain here based on the identity of (fast) adhesion connections
-
update_reference_configuration_to_current
()[source]¶ Update the Lagrangian coordinate S_0 to the current configuration from the stretches and prestretches: S_0 <- s = S_0 * stretch * prestretch
-