Connectome Mapper 3

Connectome Mapper 3: A Flexible and Open-Source Pipeline Software for Multiscale Multimodal Human Connectome Mapping - Published in JOSS (2022)

https://github.com/connectomicslab/connectomemapper3

Science Score: 95.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 6 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org, zenodo.org
  • Committers with academic emails
    6 of 18 committers (33.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

bids bids-apps bidsapp brain chuv connectome dmri docker eeg fmri parcellation pipelines python singularity

Scientific Fields

Mathematics Computer Science - 88% confidence
Sociology Social Sciences - 87% confidence
Economics Social Sciences - 85% confidence
Last synced: 4 months ago · JSON representation

Repository

Connectome Mapper 3 is a BIDS App that implements full anatomical, diffusion, resting/state functional MRI, and recently EEG processing pipelines, from raw T1 / DWI / BOLD , and preprocessed EEG data to multi-resolution brain parcellation with corresponding connection matrices.

Basic Info
Statistics
  • Stars: 74
  • Watchers: 3
  • Forks: 29
  • Open Issues: 21
  • Releases: 20
Topics
bids bids-apps bidsapp brain chuv connectome dmri docker eeg fmri parcellation pipelines python singularity
Created over 6 years ago · Last pushed 8 months ago
Metadata Files
Readme Changelog Contributing License Citation Support Zenodo

README.md

Connectome Mapper 3

This neuroimaging processing pipeline software is developed by the Connectomics Lab at the University Hospital of Lausanne (CHUV) for use within the SNF Sinergia Project 170873, as well as for open-source software distribution.

GitHub release (latest by date) GitHub Release Date Zenodo DOI JOSS paper DOI PyPI Docker Image Version (latest semver) Docker Pulls CircleCI Code Coverage Documentation Status Code Quality Review All Contributors

Description

Connectome Mapper 3 is an open-source Python3 image processing pipeline software, with a Graphical User Interface, that implements full anatomical, diffusion, resting-state MRI, and EEG processing pipelines, from raw Diffusion / T1 / BOLD / preprocessed EEG to multi-resolution connection matrices, based on a new version of the Lausanne parcellation atlas, aka Lausanne2018.

Image not found

Connectome Mapper 3 pipelines use a combination of tools from well-known software packages, including FSL, FreeSurfer, ANTs, MRtrix3, Dipy, AFNI, MNE, MNE_Connectivity, and Cartool (PyCartool) orchestrated by the Nipype dataflow library. These pipelines were designed to provide the best software implementation for each state of processing at the time conceptualization, and can be updated as newer and better neuroimaging software become available.

To enhance reproducibility and replicatibility, the processing pipelines with all dependencies are encapsulated in a Docker image container, which handles datasets organized following the BIDS standard and is distributed as a BIDS App @ Docker Hub. For execution on high-performance computing cluster, a Singularity image is also made freely available @ Sylabs Cloud.

To reduce the risk of misconfiguration and improve accessibility, Connectome Mapper 3 comes with an interactive GUI, aka cmpbidsappmanager, which supports the user in all the steps involved in the configuration of the pipelines, the configuration and execution of the BIDS App, and the control of the output quality. In addition, to facilitate the use by users not familiar with Docker and Singularity containers, Connectome Mapper 3 provides two Python commandline wrappers (connectomemapper3_docker and connectomemapper3_singularity) that will generate and run the appropriate command.

Since v3.1.0, CMP3 provides full support to EEG. Please check this notebook for a demonstration of the newly implemented pipeline, using the VEPCON dataset, available at https://openneuro.org/datasets/ds003505/versions/1.1.1.

How to install the python wrappers and the GUI?

You need to have first either Docker or Singularity engine and miniconda installed. We refer to the dedicated documentation page for more instruction details.

Then, download the appropriate environment.yml / environment_macosx.yml and create a conda environment py39cmp-gui with the following command:

bash $ conda env create -f /path/to/environment[_macosx].yml

Once the environment is created, activate it and install Connectome Mapper 3 with PyPI as follows:

bash $ conda activate py39cmp-gui (py39cmp-gui)$ pip install connectomemapper

You are ready to use Connectome Mapper 3!

Resources

Carbon footprint estimation of BIDS App run

In support to the Organisation for Human Brain Mapping (OHBM) Sustainability and Environmental Action (OHBM-SEA) group, CMP3 enables you since v3.0.3 to be more aware about the adverse impact of your processing on the environment!

With the new --track_carbon_footprint option of the connectomemapper3_docker and connectomemapper3_singularity BIDS App python wrappers, and the new "Track carbon footprint" option of the cmpbidsappmanager BIDS Interface Window, you can estimate the carbon footprint incurred by the execution of the BIDS App. Estimations are conducted using codecarbon to estimate the amount of carbon dioxide (CO2) produced to execute the code by the computing resources and save the results in <bids_dir>/code/emissions.csv.

Then, to visualize, interpret and track the evolution of the emitted CO2 emissions, you can use the visualization tool of codecarbon aka carbonboard that takes as input the .csv created::

bash $ carbonboard --filepath="<bids_dir>/code/emissions.csv" --port=xxxx

Please check https://ohbm-environment.org to learn more about OHBM-SEA!

Usage

Having the py39cmp-gui conda environment previously installed activated, the BIDS App can easily be run using connectomemapper3_docker, the python wrapper for Docker, as follows:

```output usage: connectomemapper3docker [-h] [--participantlabel PARTICIPANTLABEL [PARTICIPANT_LABEL ...]] [--sessionlabel SESSIONLABEL [SESSIONLABEL ...]] [--anatpipelineconfig ANATPIPELINECONFIG] [--dwipipelineconfig DWIPIPELINECONFIG] [--funcpipelineconfig FUNCPIPELINECONFIG] [--eegpipelineconfig EEGPIPELINECONFIG] [--numberofthreads NUMBEROFTHREADS] [--numberofparticipantsprocessedinparallel NUMBEROFPARTICIPANTSPROCESSEDINPARALLEL] [--mrtrixrandomseed MRTRIXRANDOMSEED] [--antsrandomseed ANTSRANDOMSEED] [--antsnumberofthreads ANTSNUMBEROFTHREADS] [--fslicense FSLICENSE] [--coverage] [--notrack] [-v] [--trackcarbonfootprint] [--dockerimage DOCKERIMAGE] [--configdir CONFIGDIR] bidsdir outputdir {participant,group}

Entrypoint script of the Connectome Mapper BIDS-App version v3.1.0 via Docker.

positional arguments:
  bids_dir              The directory with the input dataset formatted
                        according to the BIDS standard.
  output_dir            The directory where the output files should be stored.
                        If you are running group level analysis this folder
                        should be prepopulated with the results of the
                        participant level analysis.
  {participant,group}   Level of the analysis that will be performed. Multiple
                        participant level analyses can be run independently
                        (in parallel) using the same output_dir.

optional arguments:
  -h, --help            show this help message and exit
  --participant_label PARTICIPANT_LABEL [PARTICIPANT_LABEL ...]
                        The label(s) of the participant(s) that should be
                        analyzed. The label corresponds to
                        sub-<participant_label> from the BIDS spec (so it does
                        not include "sub-"). If this parameter is not provided
                        all subjects should be analyzed. Multiple participants
                        can be specified with a space separated list.
  --session_label SESSION_LABEL [SESSION_LABEL ...]
                        The label(s) of the session that should be analyzed.
                        The label corresponds to ses-<session_label> from the
                        BIDS spec (so it does not include "ses-"). If this
                        parameter is not provided all sessions should be
                        analyzed. Multiple sessions can be specified with a
                        space separated list.
  --anat_pipeline_config ANAT_PIPELINE_CONFIG
                        Configuration .json file for processing stages of the
                        anatomical MRI processing pipeline
  --dwi_pipeline_config DWI_PIPELINE_CONFIG
                        Configuration .json file for processing stages of the
                        diffusion MRI processing pipeline
  --func_pipeline_config FUNC_PIPELINE_CONFIG
                        Configuration .json file for processing stages of the
                        fMRI processing pipeline
  --eeg_pipeline_config EEG_PIPELINE_CONFIG
                        Configuration .json file for processing stages of the
                        EEG processing pipeline
  --number_of_threads NUMBER_OF_THREADS
                        The number of OpenMP threads used for multi-threading
                        by Freesurfer (Set to [Number of available CPUs -1] by
                        default).
  --number_of_participants_processed_in_parallel NUMBER_OF_PARTICIPANTS_PROCESSED_IN_PARALLEL
                        The number of subjects to be processed in parallel
                        (One by default).
  --mrtrix_random_seed MRTRIX_RANDOM_SEED
                        Fix MRtrix3 random number generator seed to the
                        specified value
  --ants_random_seed ANTS_RANDOM_SEED
                        Fix ANTS random number generator seed to the specified
                        value
  --ants_number_of_threads ANTS_NUMBER_OF_THREADS
                        Fix number of threads in ANTs. If not specified ANTs
                        will use the same number as the number of OpenMP
                        threads (see `----number_of_threads` option flag)
  --fs_license FS_LICENSE
                        Freesurfer license.txt
  --coverage            Run connectomemapper3 with coverage
  --notrack             Do not send event to Google analytics to report BIDS
                        App execution, which is enabled by default.
  -v, --version         show program's version number and exit
  --track_carbon_footprint
                        Track carbon footprint with `codecarbon
                        <https://codecarbon.io/>`_ and save results in a CSV
                        file called ``emissions.csv`` in the
                        ``<bids_dir>/code`` directory.
  --docker_image DOCKER_IMAGE
                        The path to the docker image.
  --config_dir CONFIG_DIR
                        The path to the directory containing the configuration
                        files.

```

Contributors

Thanks goes to these wonderful people (emoji key):


Sbastien Tourbier


joanrue


Katharina Glomb


anilbey


jwirsich


kuba-fidel


Stefan


Mikkel Schttner


yasseraleman


agriffa


Emeline Mullier


Patric Hagmann

Thanks also goes to all these wonderful people that contributed to Connectome Mapper 1 and 2:

  • Collaborators from Signal Processing Laboratory (LTS5), EPFL, Lausanne:

    • Jean-Philippe Thiran
    • Leila Cammoun
    • Adrien Birbaumer (abirba)
    • Alessandro Daducci (daducci)
    • Stephan Gerhard (unidesigner)
    • Christophe Chnes (Cwis)
    • Oscar Esteban (oesteban)
    • David Romascano (davidrs06)
    • Alia Lemkaddem (allem)
    • Xavier Gigandet
  • Collaborators from Children's Hospital, Boston:

    • Ellen Grant
    • Daniel Ginsburg (danginsburg)
    • Rudolph Pienaar (rudolphpienaar)
    • Nicolas Rannou (NicolasRannou)

This project follows the all-contributors specification. Contributions of any kind welcome!

How to cite?

Please consult our Citing documentation page.

How to contribute?

Please consult our Contributing to Connectome Mapper 3 guidelines.

Funding

Work supported by the Sinergia SNFNS-170873 Grant.

License

This software is distributed under the open-source 3-Clause BSD License. See license for more details.

All trademarks referenced herein are property of their respective holders.

Copyright (C) 2009-2022, Hospital Center and University of Lausanne (UNIL-CHUV), Ecole Polytechnique Fdrale de Lausanne (EPFL), Switzerland & Contributors.

Owner

  • Name: Connectomics Lab
  • Login: connectomicslab
  • Kind: organization
  • Location: Radiology Research Center - Lausanne University Hospital

JOSS Publication

Connectome Mapper 3: A Flexible and Open-Source Pipeline Software for Multiscale Multimodal Human Connectome Mapping
Published
June 27, 2022
Volume 7, Issue 74, Page 4248
Authors
Sebastien Tourbier ORCID
Radiology Department, Centre Hospitalier Universitaire Vaudois and University of Lausanne (CHUV-UNIL), Switzerland
Joan Rue-Queralt ORCID
Radiology Department, Centre Hospitalier Universitaire Vaudois and University of Lausanne (CHUV-UNIL), Switzerland
Katharina Glomb ORCID
Berlin Institute of Health at Charité; Department of Neurology with Experimental Neurology, Brain Simulation Section, Charité Universitätsmedizin Berlin, corporate member of Freie Universität Berlin and Humboldt-Universität zu Berlin, Berlin, Germany
Yasser Aleman-Gomez ORCID
Radiology Department, Centre Hospitalier Universitaire Vaudois and University of Lausanne (CHUV-UNIL), Switzerland
Emeline Mullier ORCID
Radiology Department, Centre Hospitalier Universitaire Vaudois and University of Lausanne (CHUV-UNIL), Switzerland
Alessandra Griffa ORCID
Department of Clinical Neurosciences, Division of Neurology, Geneva University Hospitals and Faculty of Medicine, University of Geneva, Geneva, Switzerland, Institute of Bioengineering, Center of Neuroprosthetics, École Polytechnique Fédérale De Lausanne (EPFL), Geneva, Switzerland
Mikkel Schöttner ORCID
Radiology Department, Centre Hospitalier Universitaire Vaudois and University of Lausanne (CHUV-UNIL), Switzerland
Jonathan Wirsich ORCID
EEG and Epilepsy Unit, University Hospitals and Faculty of Medicine of Geneva, University of Geneva, Geneva, Switzerland
M. Anıl Tuncel ORCID
Blue Brain Project, École polytechnique fédérale de Lausanne (EPFL), Campus Biotech, Geneva, Switzerland
Jakub Jancovic ORCID
Foxight, Geneva, Switzerland
Meritxell Bach Cuadra ORCID
CIBM Center for Biomedical Imaging, Lausanne, Switzerland, Radiology Department, Centre Hospitalier Universitaire Vaudois and University of Lausanne (CHUV-UNIL), Switzerland
Patric Hagmann ORCID
Radiology Department, Centre Hospitalier Universitaire Vaudois and University of Lausanne (CHUV-UNIL), Switzerland
Editor
Øystein Sørensen ORCID
Tags
neuroscience pipeline workflow connectome multi-scale MRI BIDS BIDS App containerized workflows nipype

GitHub Events

Total
  • Issues event: 5
  • Watch event: 2
  • Delete event: 1
  • Issue comment event: 3
  • Push event: 2
  • Fork event: 1
  • Create event: 2
Last Year
  • Issues event: 5
  • Watch event: 2
  • Delete event: 1
  • Issue comment event: 3
  • Push event: 2
  • Fork event: 1
  • Create event: 2

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 3,464
  • Total Committers: 18
  • Avg Commits per committer: 192.444
  • Development Distribution Score (DDS): 0.155
Past Year
  • Commits: 37
  • Committers: 1
  • Avg Commits per committer: 37.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Sebastien Tourbier s****1@g****m 2,927
Emeline Mullier 4****r 181
Adrien Birbaumer a****r@g****m 62
Joan Rue j****q@g****m 51
katharina k****b@g****m 51
davidrs06 c****t@L****) 38
davidrs06 d****o@e****h 36
Adrien Birbaumer a****r@g****m 33
allcontributors[bot] 4****] 24
Øystein Sørensen o****n@h****m 16
Mikkel Schöttner m****r@y****e 15
Anil Tuncel a****l@e****h 15
Alessandra Griffa a****a@e****h 7
inkuba j****j@y****m 2
jwirsich j****h@u****h 2
Katharina Glomb k****b@u****u 2
Maxim Bulatov d****t@g****m 1
Stephan Heunis s****s@f****e 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 55
  • Total pull requests: 64
  • Average time to close issues: 3 months
  • Average time to close pull requests: 21 days
  • Total issue authors: 19
  • Total pull request authors: 9
  • Average comments per issue: 1.58
  • Average comments per pull request: 0.89
  • Merged pull requests: 51
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 3
  • Pull requests: 4
  • Average time to close issues: 1 day
  • Average time to close pull requests: 8 days
  • Issue authors: 3
  • Pull request authors: 2
  • Average comments per issue: 0.67
  • Average comments per pull request: 0.5
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 1
Top Authors
Issue Authors
  • sebastientourbier (15)
  • jsheunis (12)
  • milad7093 (6)
  • MeropGont (3)
  • mschoettner (3)
  • KyleeCJ (2)
  • jwirsich (1)
  • osorensen (1)
  • IsottaR (1)
  • hugofluhr (1)
  • ldweinstock (1)
  • zyy1219888 (1)
  • ulgenklc (1)
  • smeisler (1)
  • iPsych (1)
Pull Request Authors
  • sebastientourbier (42)
  • emullier (20)
  • osorensen (4)
  • joanrue (2)
  • dependabot[bot] (2)
  • stefanches7 (1)
  • eltociear (1)
  • mschoettner (1)
  • jsheunis (1)
Top Labels
Issue Labels
bug (17) enhancement (5) high-priority (4) Brainhack21! (4) documentation (3) mid-effort (3) big-effort (3) little-effort (3) high-impact (3) refactoring (2) Brainhack22! (1) maintenance (1) medium-priority (1) BrainHack! (1) infra (1) help wanted (1)
Pull Request Labels
enhancement (7) release (5) documentation (4) big-effort (4) maintenance (3) bug-fix (3) bug (3) little-effort (2) mid-effort (2) refactoring (2) high-impact (2) Brainhack21! (2) dependencies (2) infra (1) good first issue (1) paper (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 36 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 6
  • Total maintainers: 1
pypi.org: connectomemapper

Connectome Mapper 3: A Flexible and Open-Source Pipeline Software for Multiscale Multimodal Human Connectome Mapping

  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 36 Last month
Rankings
Forks count: 7.4%
Stargazers count: 8.8%
Dependent packages count: 10.1%
Average: 15.5%
Dependent repos count: 21.6%
Downloads: 29.6%
Maintainers (1)
Last synced: 4 months ago

Dependencies

.github/workflows/draft-pdf.yml actions
  • actions/checkout v2 composite
  • actions/upload-artifact v1 composite
  • openjournals/openjournals-draft-action master composite
Dockerfile docker
  • main latest build
  • neurocondabuntu latest build
  • ubuntu xenial-20210804 build
docker/requirements.txt pypi
  • coverage ==5.2.1
  • datalad ==0.19.2
  • datalad-container ==1.1.6
  • datalad-neuroimaging ==0.3.1
  • duecredit ==0.8.0
  • mne ==0.24.1
  • mne_connectivity ==0.3
  • networkx ==2.6.3
  • nibabel ==3.2.2
  • numpy ==1.21.0
  • pybids ==0.14.0
  • pycartool ==0.1.1
  • pydicom ==2.2.2
  • scikit-image ==0.16.2
  • statsmodels ==0.13.1
docs/requirements.txt pypi
  • dipy ==1.3.0
  • grabbit *
  • matplotlib *
  • nbsphinx ==0.8.8
  • nibabel ==3.2.2
  • nipype ==1.7.0
  • pybids ==0.14.0
  • pycartool ==0.1.1
  • pyface ==7.3.0
  • readthedocs-sphinx-ext ==2.1.4
  • recommonmark ==0.7.1
  • sphinx ==4.2.0
  • sphinx-argparse ==0.3.1
  • sphinx-autodoc-typehints ==1.12.0
  • sphinx-copybutton ==0.5.0
  • sphinx-gallery ==0.10.1
  • sphinx_rtd_theme ==1.0.0
  • sphinxcontrib-apidoc ==0.3.0
  • sphinxcontrib-napoleon ==0.7
  • traits ==6.3.2
  • traitsui ==7.2.0
setup.py pypi
conda/environment.yml conda
  • dipy 1.3.0.*
  • fsleyes 1.3.3.*
  • git-annex 10.20220724.*
  • graphviz 2.50.0.*
  • indexed_gzip
  • mrtrix3 3.0.3.*
  • pip 22.2.*
  • pyqt 5.15.4.*
  • pyqt5-sip 12.9.0.*
  • python 3.9.*
  • qt 5.15.4.*
docker/environment.yml conda
  • ants 2.2.0.*
  • configparser 5.0.0.*
  • cvxpy 1.3.1.*
  • cvxpy-base 1.3.1.*
  • dipy 1.3.0.*
  • git-annex 8.20200617.*
  • graphviz 2.40.1.*
  • matplotlib 3.2.2.*
  • mrtrix3 3.0.2.*
  • nipype 1.8.0.*
  • numpy 1.21.0.*
  • obspy 1.2.2.*
  • pip 20.1.1.*
  • pydotplus 2.0.2.*
  • python 3.8.*
  • traits 6.2.0.*
  • traitsui 7.0.0.*