The code contained in the strain-mapping project was developed for work in the Mechanics of Morphogenesis/Davidson Lab and described in various papers including:
Tracy L. Stepien, Holley E. Lynch, Shirley X. Yancey, Laura Dempsey, and Lance A. Davidson, Using a continuum model to decipher the mechanics of embryonic tissue spreading from time-lapse image sequences: An approximate Bayesian computation approach, PLOS ONE, 14 (2019), e0218021, DOI: 10.1371/journal.pone.0218021.
A strain mapping method is developed to calculate the deformation of a tissue via estimates of the engineering/Cauchy strains ε_{xx}, ε_{yy}, ε_{xy}, and ε_{yx}, and the displacement gradient ∇u between two images in a time-lapse sequence.
Images: A time-lapse sequence of images is needed that is landmark-rich image, for example, with textures of pigmentation, sub-cellular organelles, dye, or fluorescence.
Applications: The code in this package is developed for ImageJ/Fiji and MATLAB. Furthermore, bUnwarpJ is a required plug-in for ImageJ/Fiji.
Before strain mapping can be computed, the first step is to segment the time-lapse sequence of images so that a mask is created showing where the tissue is in the image. The relevant ImageJ code is located in the segmentation folder:
- SingleRoiBatchLevelSetMacro.ijm: run this program in ImageJ to segment a time-lapse sequence with one ROI opened
- BatchLevelSetMacro.ijm: run this program in ImageJ to segment a time-lapse sequence with a small box ROI and large box ROI
The relevant ImageJ code for strain mapping is located in the strain_maps folder:
- DisplacementMaps.txt: place this file into the ImageJ>macros folder
- StrainMapsFromDisplacementMaps.txt: place this file into the ImageJ>macros folder
- Batch_Strain_Maps.ijm: run this program in ImageJ to calculate the strain maps for a time-lapse image
The relevant ImageJ code for cropping or extending the image/segmentation files (so that they are smaller to reduce computational cost but also to limit the numerical boundary effects on the strain mapping) is located in the crop_extend folder:
- croppingOrExtending_amount_and_newfiles.ijm: run this program in ImageJ to crop or extend the image and segmentation to reduce computational costs and limit numerical boundary effects
The relevant ImageJ code for calculating the area of segmented images is located in the area_extraction folder:
- gettingareas.ijm: run this program in ImageJ to extract the areas of a segmented image in pixels
The relevant ImageJ code for finding the boundary locations of segmented images is located in the boundary_extraction folder:
- gettingboundaries.ijm: run this program in ImageJ to extract the boundary locations of a segmented image in pixels
The relevant MATLAB code for inputting ImageJ data from the Strain Mapping Method (strain .tiff image files) and Boundary Extraction (.txt files) and converting into MATLAB .mat files is located in the convert_imagej_to_matlab folder:
- prepare_data_onelayer.m: run this program in MATLAB to convert strain and boundary ImageJ data to MATLAB data
- prepare_data_subfun.m: this is a sub-function of the previous file - place this file into the same folder as prepare_data_onelayer.m
Copyright 2012-2019 Lance Davidson, Holley Lynch, Tracy Stepien. This is free software made available under the MIT License. For details see the LICENSE file.