Organ-omics is intended to accelerate research on organ-based radiomics and to improve reproducibility across such studies. Organ-omics lets you automatically create organ contours using TotalSegmentator. It then extracts radiomic features using PyRadiomics from these contours across a whole dataset. Its contouring pipeline allows you to create custom organ sets with no additional code through a JSON config file. Organ-omics can be used as an end-to-end pipeline and is modular, using NIfTi files each step of the way, allowing you to use either the organ contouring or the radiomic extraction part on their own.
We recommend installing PyRadiomics (required depndency) using the GitHub main branch since the PyPi distribution seems broken (see this issue)
pip install git+https://github.com/AIM-Harvard/pyradiomics.git
pip install -i https://test.pypi.org/simple/ organomics
You can also install it from source
git clone https://github.com/Zhack47/Organ-omics.git
cd organomics
pip install -e .
Your data should be organized following the nnUNet dataset format:
dataset_path
├── dataset.json
└── imagesTr/
├── P001_0000.nii.gz
├── P001_0001.nii.gz
├── P002_0000.nii.gz
├── P002_0001.nii.gz
├── ...
└── labelsTr/
├── The labelsTr folder can be empty as it will be used to store organ contours once they are extracted. If you want to extract radiomic features of an already contoured lesion class, labelsTr can contain the lesions contours for each patient.
The file dataset.json should be constructed as shown in this example
{
"name": "Test", // Dataset name
"description": "Test 1", // Dataset description
"channel_names": {
// Needs at least one channel named CT for organ contouring
"0": "CT",
"1": "PT"
},
// Target isotropic spacing for resampling
"spacing": [2,2,2],
// List of organ groups
"labels":
{
"background": "0",
"heart": "1",
"lungs": "2",
"thoracic vertebrae": "3",
"pectoralis": "4",
"rectus": "5"
},
// For each task, the name of the task is defined
// then the mapping from task organs to organ groups
// is defined in correspondence
// The priority order (i.e. which task will overwrite the labels
// the others) is defined by the position in the list
"tasks":[
{// First task
// Task name (must be from TotalSegmentator)
"name": "total",
// Correspondence dictionnary
"correspondence":
{
"heart": ["heart"],
"lungs": [
"lung_upper_lobe_left", "lung_lower_lobe_left",
"lung_upper_lobe_right","lung_middle_lobe_right",
"lung_lower_lobe_right"],
"thoracic vertebrae": [
"vertebrae_T1", "vertebrae_T2", "vertebrae_T3",
"vertebrae_T4", "vertebrae_T5", "vertebrae_T6",
"vertebrae_T7", "vertebrae_T8", "vertebrae_T9",
"vertebrae_T10","vertebrae_T11","vertebrae_T12"
]
}
},
{// Second task
"name": "abdominal_muscles",
"correspondence":{
"pectoralis": [
"pectoralis_major_right", "pectoralis_major_left"
],
"rectus": [
"rectus_abdominis_right", "rectus_abdominis_left"
]
}
}
]
}
Multiple tasks from TotalSegmentator can be combined to create custom organ sets.
Using the following command in the root folder, organs contours will be saved in compressed NIfTi (.nii.gz) files in the <contours_output_path>/labelsTr folder.
Organomics_contour_dataset -d <dataset_path> -o <contours_output_path> --json-file-path <json_file_path>
Once the organ contours have been extracted and stored in the labelsTr folder of the dataset, use the following command to compute the organ radiomics.
Organomics_extract_radiomics -d <dataset_path> -o <csv_file_organomics_output_path> --json-file-path <json_file_path>
Radiomic feature values will be stored in the file defined with the -o option.
Performance obtained using Radiomics for survival estimation)
If you use Organ-omics in your research, please cite:
Zacharia Mesbah (2025). Organ-omics: A Python package for organ-radiomics extraction.
A paper has been submitted for review
Wasserthal, J., Breit, H.-C., Meyer, M.T., Pradella, M., Hinck, D., Sauter, A.W., Heye, T., Boll, D., Cyriac, J., Yang, S., Bach, M., Segeroth, M., 2023. TotalSegmentator: Robust Segmentation of 104 Anatomic Structures in CT Images. Radiology: Artificial Intelligence. https://doi.org/10.1148/ryai.230024
van Griethuysen, J. J. M., Fedorov, A., Parmar, C., Hosny, A., Aucoin, N., Narayan, V., Beets-Tan, R. G. H., Fillion-Robin, J. C., Pieper, S., Aerts, H. J. W. L. (2017). Computational Radiomics System to Decode the Radiographic Phenotype. Cancer Research, 77(21), e104–e107. https://doi.org/10.1158/0008-5472.CAN-17-0339