Warning: This project is currently in alpha stage and may be subject to major changes
This repository presents a suite of unified scripts to standardize, preprocess, and integrate 882,774 images from 20 open-source medical imaging datasets, spanning modalities such as X-ray, CT, and MR. The scripts allow for seamless and fast download of a diverse medical data set. We create a unified set of annotations allowing for merging the datasets together without mislabelling. Each dataset is preprocessed with a custom sklearn pipeline. The pipeline steps are reusable across the datasets. The code was designed so that preorocessing a new dataset is simple and requires only reusing the available pipeline steps with customization performed through setting the appropriate values of the pipeline params.
The labels and segmentation masks were unified to be compliant with RadLex ontology.
| uid | Dataset | Modality | TASK |
|---|---|---|---|
| 0 | KITS-23 | CT | Classification/Segmentation |
| 1 | CoronaHack | XRAY | Classification |
| 2 | Alzheimers Dataset | MRI | Classification |
| 3 | Brain Tumor Classification | MRI | Classification |
| 4 | COVID-19 Detection X-Ray | XRAY | Classification |
| 5 | Finding and Measuring Lungs in CT Data | CT | Segmentation |
| 6 | Brain CT Images with Intracranial Hemorrhage Masks | CT | Classification |
| 7 | Liver and Liver Tumor Segmentation | CT | Classification, Segmentation |
| 8 | Brain MRI Images for Brain Tumor Detection | MRI | Classification |
| 9 | Knee Osteoarthritis Dataset with Severity Grading | XRAY | Classification |
| 10 | Brain Tumor Progression | MRI | Segmentation |
| 11 | Chest X-ray 14 | XRAY | Classification |
| 12 | COCA- Coronary Calcium and chest CTs | CT | Segmentation |
| 13 | BrainMetShare | MRI | Segmentation |
| 14 | CT-ORG | CT | Segmentation |
| 17 | LIDC-IDRI | CT | Segmentation |
| 18 | CMMD | MG | Classification |
poetry installDue to the copyright restrictions of the source datasets, we can't share the files directly. To obtain the full dataset you have to download the source datasets yourself and run the preprocessing scripts.
0.KITS-23
- Clone the KITS-23 repository.
- Enter the KITS-23 directory and install the packages with pip.
cd kits23 pip3 install -e .
- Run the following command to download the data to the
dataset/folder.kits23_download_data - Fill in the
source_pathandtarget_pathKITS-23Pipeline()inconfig/runner_config.py. e.g.KITS23Pipeline( path_args={ "source_path": "kits23/dataset", # Path to the dataset directory in KITS23 repo "target_path": TARGET_PATH, "labels_path": "kits23/dataset/kits23.json", # Path to kits23.json }, dataset_args=dataset_config.KITS23 ),
1. Xray CoronaHack -Chest X-Ray-Dataset
1. Xray CoronaHack -Chest X-Ray-Dataset
- Go to CoronaHack page on Kaggle.
- Login to your Kaggle account.
- Download the data.
- Extract
archive.zip. - Fill in the
source_pathto the location of thearchivefolder inCoronaHackPipeline()inconfig/runner_config.py.
2. Alzheimer's Dataset
2. Alzheimer's Dataset ( 4 class of Images)
- Go to Alzheimer's Dataset page on Kaggle.
- Login to your Kaggle account.
- Download the data.
- Extract
archive.zip. - Fill in the
source_pathto the location of thearchivefolder inAlzheimersPipeline()inconfig/runner_config.py.
3. Brain Tumor Classification (MRI
3. Brain Tumor Classification (MRI)
- Go to Brain Tumor Classification page on Kaggle.
- Login to your Kaggle account.
- Download the data.
- Extract
archive.zip. - Fill in the
source_pathto the location of thearchivefolder inBrainTumorClassificationPipeline()inconfig/runner_config.py.
4. COVID-19 Detection X-Ray
4. COVID-19 Detection X-Ray
- Go to COVID-19 Detection X-Ray page on Kaggle.
- Login to your Kaggle account.
- Download the data.
- Extract
archive.zip. - REMOVE TrainData folder. We do not want augmented data at this stage.
- Fill in the
source_pathto the location of thearchivefolder inCOVID19DetectionPipeline()inconfig/runner_config.py.
5. Finding and Measuring Lungs in CT Dat
5. Finding and Measuring Lungs in CT Data
- Go to Finding and Measuring Lungs in CT Data page on Kaggle.
- Login to your Kaggle account.
- Download the data.
- Extract
archive.zip. - Fill in the
source_pathto the location of thearchive/2d_imagesfolder inFindingAndMeasuringLungsPipeline()inconfig/runner_config.py. Fill inmasks_pathwith the location of thearchive/2d_masksfolder.
6. Brain CT Images with Intracranial Hemorrhage Masks
6. Brain CT Images with Intracranial Hemorrhage Masks
- Go to Brain With Intracranial Hemorrhage page on Kaggle.
- Login to your Kaggle account.
- Download the data.
- Extract
archive.zip. - Fill in the
source_pathto the location of thearchivefolder inBrainWithIntracranialHemorrhagePipeline()inconfig/runner_config.py. Fill inmasks_pathwith the same path as thesource_path.
7. Liver and Liver Tumor Segmentation (LITS)
7. Liver and Liver Tumor Segmentation (LITS)
- Go to Liver and Liver Tumor Segmentation.
- Login to your Kaggle account.
- Download the data.
- Extract
archive.zip. - Fill in the
source_pathto the location of thearchivefolder inCOVID19DetectionPipeline()inconfig/runner_config.py. Fill inmasks_pathtoo.
8. Brain MRI Images for Brain Tumor Detection
8. Brain MRI Images for Brain Tumor Detection
- Go to Brain MRI Images for Brain Tumor Detection page on Kaggle.
- Login to your Kaggle account.
- Download the data.
- Extract
archive.zip. - Fill in the
source_pathto the location of thearchivefolder inBrainTumorDetectionPipeline()inconfig/runner_config.py.
9. Knee Osteoarthrithis Dataset with Severity Grading
9. Knee Osteoarthrithis Dataset with Severity Grading
1. Go to Knee Osteoarthritis Dataset with Severity Grading.
2. Login to your Kaggle account.
3. Download the data.
4. Extract archive.zip.
5. Fill in the source_path to the location of the archive folder in COVID19DetectionPipeline() in config/runner_config.py.
10. Brain-Tumor-Progression
10. Brain-Tumor-Progression
- Go to Brain Tumor Progression dataset from the cancer imaging archive.
11. Chest X-ray 14
11. Chest X-ray 14
- Go to Chest X-ray 14.
- Create an account.
- Download the
imagesfolder andDataEntry2017_v2020.csv.
12. COCA- Coronary Calcium and chest CTs
12. COCA- Coronary Calcium and chest CTs
- Go to COCA- Coronary Calcium and chest CTs.
- Log in or sign up for a Stanford AIMI account.
- Fill in your contact details.
- Download the data with azcopy.
- Fill in the
source_pathwith the location of thecocacoronarycalciumandchestcts-2/Gated_release_final/patientfolder. Fill inmasks_pathwithcocacoronarycalciumandchestcts-2/Gated_release_final/calcium_xmlxml file.
13. BrainMetShare
13. BrainMetShare
- Go to BrainMetShare.
- Log in or sign up for a Stanford AIMI account.
- Fill in your contact details.
- Download the data with azcopy.
14. CT-ORG
14. CT-ORG
- Go to CT-ORG page on Cancer imaging archive.
- Download the data.
- Extract
PKG - CT-ORG. - Fill in the
source_pathto the location of theOrganSegmentationsfolder inCtOrgPipeline()inconfig/runner_config.py. Fill inmasks_pathwith the same path as thesource_path.
17. LIDC-IDRI
17. LIDC-IDRI
- Go to LIDC-IDRI.
- Download "Images" using NBIA Data Retriever, and "Radiologist Annotations/Segmentations".
- Extract
LIDC-XML-only.zip. - Fill in the
source_pathinCmmdPipeline()inconfig/runner_config.pywith the location of themanifest-{xxxxxxxxxxxxx}/LIDC-IDRIdirectory. - Fill in the
masks_pathinCmmdPipeline()inconfig/runner_config.pywith the location of theLIDC-XML-only/directory.
18. CMMD - The Chinese Mammography Database
18. CMMD
- Go to CMMD.
- Download .tcia file from Data Access table.
- Download NBIA Data Retriver to be able to download images.
- Download CMMD_clinicaldata_revision.xlsx from Data Access table for labels information.
- Fill in the
source_pathinCmmdPipeline()inconfig/runner_config.pywith the location of themanifest-{xxxxxxxxxxxxx}/CMMDfolder. - Fill in the
labels_pathinCmmdPipeline()inconfig/runner_config.pywith the location of theCMMD_clinicaldata_revision.xlsxfile.
To preprocess the dataset that is not among the above, search the preprocessing folder. It contains the reusable steps for changing imaging formats, extracting masks, creating file trees, etc. Go to the config file to check which masks and label encodings are available. Append new labels and mask encodings if needed.
Overall the dataset should have 882,774 images in .png format
- CT - 500k+
- X-Ray - 250k+
- MRI - 100k+
- dcm
- jpg
- nii
- tif
- Shared radlex ontology
- Huggingface datasets
- Data dashboards
Install pre-commits https://pre-commit.com/#installation
If you are using VS-code install the extention https://marketplace.visualstudio.com/items?itemName=MarkLarah.pre-commit-vscode
To make a dry-run of the pre-commits to see if your code passes run
pre-commit run --all-files
Dependencies are handeled by poetry framework, to add new dependency run
poetry add <package_name>
To modify and debug the app, development in containers can be useful .
run_tests.sh