Skip to content

This repository contains code for cell-scaffold contact detection from a pair of cell and scaffold fluorescent z-stacks.

License

Notifications You must be signed in to change notification settings

usnistgov/cell-scaffold-contact

Repository files navigation

3D Measurement of Stem Cell-Scaffold Interactions Based on Cell-Scaffold Contact Shapes

This source code repository contains the algorithms used to segment cells and scaffolds from co-registered pairs of fluorescent confocal z-stacks. The algorithms are designed to perform:

  • Cell segmentation (Java 1.8)
  • Statistical model-based segmentation of spun coat and fiber scaffold types (Matlab 2015a)
  • Planar geometrical model-based segmentation of spun coat scaffolds (Matlab 2015a)
  • Cylindrical geometrical model-based segmentation of fiber scaffolds (Java and C++)
  • Skeleton and diameter extraction (C++)

The application of these algorithms have been described at https://isg.nist.gov/deepzoomweb/data/stemcellmaterialinteractions and includes biological hypothesis, imaging description, and data description. The data and visualization of the cell-scaffold contact data are also available from https://isg.nist.gov/deepzoomweb/data/stemcellmaterialinteractions.

To run each algorithm, please, use the following functions with test files available at https://isg.nist.gov/deepzoomweb/fileBrowsing/3Dcontact/RawCropped/:

  • Cell segmentation
    • Java class segment-validate/src/pipeline3D/Image3DProcessingPipeline.java
    • Input arguments: inputImagesFolder imagesFileNameExtension outputDirectory outputCSVFileName thresholdMinimumValue thresholdMaximumValue thresholdStep voxelDimX voxelDimY voxelDimZ voxelDimUnit method
      • Method can be: MinError, Otsu, EGTSobel2D, EGTSobel3D, Triangle or DarkFrames (MinError was used for these test files)
      • Example:
        • /path/to/inputImagesFolder tif /path/to/outputDirectory outCSVFile.csv 1 65535 1 0.12 0.12 0.46 um MinError
    • Large images may require to increase the JVM max memory size, using the option -Xmx (for example -Xmx10G for 10GB)
  • Statistical model-based segmentation of spun coat and fiber scaffold types
    • Please refer to the file segmentation-imagemodels/src/CellScaffoldContact/ReadMe.txt
      • Section "II. Cell-Scaffold Contact Point Estimation: Statistical Models"
  • Planar geometrical model-based segmentation of spun coat scaffolds
    • Please refer to the file segmentation-imagemodels/src/CellScaffoldContact/ReadMe.txt
      • Section "III. Cell-Scaffold Contact Point Estimation: Planar Geometrical Models for Spun Coat"
  • Cylindrical geometrical model-based segmentation of fiber scaffolds
    • Convert a set of acquired tif files to a FITS file
      • Java class segment-validate/src/io/ConvertTiffStackToFITS.java
      • Input arguments: inputImagesFolder outputDirectory
    • Convert FITS to NII files
      • Required: CMake, make and ITK library (https://itk.org/ITK/resources/software.html)
      • Build Itk2fits project from itk2fits folder:
        • cmake CMakeLists.txt
        • make all
      • Run Itk2fits program:
        • Options: -i, --input Load 3D image from , -o, --output Save results to , -x, --x-spacing Force voxel spacing in X direction, -y, --y-spacing Force voxel spacing in Y direction, -z, --z-spacing Force voxel spacing in Z direction, /?, --help Display this help and exit

        • Examples:

          • itk2fits -i input.fits -o output.nii
          • itk2fits -i input.fits -o output.nii -x 0.12 -y 0.12 -z 0.462
    • Run modified vesselness filter on NII files:
    • Run Java class segment-validate/src/pipeline3D/FiberScaffold2BinaryContact.java on the nii files generated by Horvess
      • Input parameters can be modified direclty in the batchProcess and batchProcessVR methods, the method to call can be selected in the Main method
  • Skeleton and diameter extraction
    • Required: CMake, make and ITK library (https://itk.org/ITK/resources/software.html)
    • Required: Alglib library source files must be placed in a folder named alglib inside of the treebuild folder (Alglib for C++ can be downloaded from http://www.alglib.net/download.php)
    • Build treebuild project from treebuild folder: * cmake CMakeLists.txt * make all
      • Run treebuild program:
        • Options: -i, --input-image loads binary image from -m, --median-image save median filtered image to -k, --skeleton-image save skeleton image to -x, --index-tree save tree with index coordinates to -d, --distance-tree save tree with distaance coordinates and radius estimations to -s, --smoothed-tree save smoothed tree to -r, --median-radius median filter radius (default 2) -g, --gamma for gamma higher then 1, the smaller radius of ellipse is favored (default 4) /?, --help Display this help and exit.

        • Example:

          • treebuild -i input.nii -m median.nii -k skeleton.nii -x index-tree.txt -d distance-tree.txt -s smoothed-tree.txt

About

This repository contains code for cell-scaffold contact detection from a pair of cell and scaffold fluorescent z-stacks.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published