Data-driven quasiconformal morphodynamic flows
Data files
Mar 04, 2025 version files 103.88 GB
-
Mesh_Data.zip
103.88 GB
-
README.md
5.58 KB
Abstract
Temporal imaging of biological epithelial structures yields shape data at discrete time points, leading to a natural question: how can we reconstruct the most likely path of growth patterns consistent with these discrete observations? We present a physically plausible framework to solve this inverse problem by creating a framework that generalises quasiconformal maps to quasiconformal flows. By allowing for the spatio-temporal variation of the shear and dilation fields during the growth process, subject to regulatory mechanisms, we are led to a type of generalised Ricci flow. When guided by observational data associated with surface shape as a function of time, this leads to a constrained optimization problem. Deploying our data-driven algorithmic approach to the shape of insect wings, leaves and even sculpted faces, we show how optimal quasiconformal flows allow us to characterise the morphogenesis of a range of surfaces.
https://doi.org/10.5061/dryad.v41ns1s6t
Contributors
- Salem Mosleh: The University of Maryland Eastern Shore.
- Gary Choi: The Chinese University of Hong Kong
- L. Mahadevan: Harvard University
Description of the data and file structure
In each dataset, there are 30 times steps arranged into subfolders containing the vertices, faces, landmark indices, and other derivative quantities defining the mesh at a given timestep. The units of measurement in the dataset are dimensionless since each dataset is normalized according to its total area in the analysis.
There are two preprocessing Mathematica notebooks, one for planar and one for 3D surface data. After preprocessing, which generates extra files in the mesh folders, you can run the Python code for planar and surface meshes with and without landmarks (each case has a different script).
After this runs and saves the resulting files in the "Run Results" folder, the Mathematica files can plot results for the planar and surface cases separately.
The primary datasets used in the paper (see accompanying paper for further details and the corresponding figure for an illustration of the dataset) are:
"disc_shear" - A planar disc undergoing simple shear, expanding along the x-axis.
"buckeye_butterfly" - Data generated from images of developing butterfly wings as described in the text, taken from the reference below. This data is planar
"hawk_moth" - Data generated from images of developing moth wings as described in the text, taken from the reference below. This data is planar
"leaves" - 3D Data generated from growing avocado leaves, taken from the reference below. The datasets "leaves_long1,2" and "leaves_short" differ in the number of time points taken from the dataset.
"david_to_sphere" - Synthetic 3D data showing a face (Michelangelo's David) deforming into a sphere. There are different versions differing in the mesh resolution.
"expanding_sphere - A sphere that expands by a factor or 2.
"rotating_cylinder" - Synthetic 3D data of a rotating cylinder.
"sphere_ellipsoid" - A sphere expanding along an axis to form an ellipsoid.
"Wigly_Cylinder" - A cylinder undulating along its length (the z-axis) and deforming according to the Ricci flow or deforming into a cylinder.
"Old" - Contains datasets that have not been used in the final analysis. These differ in the number of vertices used and other details from the datasets that were used.
Datasets with similar names (_1k, _1.5k, etc.) represent variation in the number of vertices (1k = 1000 vertices).
Files and variables
File: Mesh_Data.zip
Description: The meshes are here. Each folder contains around 30 subfolders for the different times. The data is saved as .txt or csv.
The data, which starts in the .txt format, is converted in Mathemtica to .csv, which is the only form used in subsequent analysis in Python and visualization in Mathemtica.
Vertex positions are arranged into number_of_vertices X d, where d is 2 for planar datasets and 3 for 3D datasets. The variable number_of_vertices will be the number of all the vertices for "vertices.csv", "vertices_deformed.csv" (corresponding vectors on next timestep), "normal_deformed_intersection" (corresponding vectors on next timestep generated by normal intersection), and "normal.csv" (normal vectors). Others arrays will have a smaller number of vertices depending on the context, "landmark_displacement.csv" gives the displacement for landmark points, whose indices in the "vertices.csv" array is given in "landmark.txt". Similarly for "boundary_indices.csv" and corresponding "boundary_normal.csv".
"faceAreas.csv", "Cgaussian.csv", "Cmean.csv", "CurvatureTensors.csv": Give the area, Gaussian, mean, and components of the curvature tensor for each triangle.
"faces.csv" gives for each triangle the corresponding indices of the vertices that make it up. This contains the same data as "faces.txt" and "facesnew"
"GaussianFilter.csv"is a Gaissuan filter used to smooth out data across different triangles. It is number_of_faces * number_of_faces matrix (see text for more details).
"facesNeibs.csv" gives for each face the indices of the neighboring faces (as they appear in the "faces.csv" array).
"principal_curv1,2" and "principal_dir1,2" are the principal curvatures and directions at each vertex, which are used the calculation of the Gaussian and mean curvatures and "CurvatureTensors.csv"
"distance.csv" is the distance between the surfaces at time t and t+1, in the normal direction to the surface at time t.
"boundary_T.txt" and "boundary_TxN.txt" are the boundary tangents and boundary normal along the surface.
"gradCostMat.csv" is a matrix used in gradient computations as described in the manuscript.
Code/software
The software runs in Mathematica 13 and python 3.9
Access information
Other publicly accessible locations of the data:
Data was derived from the following sources:
- Nijhout HF, Cinderella M, Grunert LW. 2014 The development of wing shape in Lepidoptera: mitotic density, not orientation, is the primary determinant of shape. Evol. Dev. 16, 68–77
- Derr J, Bastien R, Couturier É, Douady S. 2018 Fluttering of growing leaves as a way to reach flatness: experimental evidence on Persea americana. J. R. Soc. Interface 15, 20170595
