🏠 Homepage
Computer based approach to recreate the continuous evolution in time and space of developmental stages from 3D volumetric images. This method uses the mathematical approach of spherical harmonics to re-map discrete shape data into a space in which facilitates a smooth interpolation over time.
This aproach was tested on mouse limb buds (from E10 to E12.5) and embryonic hearts (from 10 to 29 somites).
A key advantage of this method is that the resulting 4D trajectory takes advantage of all the available data, while also being able to interpolate well through time intervals for which there is little or no data.
This method/code can be used to recreate the 4D growth of embryonic organs from 3D image datasets of the paper:
Dalmasso et al., 4D reconstruction of murine developmental trajectories using spherical harmonics, Developmental
Cell (2022) --> https://doi.org/10.1016/j.devcel.2022.08.005
All the data can be dowloaded from --> https://www.ebi.ac.uk/biostudies/studies/S-BIAD441 (folders /limbs-noFlank/
and /limbs+flank/
).
Follow the pipeline steps below to reproduce the analysis results.
- Description: compute the spherical harmonics decomposition and reconstruction producing the 4D trajectory of the growing limb buds without the flank (original data can be found in the folder
/limbs-noFlank/
of the archive). - Usage: in the code,
DataPath
should be change to the location of the folder/limbs-noFlank/
downloaded from the archive. Run the code with the command:python pureSPharm.py lmax
, wherelmax
is the desired degree of shaprical harmonics expansion. - Results: the results will be stored in a floder created automatically of the form
res/pure_spharm-lmax-N-deg_fit/
whereN
is the number of grid intervals on the sphere anddeg_fit
the degree of interpolation of the spherical harmonics coefficients. If the results folder already exists the code will ask if the user wants to delete it and continue or stop.
- Description: convert a vtk mesh from the limb-data files into voxel data (original data can be found in the folder
/limbs+flank/
of the archive). - Usage: in the code,
DataPath
should be change to the location of the folder/limbs+flank/
downloaded from the archive. Run the code with the command:python makeVoxel.py
. - Results: ihe results will be stored in a floder created automatically of the form
res/TIF-signedDist_sampleSize100/
. Changing in the code the variablesampleSize
will also change the name of the results folder. If the results folder already exists the code will ask if the user wants to delete it and continue or stop.
- Description: compute the voxel intensities along the radii of a sphere of the voxel-limb-data obtained in the previous step.
- Usage: in the code,
DataPath
should be change to the location of the folderres/TIF-signedDist_sampleSize100/
obtained in the previous step. Run the code with the command:python computeAllIntesities.py
. - Results: ihe results will be stored in a floder created automatically of the form
res/allIntensities-sampleSize100-radiusDiscretisation-N/
whereradiusDiscretisation
is the discretisation of the radii of the sphere andN
is the number of grid intervals on the sphere. Changing in the code the variableradiusDiscretisation
andN
will also change the name of the results folder. If the results folder already exists the code will ask if the user wants to delete it and continue or stop. The results will be in the form of numpy files, one for each limb.
- Description: produce the 4D trajectory of the growing limb buds with the flank using the voxel intensities computed in the previous step.
- Usage: in the code,
path
should be change to the location of the folderres/allIntensities-sampleSize100-radiusDiscretisation-N/
obtained in the previous step. Run the code with the command:python morphing.py
. - Results: two folder will be created automatically,
res/CLM/morphing_sampleSize-radDisc-N-degFit-lmax/
andres/morphing_sampleSize-radDisc-N-degFit-lmax/
(wheresampleSize
is voxel dimension of the data,radDisc
is the discretisation of the radii of the sphere andN
is the number of grid intervals on the sphere,degFit
is the degree of interpolation of the spherical harmonics coefficients andlmax
is the desired degree of shaprical harmonics expansion). In the first one, a matrix containing the shperical harmonics coefficients will be stored (in the form of numpy file) and in the second the volumes and isosurfaces of the limbs forming the 4D trajectory. If the results folders already exist the code will ask if the user wants to delete them and continue or stop.
- Description: contains some basic functions used.
👤 Giovanni Dalmasso
- Website: https://tinyurl.com/yc6pbyb2
- Twitter: @giodalmasso
- Github: @gioda
- LinkedIn: @giovanni-dalmasso
👤 Marco Musy
- Website: https://tinyurl.com/3zy9zmmy
- Github: @marcomusy
Contributions, issues and feature requests are welcome!
Feel free to check issues page.
Give a ⭐️ if this project helped you!
Copyright © 2021 Giovanni Dalmasso.
This project is MIT licensed.