Accurate Segmentation for Intracellular Organelle Networks based on Low-level features and Primary Structure Invariance
Jiaxing Huang, Yaoru Luo, Yuanhao Guo, Wenjing Li, and Ge Yang
J. Huang, Y. Luo, and Y. Guo contributed equally to this work.
A PyTorch implementation of MHC-Net based on the paper Accurate Segmentation for Intracellular Organelle Networks based on Low-level features and Primary Structure Invariance.
Contact: Jiaxing Huang [email protected].
If you have any questions, please feel free to contact us!
To develop deep learning segmentation models, we construct two custom image datasets: ER and MITO, for the ER network and the mitochondrial network, respectively. To test the generalization capability of our deep learning models, we also use two public datasets of the retinal blood vessel network: DRIVE and STARE.
Please generate ".txt" files for train data and test data separately. In the ".txt" file, each line consists of the path of image and mask corresponding to the image.
For example:
/datasets/directory/train_mito.txt
└── .../MITO/train/images/20_h384_w384.tif .../MITO/train/masks/20_h384_w384.tif
/datasets/directory/test_mito.txt
└── .../MITO/test/images/20_h384_w384.tif .../MITO/test/masks/20_h384_w384.tif
Setting up for this project.
To install all the dependencies, please run the following:
pip install -r requirements.txt or conda install --yes --file requirements.txt
In this project, we used five models UNet, UNet++, HRNet, DeeplabV3+ and MHC-Net in the experimental phase. To facilitate the training of the different models, we created five different training files.
Below lines will run the training code with default setting in the file.
python train_deeplab.py
python train_hrnet.py
python train_mhcnet.py
python train_unet.py
python train_unet_plus.py
In order to obtain segmentation results and evaluate model's performance under different thresholds, you can run the following line:
Set up
model_choice = ['unet', 'unetPlus', 'deeplab', 'MHCnet_Single_Loss','MHCnet_Up_Sampling_Loss',
'MHCnet_Multi_Layer_Loss','MHCnet_Hierarchical_Fusing_Loss']
dataset_list = ['er', 'retina', 'mito', 'stare']
txt_choice = ['test_drive.txt', 'train_drive.txt', 'train_mito.txt', 'test_mito_cbmi.txt', 'train_er.txt',
'test_er.txt', 'test_stare.txt', 'train_stare.txt']
Run
python inference.py
If you find MHC-Net useful in your research, please consider citing:
TODO
This work was supported in part by the National Natural Science Foundation of China (grant 91954201 under the major research program “Organellar interactome for cellular homeostasis” and grant 31971289) and the Strategic Priority Research Program of the Chinese Academy of Sciences (grant XDB37040402). (Corresponding author: Ge Yang).