Implementation for Establishment of a morphological atlas of the Caenorhabditis elegans embryo using deep-learning-based 4D segmentation, by Jianfeng Cao#, Guoye Guan#, Vincy Wing Sze Ho#, Ming-Kin Wong, Lu-Yan Chan, Chao Tang, Zhongying Zhao, & Hong Yan.
# equal contribution
- 2023.12 We have developed desktop software CShaperApp that integrates the training, prediction and analysis parts of CShaper framework. The backbone and user interface have been improved. We highly recommend users to process the dataset with this open-source software.
This implementation is based on Tensorflow and python3.6, trained with one GPU NVIDIA 2080Ti on Linux. Steps for training and testing are listed as below.
- Intsall dependency library:
conda env create -f requirements.yml
- Train: Download the data from this link and put it into
./Data
folder, Set parameters in./ConfigMemb/train_edt_discrete.txt
, then runpython train.py --cf ./ConfigMemb/train_edt_discrete.txt
- Test: Put the raw data (membrane and nucleus stack, and CD files from AceTree)
into
./Data/MembValidation/
. The pretrained model is available through the Google Drive, which should be unzip to./ModelCell/
. Example data is also available through previous data link. Set parameters in./ConfigMemb/test_edt_discrete.txt
and runThen binary membrane and initial segmented cell are saved inpython test_edt.py ./ConfigMemb/test_edt_discrete.txt
./ResultCell/BothWithRandomnet
andBothWithRandomnetPostseg
, respectively. To unify the label of cell based on AceTree file, runpython shape_analysis.py ./ConfigMemb/shape_config.txt
- Structure of folders: (Folders and files in
.gitignore
are not shown in this repository)Result folders will be automatically built. Codes for the normalization (e.g., resize, rotation) on the segmentation results are available at CShaperPost.DMapNet is used to segmented membrane stack of C. elegans at cellular level DMapNet/ |--configmemb/: parameters for training, testing and unifying label |--Data/: raw membrane, raw nucleus and AceTree file (CD**.csv) |--MembTraining/: image data with manual annotations |--MembValidation/: image data to be segmented |--ModelCell/: trained models |--ResultCell/: Segmentation result |--BothWithRandomnet/: Binary membrane segmentation from DMapNet |--BothWithRandomnetPostseg/: segmented cell before and after label unifying |--NucleusLoc/: nucleus location information and annotation |--StatShape/: cell lineage tree (with time duration) |--ShapeUtil/: utils for unifying cells and calculating robustness |--AceForLabel/: multiple AceTree files for generating namedictionary |--RobustStat/: nucleus lost sration and cell surface... |--TemCellGraph/: temporary result for calculating surface, volume... |--Util/: utils for training and testing
jfcao3-c(at)my.cityu.edu.hk
If our work is helpful for you, please consider the citation.
@article{cao2020establishment,
title={Establishment of a morphological atlas of the Caenorhabditis elegans embryo using deep-learning-based 4D segmentation},
author={Cao, Jianfeng and Guan, Guoye and Ho, Vincy Wing Sze and Wong, Ming-Kin and Chan, Lu-Yan and Tang, Chao and Zhao, Zhongying and Yan, Hong},
journal={Nature communications},
volume={11},
number={1},
pages={6254},
year={2020},
publisher={Nature Publishing Group UK London}
}