physiopy: open development solutions for physiology in MRI

Why physiopy

MRI-related physiology is still a niche → we need more researchers and clinicians to become interested in the topic.

*Open Source Software Development is the idea of developing a software publicly, sharing it from the beginning of the development, fostering a democratic community of contributors in support of the project, using version control and software testing.

One aim of physiopy is to ease this process using a Community driven, BIDS-based, Open Development* approach.

Sharing physiological data, toolboxes, and documentation following the concepts of Open Science could improve the exposition to this topic.

physiopy's aims and components

physiopy's has 5 main aims, that translate into three core components:

  1. A BIDSificator, phys2bids
  2. (Pre)processing tools for physiological data based on BIDS
  3. Documentation that ease the interaction with physiological data

physiopy's community

In physiopy, we adopt the all-contributors acknowledgement system: each and all contributions of any kind and size are recognised.
At the moment (this could change) during outreach activities (e.g. abstracts), all authors are listed in alphabetical order, beside the (corresponding) author of the piece.

We are not a community that aims to compete with or take the place of others.
Instead, we prefer collaborations with any other community/individual that
is eager to collaborate.
We mainly refer to the ICP network, ISMRM, OHBM, and the Brainhack as user bases and theoretical sources (although we are more executive in nature).

All contributors are volunteers that dedicate their free time to the community.

For this reason, there is no strict deadline (but soft deadlines) and development is adaptive to the time (and interest) of the contributors.

However, we don't exclude the use of dedicated funds.

physiopy's libraries

Raw data

BIDSification

physiological data preprocessing

phys. denoising

phys. imaging

Data acquisition

Process description

physiopy's libraries

Raw data

phys2bids


peakdet
 

phys2denoise

phys. imaging

Data acquisition

physiopy's documentation

physioQC

physiological data for testing

News in phys2bids

Enhancements:

  • GE MRI file support
  • Optimised txt file reading and channel selection

(Almost) ready for merge:

  • Spike2 file support
  • peakdet-based GUI to manually slice sessions
  • REPORTS
  • Adopt Black & pre-commits

Possible/necessary extensions:

  • Extend file support to other MRI vendors
  • Extend BIDS modality support (e.g. asl and beh)
  • phys2bids 3.0: revisit CLI and heuristics/add "maps"

News in peakdet

Enhancements:

  • Functions to interface with neurokit (saved) data
    (currently bugged)

(Almost) ready for merge:

  • ...

"Unofficial" enhancements:

  • Manual peaks addition
  • "Support" timeseries addition

Possible/necessary extensions:

  • Improve neurokit integration by supporting objects rather than (just) files.
  • Add physiological preprocessing and automatic peak detection with neurokit
  • BIDS application
  • Improve GUI to ease different operations and support multiple timeseries
  • Possibly, rewrite the whole package around a common physiopy object

News in phys2denoise

Enhancements:

  • Functions to interface with neurokit (saved) data
    (currently bugged)

(Almost) ready for merge:

  • Heart-Beat-Interval based regressor.

 

Possible/necessary extensions:

  • Improve the library testing suite
  • Add newer/less common models for denoising
  • Rework output to be both at MRI and higher sampling frequency and handle lagged regressors.
  • Possibly, use common physiopy object to avoid pandas
  • Possibly, have a method to "check" impact of regressors on fMRI
  • BIDS application

News in physiopy's documentation

Enhancements:

  • New documentation website (and documentation)

(Almost) ready for merge:

  • More pages!

 

Possible/necessary extensions:

  • Conclude documentation update (from phys2bids to physiopy)
  • Add best practices
  • Make documentation easier to navigate
  • Add physiological and MRI denoising specific documentation
  • Improve datasets monitoring

Actions across the whole board

Done:

  • OHBM 2022 EC + OSR
  • EOSS 5th cycle submission (rejected)
  • First codesprint/brainhack!

To-dos, code-related:

  • PhysioQC: quality control for physiological files
  • Adopt Pre-commit and formatters (balck, isort)
  • Automatic signal discrimination to classify signals
  • Make tools  BIDS-compatible (derivatives)

To-dos, others:

  • Generic physiological dataset for testing purposes
  • Collaborations with other communities/toolboxes (e.g. physIO, neurokit, AFNI, BIDScoin, NiPrep)
  • Improve community validation: publications, endorsement.

Time for some discussion

In the meantime, thanks to all contributors!