FuseMedML is an open-source python-based framework designed to enhance collaboration and accelerate discoveries in Fused Medical data through advanced Machine Learning technologies. Initial version is PyTorch-based and focuses on deep learning on medical imaging.
Successful deep learning R&D must rely on knowledge and experiments, accumulated over a wide variety of projects, and developed by different people and teams.
FuseMedML is an outstanding collaboration framework that allows you to rerun an experiment or reuse some of the capabilities originally written for different projects—all with minimal effort.
Using FuseMedML, you can write generic components that can be easily shared between projects in a plug & play manner, simplifying sharing and collaboration.
The framework’s unique software design provides many advantages, making it an ideal framework for deep-learning research and development in medical imaging:
-
Rapid development -
-
Flexible, customizable, and scalable -
-
Encourage sharing and collaboration -
-
Collection of off-the-shelf components and capabilities -
-
Standardized evaluation -
-
Medical imaging expertise -
-
Compatibility with alternative frameworks
If you use FuseMedML in scientific context, please consider citing us:
@misc{https://doi.org/10.5281/zenodo.5146491,
doi = {10.5281/ZENODO.5146491},
url = {https://zenodo.org/record/5146491},
author = {IBM Research, Haifa},
title = {FuseMedML: https://github.com/IBM/fuse-med-ml},
publisher = {Zenodo},
year = {2021},
copyright = {Apache License 2.0}
}
The best way to install FuseMedML
is to clone the repository and install it in an editable mode using pip
:
$ pip install -e .
This mode, allows to edit the source code and easily contribute back to the open-source project.
An alternative, is to simply install using PyPI
$ pip install fuse-med-ml
FuseMedML supports Python 3.6 or later and PyTorch 1.5 or later. A full list of dependencies can be found in requirements.txt.
User Guide - including detailed explanation about FuseMedML modules, structure, concept, and more.
Hello World - Introductory hands-on notebook on the well-known MNIST dataset.
High Level Code Example - example of binary classifier for mammography with an auxiliary segmentation loss and clinical data
- classification
- MNIST - a simple example, including training, inference and evaluation over MNIST dataset
- KNIGHT Challenge - preoperative prediction of risk class for patients with renal masses identified in clinical Computed Tomography (CT) imaging of the kidneys. Including data pre-processing, baseline implementation and evaluation pipeline for the challenge.
- Multimodality tutorial - demonstration of two popular simple methods integrating imaging and clinical data (tabular) using FuseMedML
- Skin Lesion - skin lesion classification , including training, inference and evaluation over the public dataset introduced in ISIC challenge
- Prostate Gleason Classifiaction - lesions classification of Gleason score in prostate over the public dataset introduced in SPIE-AAPM-NCI PROSTATEx challenge
- Lesion Stage Classification - lesions classification of Tumor Stage (Size) in breast MRI over the public dataset introduced in Dynamic contrast-enhanced magnetic resonance images of breast cancer patients with tumor locations (Duke-Breast-Cancer-MRI)
- Breast Cancer Lesion Classification - lesions classification of tumor ( benign, malignant) in breast mammography over the public dataset introduced in The Chinese Mammography Database (CMMD)
- Walkthrough Template - includes several TODO notes, marking the minimal scope of code required to get your pipeline up and running. The template also includes useful explanations and tips.
The evaluation package of FuseMedML (fuse.eval) is a standalone library for evaluating ML models which not necessarily trained with FuseMedML.
The package includes collection of off-the-shelf metrics and utilities such as calibration, thresholding, model comparison and more.
Details and examples can be found here
We use the Slack workspace at fusemedml.slack.com for informal communication. We encourage you to ask questions regarding FuseMedML that don't necessarily merit opening an issue on Github.
Use this invite link to join FuseMedML on Slack.
IBMers can also join a Slack channel in the IBM Research organization: #fusers .