Giter VIP home page Giter VIP logo

fearless's Introduction

Contributors Forks Stargazers Issues MIT License CI status

4D reconstruction of developmental trajectories
using spherical harmonics

Twitter: giodalmasso

๐Ÿ  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


video


Datasets

All the data can be dowloaded from --> https://www.ebi.ac.uk/biostudies/studies/S-BIAD441 (folders /limbs-noFlank/ and /limbs+flank/).

Pipeline

Follow the pipeline steps below to reproduce the analysis results.

python pureSPharm.py

  • 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, where lmax 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/ where N is the number of grid intervals on the sphere and deg_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.

python makeVoxel.py

  • 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 variable sampleSize 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.

python computeAllIntesities.py

  • 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 folder res/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/ where radiusDiscretisation is the discretisation of the radii of the sphere and N is the number of grid intervals on the sphere. Changing in the code the variable radiusDiscretisation and N 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.

python morphing.py

  • 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 folder res/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/ and res/morphing_sampleSize-radDisc-N-degFit-lmax/ (where sampleSize is voxel dimension of the data, radDisc is the discretisation of the radii of the sphere and N is the number of grid intervals on the sphere, degFit is the degree of interpolation of the spherical harmonics coefficients and lmax 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.

python utils.py

  • Description: contains some basic functions used.


Authors

๐Ÿ‘ค Giovanni Dalmasso

๐Ÿ‘ค Marco Musy

๐Ÿค Contributing

Contributions, issues and feature requests are welcome!
Feel free to check issues page.

Show your support

Give a โญ๏ธ if this project helped you!

Cite the code: DOI

vedo_powered

embl

๐Ÿ“ License

Copyright ยฉ 2021 Giovanni Dalmasso.
This project is MIT licensed.

fearless's People

Contributors

gioda avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

timeanddoctor

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.