Skip to content

juaml/junifer

Repository files navigation

Junifer logo

junifer - JUelich NeuroImaging FEature extractoR

PyPI PyPI - Python Version PyPI - Wheel Anaconda-Server Badge GitHub Codecov Code style: black 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.
    • 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/.