FuseMedML Framework

repository·master·Indexed 41 days ago

https://github.com/biomedsciai/fuse-med-ml

A Python framework designed to accelerate medical machine learning research by promoting code reuse. It features a hierarchical dictionary structure (NDict) for managing multi-modal data and provides built-in components for data pipelines, model architectures, and evaluation. The framework includes tools for automating ML workflows via `fuse.dl.cross_validation.pipeline.run`, supporting cross-validation, ensembling, and multi-modal classification tasks across various medical imaging challenges.

Tokens
29.4K
Snippets
60
Records
120
Agent score
99%

What's inside FuseMedML

  1. Overview of the FuseMedML Evaluation Package

    master

    The fuse.eval package is a standalone library designed for evaluating machine learning models across various performance metrics and facilitating model comparisons. It is designed to be agnostic of the ML library used to generate the evaluation data.

    Key capabilities include:

    • Massive Data Handling: Automatic batching and multiprocessing for datasets that exceed RAM capacity.
    • Multi-class Support: Automatic "one vs. rest" logic for metrics that extend from binary to multi-class.
    • Statistical Significance: Built-in support for confidence intervals and model comparison tests (Paired Bootstrap, DeLong's test, McNemar's test).
    • Pipelining: Ability to combine sequences of metrics and interleave them with data operations, where metrics can depend on previous results.
    • Advanced Analysis: Automatic per-fold evaluation and sub-group analysis.
  2. Overview of FuseMedML core packages

    master

    FuseMedML is organized into several functional modules:

    • fuse.data: A declarative data processing pipeline designed for complex multi-modality scenarios. It includes advanced caching with automatic stale cache detection, and ready-to-use Dataset and Sampler classes.
    • fuse.eval: A standalone library for evaluating ML models (even those not trained with FuseMedML). It provides metrics, statistical significance tests, calibration, thresholding, and model comparison utilities.
    • fuse.dl: Contains reusable deep learning components, including model architectures and loss functions.
  3. Explore the fuse.eval.metrics.libs package submodules

    master

    The fuse.eval.metrics.libs package provides a collection of specialized evaluation metric libraries for medical machine learning tasks. It is organized into submodules based on the specific type of machine learning task or statistical requirement:

    • Classification: Metrics for evaluating classification models.
    • Segmentation: Metrics for semantic segmentation tasks.
    • Instance Segmentation: Metrics for instance-level segmentation.
    • Calibration: Tools for assessing model calibration.
    • Thresholding: Utilities for finding optimal decision thresholds.
    • Ensembling: Metrics related to model ensembling.
    • Model Comparison: Tools for comparing different models.
    • Survival: Metrics for survival analysis tasks.
    • Stat: General statistical utility functions.

    Use these submodules to select the appropriate metric implementation for your specific medical imaging or clinical downstream task.

  4. Explore FuseMedML utility subpackages

    master

    The fuse.utils package is organized into several specialized subpackages to support different aspects of ML development:

    • fuse.utils.config_tools: Tools for managing configuration.
    • fuse.utils.cpu_profiling: Utilities for profiling CPU usage.
    • fuse.utils.data: Data manipulation and handling utilities.
    • fuse.utils.file_io: File input/output operations.
    • fuse.utils.multiprocessing: Support for parallel execution.
    • fuse.utils.rand: Randomization utilities.
    • fuse.utils.remote_execution: Tools for running tasks on remote systems.
    • fuse.utils.tests: Testing utilities.
  5. Explore the fuse.dl.losses package structure

    master

    The fuse.dl.losses package provides a modular framework for managing loss functions in deep learning tasks. It is organized into several specialized modules and subpackages:

    Subpackages

    • fuse.dl.losses.segmentation: Specialized loss functions for segmentation tasks.

    Core Modules

    • fuse.dl.losses.loss_base: Contains the base classes and fundamental logic for defining custom losses.
    • fuse.dl.losses.loss_default: Provides standard, ready-to-use loss implementations.
    • fuse.dl.losses.loss_extract: Utilities for extracting specific values from data structures (like nested dictionaries) to compute losses.
    • fuse.dl.losses.loss_warm_up: Implements loss scheduling or warm-up logic.
    • fuse.dl.losses.loss_wrap_to_dict: Utilities for wrapping loss outputs into dictionary formats, likely to maintain compatibility with the project's hierarchical data pattern.
  6. Explore fuse.eval.examples submodules

    master

    The fuse.eval.examples package provides various example modules for different evaluation tasks in medical machine learning. You can use these submodules to understand how to implement evaluation logic for specific domains:

    • fuse.eval.examples.examples: General evaluation examples.
    • fuse.eval.examples.examples_segmentation: Examples specifically tailored for medical image segmentation tasks.
    • fuse.eval.examples.examples_seq_gen: Examples for sequence generation tasks.
    • fuse.eval.examples.examples_stats: Examples focused on statistical evaluation.
  7. Available datasets in the fuseimg.datasets package

    master

    The fuseimg.datasets package provides specialized modules for accessing various medical and general imaging datasets. Each submodule corresponds to a specific dataset, allowing for standardized data loading and preprocessing within the FuseMedML ecosystem.

    Supported dataset modules include:

    • cmmd: CMMD dataset
    • isic: ISIC dataset
    • kits21: KiTS21 dataset
    • knight: KNIGHT dataset
    • mnist: MNIST dataset
    • picai: PI-CAI dataset
    • stoic21: Stoic21 dataset
  8. Explore the fuse.dl.models package structure

    master

    The fuse.dl.models package provides high-level model architectures for medical machine learning tasks. It is organized into subpackages for modular model construction:

    • fuse.dl.models.backbones: Contains feature extraction architectures (e.g., CNNs, Transformers).
    • fuse.dl.models.heads: Contains task-specific output layers (e.g., classification, segmentation heads).

    The package also includes specialized model modules for complex architectures like ensembles, multi-head, multi-stream, and Siamese networks.

  9. Explore the fuse.dl.models.heads package submodules

    master

    The fuse.dl.models.heads package provides various model head implementations for medical imaging tasks, including segmentation and classification. The package is organized into specialized submodules based on the dimensionality and task type:

    • fuse.dl.models.heads.common: Contains shared utilities or base classes used across different heads.
    • fuse.dl.models.heads.head_dense_segmentation: Implements heads designed for dense prediction tasks like segmentation.
    • fuse.dl.models.heads.head_global_pooling_classifier: Implements classification heads that utilize global pooling layers.
    • fuse.dl.models.heads.heads_1D: Provides 1D-specific model heads.
    • fuse.dl.models.heads.heads_3D: Provides 3D-specific model heads for volumetric medical imaging data.
  10. Explore the fuseimg.utils package

    master

    The fuseimg.utils package provides utility functions for medical imaging tasks. It is organized into subpackages and submodules, primarily focusing on image processing and alignment.

    Key components include:

    • fuseimg.utils.align: A subpackage dedicated to image alignment tasks.
    • fuseimg.utils.image_processing: A submodule containing core image processing utilities.