Segmenting hearts and screening congenital heart diseases in mice
Project description
Screening of Congenital Heart Diseases (CHD) in mice with 3D CTscans.
Napari plugin: MouseCHD Napari plugin
Installation
- Create virtual environment:
conda create -n mousechd python=3.9
- Activate the environment:
conda activate mousechd
- Install the package:
pip install mousechd
How to use
It is recommended that your data are structured in the following way:
DATABASE # your database name
└── raw # raw folder to store raw data
├── NameOfDataset1 # name of dataset
│ ├── images_20200206 # folder to store images recieved on 20200206 [YYYYMMDD]
│ ├── masks_20210115 # folder to store masks recieved on 20210115 [YYYYMMDD]
│ ├── masks_20210708 # folder to store masks recieved on 20210708 [YYYYMMDD]
│ └── metadata_20210703.csv # metadata file received on 20210703 [YYYYMMDD]
└── NameOfDataset2 # name of another dataset
└── images_20201010
......
(1) Preprocessing
This step standardizes the data into the same spacing and view.
- Data format supported: "DICOM", "NRRD", "NIFTI"
- Mask data format supported: "TIF2d", "TIF3d", "NIFTI"
mousechd preprocess.py \
-database <PATH/TO/DATABASE> \
-maskdir <PATH/TO/MASK/DIR> \
-masktype NIFTI \
-metafile <PATH/TO/META/FILE> \ # csv file with headers: "heart_name", "Stage", "Normal heart", "CHD1", "CHD2", ...
-outdir "DATA/processed"
(2) Heart segmentation
mousechd segment -indir "DATA/processed/images" -outdir "OUTPUTS/HeartSeg"
(3) CHD detection
mousechd test_clf \
-imdir "DATA/processed/images" \
-maskdir "OUTPUTS/HeartSeg" \
-stage ["eval"|"test"] \
-label [PATH/TO/CSV/TEST/FILE] \ # <optional> if stage is "eval", -label must be specified
-outdir [PATH/TO/OUTPUT/DIRECTORY]
Retraining
You have the option to retrain the model using your custom dataset. After completing the heart segmentation, resample to augment the data, followed by data splitting and subsequence model retraining.
Click here to expand the instruction
(1) Resample
mousechd resample \
-imdir "DATA/processed/images" \
-maskdir "OUTPUTS/HeartSeg" \
-outdir "DATA/resampled" \
-metafile "DATA/processed/metadata.csv" \
-save_images 1
(2) Split data
mousechd split_data \
-metafile "DATA/processed/metadata.csv" \
-outdir "DATA/label" \
-val_size 0.2
(3) Train
mousechd train_clf \
-exp_dir "OUTPUTS/Classifier" \
-exp [EXPERIEMENT_NAME] \
-data_dir "DATA/resampled" \
-label_dir "DATA/label/x5_base/1fold" \
-epochs [NUM_EPOCHS]
(4) Evaluate retrained model
mousechd test_clf \
-model_dir "OUTPUTS/Classifier/<EXPERIMENT_NAME>" \
-imdir "DATA/processed/images" \
-maskdir "OUTPUTS/HeartSeg" \
-stage ["eval"|"test"] \
-label [PATH/TO/CSV/TEST/FILE] \ # <optional> if stage is "eval", -label must be specified
-outdir [PATH/TO/OUTPUT/DIRECTORY]
GradCAM
mousechd explain \
-exp_dir "OUTPUTS/Classifier/<EXPERIMENT_NAME>" \
-imdir "DATA/resampled/images" \
-outdir [PATH/TO/OUTPUT/DIRECTORY]
Analysis
A detailed analysis can be found in the folder analysis.
For some visualization, Napari is required. To install: pip install "napari[all]
.
Acknowledgements
- INCEPTION funding: INCEPTION
- GPU server technical support: Quang Tru Huynh
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for mousechd-0.0.3a0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1777f5921a4d09dceaf8355adf07bacf321f8865f925fda375e58d3ca289f5fa |
|
MD5 | 8f1ab3b6ba7355bee16e52ce2a24b186 |
|
BLAKE2b-256 | dfe54c450c52c33ef9a5bfd5ebc014f3cc03f812b34b8a3c135627d8fec63663 |