Skip to main content


AutoRadiomics

License CI Build codecov

Simple pipeline for experimenting with radiomics features

Streamlit Share

Docker

Python

Demo

docker run -p 8501:8501 -v <your_data_dir>:/data -it piotrekwoznicki/autorad:0.2 pip install --upgrade autorad

 

Installation from source

git clone https://github.com/pwoznicki/AutoRadiomics.git
cd AutoRadiomics
pip install -e .

Example - Hydronephrosis detection from CT images:

Extract radiomics features

df = pd.read_csv(table_dir / "paths.csv")
image_dataset = ImageDataset(
    df=df,
    image_colname="image path",
    mask_colname="mask path",
    ID_colname="patient ID"
)
extractor = FeatureExtractor(
    dataset=image_dataset,
    out_path=(table_dir / "features.csv"),
)
extractor.extract_features()

Load, split and preprocess extracted features

# Create a dataset from the radiomics features
feature_df = pd.read_csv(table_dir / "features.csv")
feature_dataset = FeatureDataset(
    dataframe=feature_df,
    target="Hydronephrosis",
    task_name="Hydronephrosis detection"
)

# Split data and load splits
splits_path = result_dir / "splits.json"
feature_dataset.full_split(save_path=splits_path)
feature_dataset.load_splits_from_json(splits_path)

# Preprocessing
preprocessor = Preprocessor(
    normalize=True,
    feature_selection_method="boruta",
    oversampling_method="SMOTE",
)
feature_dataset._data = preprocessor.fit_transform(dataset.data)

Train the model for hydronephrosis classification

# Select classifiers to compare
classifier_names = [
    "Gaussian Process Classifier",
    "Logistic Regression",
    "SVM",
    "Random Forest",
    "XGBoost",
]
classifiers = [MLClassifier.from_sklearn(name) for name in classifier_names]

model = MLClassifier.from_sklearn(name="Random Forest")
model.set_optimizer("optuna", n_trials=5)

trainer = Trainer(
    dataset=dataset,
    models=[model],
    result_dir=result_dir,
    experiment_name="Hydronephrosis detection"
)
trainer.run()

Create an evaluator to train and evaluate selected classifiers

evaluator = Evaluator(dataset=data, models=classifiers)
evaluator.evaluate_cross_validation()
evaluator.boxplot_by_class()
evaluator.plot_all_cross_validation()
evaluator.plot_test()

Commands

MLFlow

mlflow server -h 0.0.0.0 -p 5000 --backend-store-uri <result_dir>

Dependencies:

  • MONAI
  • pyRadiomics
  • MLFlow
  • Optuna
  • scikit-learn
  • imbalanced-learn
  • XGBoost
  • Boruta
  • Medpy
  • NiBabel
  • nilearn
  • plotly
  • seaborn

App dependencies:

  • Streamlit
  • Docker

Release files for autorad 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for autorad 0.1.2
File Size Uploaded
autorad-0.1.2.tar.gz 46.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for autorad 0.1.2
File Interpreter ABI Platform
autorad-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 100.4 kB

Release files / autorad-0.1.2.tar.gz

Download URL autorad-0.1.2.tar.gz
Size 46.1 kB
Tags Source
SHA-256 checksum
How to use checksums
3c450204bb9657adca8993ba54547afa8dbd8be6e5a27c135c347d12e2d714db
BLAKE2b-256 checksum
How to use checksums
1b3d2dbecfe10141fb49e858c7d3435a13e2d1c9d7c5336e1869247b8214a3f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.2

Release files / autorad-0.1.2-py3-none-any.whl

Download URL autorad-0.1.2-py3-none-any.whl
Size 54.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d997c1f2a0fc37b27323edda60e29e7264c3b07e30f776391b62e2f664ce02ec
BLAKE2b-256 checksum
How to use checksums
d8b7d662032b352285116098038bebf40bc44d8df2fb264c4d5cc965d7bd8c5e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.10.2
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page