Junifer

Authors: Federico Raimondo, Synchon Mandal, Kaustubh Patil

Keywords: Python, Neuroimaging, Featureextraction

Junifer logo

junifer - JUelich NeuroImaging FEature extractoR

PyPI PyPI - Python Version PyPI - Wheel Anaconda-Server Badge GitHub Codecov Ruff pre-commit DOI FAIR checklist badge

About

junifer is a data handling and feature extraction library targeted towards neuroimaging data specifically functional MRI data.

It is currently being developed and maintained at the Applied Machine Learning group at Forschungszentrum Juelich, Germany. Although the library is designed for people working at Institute of Neuroscience and Medicine - Brain and Behaviour (INM-7), it is designed to be as modular as possible thus enabling others to extend it easily.

The documentation is available at https://juaml.github.io/junifer.

Repository Organization

  • docs: Documentation, built using sphinx.
  • examples: Examples, using sphinx-gallery. File names of examples that create visual output must start with plot_, otherwise, with run_.
  • junifer: Main library directory.
    • api: User API module.
    • configs: Module for pre-defined configs for most used computing clusters.
    • data: Module that handles data required for the library to work (e.g. parcels, coordinates).
    • datagrabber: DataGrabber module.
    • datareader: DataReader module.
    • external: Module for external libraries and tools.
    • markers: Markers module.
    • onthefly: Transformation components (on-the-fly) module.
    • pipeline: Pipeline module.
    • preprocess: Preprocessing module.
    • storage: Storage module.
    • testing: Testing components module.
    • typing: Type hints module.
    • utils: Utilities module (e.g. logging).

Installation

Use pip to install from PyPI like so:

pip install junifer

You can also install via conda, like so:

conda install -c conda-forge junifer

Optional dependencies

junifer supports a few optional dependencies to enable certain features. You can
install them by specifying a comma separated list within square brackets, like so:

pip install "junifer[bct,dev]"
  • bct installs bctpy to enable use of onthefly module.
  • neurokit2 installs neurokit2 to enable use of complexity markers.
  • all includes all of the above.
  • dev installs packages needed for development.
  • docs installs packages needed for building documentation.

Citation

If you use junifer in a scientific publication, we would appreciate if you cite our work. Currently, we do not have a publication, so feel free to use the project's Zenodo URL.

Funding

We thank the Helmholtz Imaging Platform and
SMHB for supporting development of junifer.
(The funding sources had no role in the design, implementation and evaluation of the pipeline.)

Contribution

Contributions are welcome and greatly appreciated. Please read the guidelines to get started.

License

junifer is released under the AGPL v3 license:

junifer, FZJuelich AML neuroimaging feature extraction library.
Copyright (C) 2023, authors of junifer.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program. If not, see http://www.gnu.org/licenses/.

Helmholtz RSD
This entry is synchronized with the Helmholtz Research Software Directory (RSD).
If you're the author or maintainer, please edit on the Helmholtz RSD platform.
Click here to view Junifer on RSD.
Helmholtz RSD icon
License
AGPL-3.0-or-later

Helmholtz Imaging spinning wheel

Please wait, your data is processed