This project explores how curvature and geometric constraints shape 3D epithelial shells during development. Using computational models validated on hundreds of cysts, we uncover topological rules that govern epithelial organization.
To model cysts, the main code is parallelVoronoi.m
This code launches in parallel the function voronoiModel.m
Both can be found inside src/cysts/
We study monolayer MDCK II cysts that can be arranged in spheres or oblate spheroids due to the proportions of spheroids found in nature (see CartoCell).
Because of that, the model consists of two concentric spheroids where a geodesic Voronoi tessellation is developed. Seeds are placed on the inner surface, where Lloyd iterations are performed. Then, seeds are projected to the outer surface.
The model is created based on the following inputs:
savePath: Path where results will be savedcells: Number of cells of the Voronoi tessellationlloyd: Number of Lloyd iterationsruns: Number of times to run the same conditionsurfaceRatio: Dictionary{numberOfCells: surfaceRatio}that determines the distance between inner and outer surfacesaxis1: Axis shape control;100will make a sphere; '75' will make an oblate spheroid;nDots: Number of dots used for the simulation (resolution)minimumSeparation: Poisson-disk radius runs
The result of this code will be:
- A
.matfile for each Lloyd iteration with the information of the inner surface Voronoi tessellation. - A
.matfile for the outer surface of the last Lloyd iteration.
For data extraction, the main code is src/cysts/check3DInfoBULK.m, which checks if every cyst has the needed info and, if not, creates the result table.
To model embryos, the main code is getSyntheticEmbryosMiddleCells_bulk.m.
This code launches in parallel the function getSyntheticEmbryoMiddleCells.m.
Both can be found inside src/embryos/
Embryos, unlike cysts, are not monolayer, do not have a lumen, and tend to behave like spheres.
Given a whole sphere of radius R, N seeds will be located inside it.
Seeds will be placed at a radius r < R, but to simulate the inner cells, some of the cells (quantity defined by probability P) will be placed inwards of the concentric spherical surface r, at a random distance between two spheres of radii d and D (d<D<r).
By default:
- All Voronoi tessellations undergo 5 Lloyd iterations.
- Each iteration will be saved separately in
.tifformat files.
R: Radius of the spherer: Radius of the spherical surface where most of the seeds will be placedN: Number of seedsd: Radius of internal limit of seed positioningD: Radius of external limit of seed positioningP: Probability of a cell being an inner cellD2: Minimum distance between seedsnEmbryos: Number of embryos to be created
A .tif file for each Lloyd iteration of each embryo.
To extract data, since Voronoi tessellations are constructed using images, it is possible to use code from CartoCell.
You can access the adapted code for feature extraction here and here
Code for getting all feasible configurations is available here
Code for getting fast Voronoi to calculate the ranking is available here

