Skip to main content

Documentation PyPI Downloads License Python-versions PyPI - Version Citation PR codecov

Fed-BioMed

Introduction

Fed-BioMed is an open source project focused on empowering healthcare using non-centralized approaches for statistical analysis and machine learning.

The project is currently based on Python, PyTorch and Scikit-learn, and enables developing and deploying collaborative learning analysis in real-world machine learning applications, including federated learning and federated analytics.

The code is regularly released and available on the master branch of this repository. The documentation of the releases can be found at https://fedbiomed.org

Curious users may also be interested by the current developments, occurring in the develop branch (https://github.com/fedbiomed/fedbiomed/tree/develop) Develop branch is WIP branch for next release. It may not be fully usable, tested and documented. Support is provided only for releases.

Install and run in development environment

Fed-BioMed is developed under Linux Ubuntu & Fedora (should be easily ported to other Linux distributions) and MacOS X. It is also ported on Windows WSL2.

This README.md file provide a quick start/installation guide for Linux.

Full installation instruction are also available at: https://fedbiomed.org/latest/tutorials/installation/0-basic-software-installation/

An installation guide is also provided for Windows11, which relies on WSL2: https://fedbiomed.org/latest/user-guide/installation/windows-installation/

Prerequisites

  • Python: Compatible version (currently 3.10)
  • It is recommended to install Python in a local environment, for example, using pyenv.
pyenv install 3.10
pyenv local 3.10

A recommended practice is to use a virtual environment for managing dependencies. For example, if using venv:

python -m venv fb_env
source fb_env/bin/activate

Install

Fed-BioMed can be installed using pip with the following command:

pip install fedbiomed[node, gui, researcher]

If you prefer to use Fed-BioMed in development mode, please refer to the Developer Environment Installation Documentation.

Quick Start: Running Fed-BioMed

Starting a Basic Node

To start a basic Fed-BioMed node, open a new terminal and execute the following command:

$ fedbiomed node start

Uploading New Data to the Node

To upload new data to this node, run:

$ fedbiomed node dataset add

Specifying a Component Directory

If you need to run multiple test nodes on the same host, you can specify a different component directory:

$ fedbiomed node --path ./my-second-node start

Changing the Default IP Address

To specify a different IP address for connecting to the Fed-BioMed researcher component (default: localhost), provide it at launch time:

$ FBM_RESEARCHER_IP=192.168.0.100 fedbiomed node start
$ FBM_SERVER_HOST=192.168.0.100 fedbiomed researcher start
Configuration Persistence
  • If this option is provided at the first launch or after a clean configuration, it is saved in the configuration file and becomes the default for future launches.
  • If given during a subsequent launch, it only applies to that launch without altering the saved configuration.

Run a Researcher Notebook

  1. Open a new terminal and start the researcher component:

    $ fedbiomed researcher start
    
  2. This will launch a new Jupyter Notebook environment within the notebooks repository. A good starting point is:

    • 101_getting-started.ipynb: Train a SimpleNet model with federated averaging on the MNIST dataset.

Run a Researcher Script

  1. Open a new terminal and activate the environment where Fed-BioMed is installed.

  2. Convert the notebook to a Python script:

    jupyter nbconvert --output=101_getting-started --to script ./notebooks/101_getting-started.ipynb
    
  3. Execute the researcher script using:

    $ python ./notebooks/101_getting-started.py
    ```### Clean State (restore environments back to new)
    

Cleaning/Removing Fed-BioMed Components

To clean your Fed-BioMed instance:

  • Stop the researcher : shutdown the notebook kernel (Quit in on the notebook interface or ctrl-C on the console)
  • Stop the nodes : interrupt (ctrl-C) on the nodes console
  • Remove all configuration files, dataset sharing configuration, temporary files, caches for all Fed-BioMed components with :
$ rm -rf COMPONENT_DIR

Where COMPONENT_DIR is:

  • for a node, the parameter provided as fedbiomed node -p COMPONENT_DIR or by default fbm-node if no parameter was given
  • for a researcher, the parameter provided as fedbiomed researcher -p COMPONENT_DIR or by default fbm-researcher if no parameter was given

Fed-BioMed Node GUI

Node GUI provides an interface for Node to manage datasets and deploy new ones. GUI consists of two components, Server and UI. Server is developed on Flask framework and UI is developed using ReactJS. Flask provides API services that use Fed-BioMed's DataManager for deploying and managing dataset. All the source files for GUI has been located on the ${FEDBIOMED_DIR}/gui directory.

Starting GUI

Node GUI can be started using Fed-BioMed CLI.

fedbiomed node [--path [COMPONENT_DIRECTORY]] gui start --data-folder <path-for-data-folder>

Please see possible argument using fedbiomed node gui start --help.

It is also possible to start the GUI on a specific host and port. By default, it starts on localhost as the host and 8484 as the port. To change these settings, you can modify the following command. The GUI is based on HTTPS and will, by default, generate a self-signed certificate. However, you can also start the GUI by specifying the certificate and private key names you want to use for HTTPS support.

fedbiomed node --path <path/to/component/directory> gui start --data-folder <path-for-data-folder> --cert-file <path-to-certificate> --key-file <path-to-private-key>
fedbiomed node -p </path/to/my-node> gui --port 80 --host 0.0.0.0

IMPORTANT: Provide data-folder argument while starting the GUI if not using the default /path/to/my-node/data

fedbiomed node -p </path/to/my-node> gui --data-folder /another/data-dir --port 80 --host 0.0.0.0

Launching Multiple Node GUI

It is possible to start multiple Node GUIs for different nodes as long as the http ports are different.

fedbiomed node -p my-node gui start --port 8181
fedbiomed node -p my-second-node gui start --port 8282
fedbiomed node -p my-second-node gui start --port 8383

Please see docs/developer/development-environment.md to find out how to debug and lunch UI for development purposes.

Troubleshooting

Fedbiomed includes a debug mode, which when enabled prints more outputs with more details, making it easier to troubleshoot. For details on how to use debug mode, refer to troubleshooting.

Download files

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

Source Distribution

fedbiomed-6.4.0.tar.gz (3.4 MB view details)

Uploaded Source

Built Distribution

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

fedbiomed-6.4.0-py3-none-any.whl (7.9 MB view details)

Uploaded Python 3

File details

Details for the file fedbiomed-6.4.0.tar.gz.

File metadata

  • Download URL: fedbiomed-6.4.0.tar.gz
  • Upload date:
  • Size: 3.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for fedbiomed-6.4.0.tar.gz
Algorithm Hash digest
SHA256 40764273bd3e7f7164b48c72b944fbf8580938a9a8ddca828a11ced5666f9de7
MD5 77841c3cdfc9bfbd6dc64c8a5173fa97
BLAKE2b-256 5313f3ddbdafbbc06e202796a294ff96b95d4ecb2e47ee9ea6d1427a827e79ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for fedbiomed-6.4.0.tar.gz:

Publisher: deploy.yml on fedbiomed/fedbiomed

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fedbiomed-6.4.0-py3-none-any.whl.

File metadata

  • Download URL: fedbiomed-6.4.0-py3-none-any.whl
  • Upload date:
  • Size: 7.9 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for fedbiomed-6.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7acd1f2507ed46d0303305f7e8e43621c30bc78f4e86b28a0b53e31bebdb966b
MD5 a12fc457fdbc8d623c1bb07ca5ac1055
BLAKE2b-256 87ecbb3ca94053ec248832075f6944dbf528d4a2053178e9d106c27c80716d18

See more details on using hashes here.

Provenance

The following attestation bundles were made for fedbiomed-6.4.0-py3-none-any.whl:

Publisher: deploy.yml on fedbiomed/fedbiomed

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

6.4.1

2 files

This release

6.4.0 This release

2 files

6.3.3

2 files

6.3.2

2 files

6.3.1

2 files

6.3.0

2 files

6.2.0

2 files

6.1.1

2 files

6.1.0

2 files

6.0.0

2 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