Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

MEDfl: A Collaborative Framework for Federated Learning in Medicine

Python Versions License: GPL v3 Build Status Contributors PyPI version Downloads


📚 Table of Contents

  1. Introduction
  2. Key Features
  3. Installation
  4. Modes of Operation
  5. Quick Start
  6. Documentation
  7. Contributing
  8. Acknowledgment
  9. Authors

1. Introduction

MEDfl is an open-source Federated Learning (FL) framework designed for both simulation and real-world distributed trainingin the medical and healthcare domains. It integrates Differential Privacy (DP), Transfer Learning (TL), and secure communication to enable privacy-preserving model training across multiple institutions—particularly suited for medical and clinical data.


2. Key Features

  • 🧩 Two Operation Modes

    • Simulation Mode: Run FL experiments locally for testing and benchmarking.
    • Real-World Mode: Connect remote clients for production-grade FL.
  • 🔒 Differential Privacy (Opacus Integration)
    Ensures client updates are mathematically protected against data leakage.

  • 🧠 Transfer Learning Integration
    Improve convergence and accuracy in small or heterogeneous datasets.

  • ⚙️ Modular Design
    Plug-and-play components for models, optimizers, datasets, and aggregation strategies.


3. Installation

pip install medfl

✅ Requires Python 3.9+.

If you prefer the development version:

git clone https://github.com/MEDomics-UdeS/MEDfl.git
cd MEDfl
pip install -e .

4. Modes of Operation

Mode Description Typical Use Case
Simulation FL Runs all clients locally in a controlled environment. Benchmarking, debugging, or prototyping.
Real-World FL Connects distributed client machines. Multi-institution collaboration, production deployments.

5. Quick Start

🌍 Real-World Federated Learning Example

Server Setup

from MEDfl.rw.server import FederatedServer, Strategy

custom_strategy = Strategy(
    name="FedAvg",
    fraction_fit=1,
    min_fit_clients=1,
    min_evaluate_clients=1,
    min_available_clients=1,
    local_epochs=1,
    threshold=0.5,
    learning_rate=0.01,
    optimizer_name="SGD",
    saveOnRounds=3,
    savingPath="./",
    total_rounds=10,
    datasetConfig={"isGlobal": True, "globalConfig": {"target": "label", "testFrac": 0.2}},
)

server = FederatedServer(
    host="0.0.0.0",
    port=8080,
    num_rounds=10,
    strategy=custom_strategy,
)
server.start()

Client Setup

from MEDfl.rw.client import FlowerClient, DPConfig

# Example: XGBoost client
xgb_params = {
    "objective": "binary:logistic",
    "eval_metric": "logloss",
    "eta": 0.1,
    "max_depth": 6,
    "subsample": 0.8,
    "colsample_bytree": 0.8,
    "tree_method": "hist",  # GPU: "gpu_hist"
}

client = FlowerClient(
    server_address="100.65.215.27:8080",
    data_path="../data/client1.csv",
    dp_config=None,            # DP only applies to neural networks
    model_type="xgb",
    xgb_params=xgb_params,
    xgb_rounds=10,
)
client.start()

💡 Tip:
Use Tailscale to connect clients and server under the same secure VPN for real-world deployments.


6. Documentation

You can generate and host the documentation locally with Sphinx:

cd docs
make clean && make html
cd _build/html
python -m http.server

7. Contributing

We welcome contributions of all kinds — from bug fixes to new modules.

  1. Fork the repo and create a feature branch.
  2. Run tests and format your code with black and flake8.
  3. Submit a Pull Request with clear details on your changes.

8. Acknowledgment

MEDfl is part of the MEDomicsLab initiative at the Université de Sherbrooke.
It was developed to enable secure, privacy-preserving, and reproducible machine learning across distributed medical datasets.


9. Authors


If you find this project useful, please consider starring it on GitHub to support continued development.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

medfl-2.0.10.dev7.tar.gz (105.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

medfl-2.0.10.dev7-py3-none-any.whl (121.0 kB view details)

Uploaded Python 3

File details

Details for the file medfl-2.0.10.dev7.tar.gz.

File metadata

  • Download URL: medfl-2.0.10.dev7.tar.gz
  • Upload date:
  • Size: 105.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for medfl-2.0.10.dev7.tar.gz
Algorithm Hash digest
SHA256 b7fe12309d8f482dcd38197eb47c2e83087e6e5663d64f5533ba07939a947347
MD5 001ab0fdcad92dcb70d480aceabb5615
BLAKE2b-256 d74718c04d971d173250aa5f447c0340aa467bedf862397c5a94f7b8ebf836de

See more details on using hashes here.

File details

Details for the file medfl-2.0.10.dev7-py3-none-any.whl.

File metadata

  • Download URL: medfl-2.0.10.dev7-py3-none-any.whl
  • Upload date:
  • Size: 121.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for medfl-2.0.10.dev7-py3-none-any.whl
Algorithm Hash digest
SHA256 a28cbb5aa39efc5feb2c50f4a96fe1b091e2fd890ff3898396ecb18c282e6a33
MD5 80b9e8b384826e99c799d92f56a57043
BLAKE2b-256 979765ae76203a6eabb4a0a095938d30db02298ed0ea11ff8fbe9c1365de0c41

See more details on using hashes here.

Release history Release notifications | RSS feed

2.0.10

2 files

This release

2.0.10.dev7 This release

2 files

2.0.9

2 files

2.0.8

2 files

2.0.7

2 files

2.0.6

2 files

2.0.5

2 files

2.0.4

2 files

2.0.3

2 files

2.0.2

2 files

2.0.1

2 files

2.0.0

2 files

0.2.1

2 files

0.2.0

2 files

0.1.37

2 files

0.1.36

2 files

0.1.35

2 files

0.1.34

2 files

0.1.33

2 files

0.1.32

2 files

0.1.31

2 files

0.1.30

2 files

0.1.29

2 files

0.1.28

2 files

0.1.27

2 files

0.1.26

2 files

0.1.25

2 files

0.1.24

2 files

0.1.23

2 files

0.1.22

2 files

0.1.21

2 files

0.1.20

2 files

0.1.19

2 files

0.1.18

2 files

0.1.17

2 files

0.1.16

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.0

3 files

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