update: add support for pre-commit #232
49 changed files with 195 additions and 145 deletions
2
.github/ISSUE_TEMPLATE/dataset-request.yml
vendored
2
.github/ISSUE_TEMPLATE/dataset-request.yml
vendored
|
|
@ -10,7 +10,7 @@ body:
|
|||
attributes:
|
||||
value: |
|
||||
Fill in this form if you want that junifer includes a new dataset.
|
||||
|
||||
|
||||
As a reminder, junifer supports customising the `PatternDataGrabber` and `PatternDataladDatagrabber` which should work in most cases.
|
||||
|
||||
If it is a widely used dataset, we could alternatevely create a new _DataGrabber_ that simplifies the usage, by already configuring the underlying `PatternDataGrabber` or `PatternDataladDatagrabber`
|
||||
|
|
|
|||
2
.github/workflows/ci-docs.yml
vendored
2
.github/workflows/ci-docs.yml
vendored
|
|
@ -47,4 +47,4 @@ jobs:
|
|||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
fail_ci_if_error: true
|
||||
flags: docs
|
||||
if: success() && matrix.python-version == 3.10
|
||||
if: success() && matrix.python-version == 3.10
|
||||
|
|
|
|||
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -134,4 +134,4 @@ cython_debug/
|
|||
|
||||
junifer/_version.py
|
||||
scratch/
|
||||
junifer_jobs/
|
||||
junifer_jobs/
|
||||
|
|
|
|||
48
.pre-commit-config.yaml
Normal file
48
.pre-commit-config.yaml
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
ci:
|
||||
autofix_prs: false
|
||||
autoupdate_commit_msg: "chore: bump pre-commit repositories"
|
||||
|
||||
repos:
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: v4.4.0
|
||||
hooks:
|
||||
- id: check-ast
|
||||
- id: check-docstring-first
|
||||
- id: check-executables-have-shebangs
|
||||
- id: check-merge-conflict
|
||||
- id: check-yaml
|
||||
- id: check-toml
|
||||
- id: debug-statements
|
||||
- id: end-of-file-fixer
|
||||
- id: trailing-whitespace
|
||||
args: [--markdown-linebreak-ext=md]
|
||||
- repo: https://github.com/abravalheri/validate-pyproject
|
||||
rev: v0.12.2
|
||||
hooks:
|
||||
- id: validate-pyproject
|
||||
- repo: https://github.com/psf/black
|
||||
rev: 23.3.0
|
||||
hooks:
|
||||
- id: black
|
||||
exclude: ^(docs/|examples/|tools/)
|
||||
args: [--check]
|
||||
- repo: https://github.com/charliermarsh/ruff-pre-commit
|
||||
rev: v0.0.267
|
||||
hooks:
|
||||
- id: ruff
|
||||
exclude: ^(__init__.py)
|
||||
args: [--format, grouped, --show-fixes]
|
||||
- repo: https://github.com/codespell-project/codespell
|
||||
rev: v2.2.4
|
||||
hooks:
|
||||
- id: codespell
|
||||
exclude: ^(.github/|docs/)
|
||||
args: [--config, tox.ini]
|
||||
- repo: https://github.com/pre-commit/pygrep-hooks
|
||||
rev: v1.10.0
|
||||
hooks:
|
||||
- id: python-no-eval
|
||||
- id: python-no-log-warn
|
||||
- id: rst-backticks
|
||||
- id: rst-directive-colons
|
||||
- id: rst-inline-touching-normal
|
||||
|
|
@ -648,4 +648,4 @@ specific requirements.
|
|||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a “copyright disclaimer” for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU AGPL, see
|
||||
<<http://www.gnu.org/licenses/>>.
|
||||
<<http://www.gnu.org/licenses/>>.
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||

|
||||
[](https://github.com/psf/black)
|
||||
[](https://github.com/charliermarsh/ruff)
|
||||
[](https://github.com/pre-commit/pre-commit)
|
||||
|
||||
## About
|
||||
|
||||
|
|
|
|||
|
|
@ -36,4 +36,4 @@ flag_management:
|
|||
threshold: 1%
|
||||
- type: patch
|
||||
target: 95%
|
||||
threshold: 1%
|
||||
threshold: 1%
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ clean:
|
|||
local: news
|
||||
make _build_local; STATUS=$$?; make news_cleanup; exit $$STATUS
|
||||
|
||||
news:
|
||||
news:
|
||||
@echo "Generating whats_new.rst"
|
||||
cd ../ && towncrier build --keep
|
||||
|
||||
|
|
|
|||
2
docs/_static/css/custom.css
vendored
2
docs/_static/css/custom.css
vendored
|
|
@ -43,4 +43,4 @@ body:not([data-theme="light"]) .mermaid svg .edgeLabel {
|
|||
body:not([data-theme="light"]) .mermaid svg .marker{
|
||||
stroke: white !important;
|
||||
fill: white !important;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
2
docs/_static/js/custom.js
vendored
2
docs/_static/js/custom.js
vendored
|
|
@ -11,4 +11,4 @@ for (i = 0; i < coll.length; i++) {
|
|||
content.style.display = "block";
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
2
docs/_templates/versions.html
vendored
2
docs/_templates/versions.html
vendored
|
|
@ -2,7 +2,7 @@
|
|||
<div class="sidebar-tree">
|
||||
<p class="version-select">
|
||||
<span class="caption-text">Other Versions</span>
|
||||
</p>
|
||||
</p>
|
||||
<div id="versions">
|
||||
{% if versions.branches %}
|
||||
<span class="caption-text">{{ _('Branches') }}</span>
|
||||
|
|
|
|||
|
|
@ -41,8 +41,8 @@ Configs
|
|||
External
|
||||
--------
|
||||
|
||||
.. toctree::
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:caption: Contents:
|
||||
|
||||
nilearn.rst
|
||||
nilearn.rst
|
||||
|
|
|
|||
2
docs/changes/newsfragments/.gitignore
vendored
2
docs/changes/newsfragments/.gitignore
vendored
|
|
@ -1 +1 @@
|
|||
!.gitignore
|
||||
!.gitignore
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Improve general prose, formatting and code blocks in docs and set line length for ``.rst`` files to 80 by `Synchon Mandal`_
|
||||
Improve general prose, formatting and code blocks in docs and set line length for ``.rst`` files to 80 by `Synchon Mandal`_
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Rename ``junifer.testing.datagrabbers.SPMAuditoryTestingDatagrabber`` to :class:`.SPMAuditoryTestingDataGrabber` and ``junifer.testing.datagrabbers.OasisVBMTestingDatagrabber`` to :class:`.OasisVBMTestingDataGrabber` by `Synchon Mandal`_
|
||||
Rename ``junifer.testing.datagrabbers.SPMAuditoryTestingDatagrabber`` to :class:`.SPMAuditoryTestingDataGrabber` and ``junifer.testing.datagrabbers.OasisVBMTestingDatagrabber`` to :class:`.OasisVBMTestingDataGrabber` by `Synchon Mandal`_
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Rename instances of "Datagrabber" to "DataGrabber" especially in ``junifer.testing`` to be consistent by `Synchon Mandal`_
|
||||
Rename instances of "Datagrabber" to "DataGrabber" especially in ``junifer.testing`` to be consistent by `Synchon Mandal`_
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Enable YAML 1.2 support and allow multiline strings in YAML which would not work earlier by `Synchon Mandal`_
|
||||
Enable YAML 1.2 support and allow multiline strings in YAML which would not work earlier by `Synchon Mandal`_
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Use ``ruamel.yaml`` instead of ``pyyaml`` as YAML I/O library by `Synchon Mandal`_
|
||||
Use ``ruamel.yaml`` instead of ``pyyaml`` as YAML I/O library by `Synchon Mandal`_
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Adopt ``ruff`` as the only linter for the codebase by `Synchon Mandal`_
|
||||
Adopt ``ruff`` as the only linter for the codebase by `Synchon Mandal`_
|
||||
|
|
|
|||
1
docs/changes/newsfragments/232.misc
Normal file
1
docs/changes/newsfragments/232.misc
Normal file
|
|
@ -0,0 +1 @@
|
|||
Adopt ``pre-commmit`` for adding and managing git pre-commit hooks by `Synchon Mandal`_
|
||||
|
|
@ -38,6 +38,12 @@ Setting up the local development environment
|
|||
|
||||
Now you can make your changes locally.
|
||||
|
||||
#. Make sure you install git pre-commit hooks like so:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
pre-commit install
|
||||
|
||||
#. When making changes locally, it is helpful to ``git commit`` your work
|
||||
regularly. On one hand to save your work and on the other hand, the smaller
|
||||
the steps, the easier it is to review your work later. Please use `semantic
|
||||
|
|
@ -49,6 +55,14 @@ Setting up the local development environment
|
|||
git add .
|
||||
git commit -m "<prefix>: <summary of changes>"
|
||||
|
||||
In case, you want to commit some WIP (work-in-progress) code, please indicate
|
||||
that in the commit message and use the flag ``--no-verify`` with
|
||||
``git commit`` like so:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
git commit --no-verify -m "WIP: <summary of changes>"
|
||||
|
||||
#. When you're done making changes, check that your changes pass our test suite.
|
||||
This is all included with ``tox``.
|
||||
|
||||
|
|
@ -62,7 +76,6 @@ Setting up the local development environment
|
|||
|
||||
tox --parallel
|
||||
|
||||
|
||||
#. Push your branch to GitHub.
|
||||
|
||||
.. code-block:: bash
|
||||
|
|
|
|||
|
|
@ -35,9 +35,9 @@ c. the experiment included resting-stage fMRI and a task named *stroop*
|
|||
|
||||
then the *element* should be composed of 3 items:
|
||||
|
||||
* ``subject``: The subject IDs, e.g. `sub001`, `sub002`, ... `sub020`
|
||||
* ``session``: The session number, e.g. `ses1`, `ses2`
|
||||
* ``task``: The task performed, e.g. `rest`, `stroop`
|
||||
* ``subject``: The subject IDs, e.g. ``sub001``, ``sub002``, ... ``sub020``
|
||||
* ``session``: The session number, e.g. ``ses1``, ``ses2``
|
||||
* ``task``: The task performed, e.g. ``rest``, ``stroop``
|
||||
|
||||
If any of these items were not part of the element, then we will have more than
|
||||
one ``T1w`` and / or ``BOLD`` image for each subject, which is not allowed.
|
||||
|
|
@ -49,9 +49,10 @@ for the element (``sub001``, ``ses1``, ``rest``) will be the same as the
|
|||
``T1w`` image for the element (``sub001``, ``ses1``, ``stroop``).
|
||||
|
||||
We will now continue this section using as an example, a dataset in BIDS format
|
||||
in which 9 subjects (`sub-01` to `sub-09`) were scanned each during 3
|
||||
sessions (`ses-01`, `ses-02`, `ses-03`) and each session included a `T1w` and
|
||||
a `BOLD` image (resting-state), except for `ses-03` which was only anatomical.
|
||||
in which 9 subjects (``sub-01`` to ``sub-09``) were scanned each during 3
|
||||
sessions (``ses-01``, ``ses-02``, ``ses-03``) and each session included a
|
||||
``T1w`` and a ``BOLD`` image (resting-state), except for ``ses-03`` which was
|
||||
only anatomical.
|
||||
|
||||
Step 2: Think about the dataset's structure
|
||||
-------------------------------------------
|
||||
|
|
@ -63,7 +64,7 @@ the Data Grabber needs to be implemented.
|
|||
Junifer provides an abstract class to deal with datasets that can be thought in
|
||||
terms of *patterns*. A *pattern* is a string that contains placeholders that are
|
||||
replaced by the actual values of the element. In our BIDS example, the path
|
||||
to the T1w image of subject `sub-01` and session `ses-01`, relative to the
|
||||
to the T1w image of subject ``sub-01`` and session ``ses-01``, relative to the
|
||||
dataset location, is ``sub-01/ses-01/anat/sub-01_ses-01_T1w.nii.gz``. By
|
||||
replacing ``sub-01`` with ``sub-02``, we can obtain the T1w image of the first
|
||||
session of the second subject. Indeed, the path to the T1w images can be
|
||||
|
|
|
|||
|
|
@ -42,4 +42,4 @@
|
|||
|
||||
.. _`HTCondor`: https://research.cs.wisc.edu/htcondor/
|
||||
.. _`SLURM`: https://slurm.schedmd.com
|
||||
.. _`GNU Parallel`: https://www.gnu.org/software/parallel/
|
||||
.. _`GNU Parallel`: https://www.gnu.org/software/parallel/
|
||||
|
|
|
|||
|
|
@ -6,4 +6,4 @@
|
|||
<meta http-equiv="refresh" content="0; url=./main/index.html">
|
||||
<link rel="canonical" href="https://juaml.github.io/junifer/main/index.html">
|
||||
</head>
|
||||
</html>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Examples
|
||||
========
|
||||
|
||||
The following are a set of examples.
|
||||
The following are a set of examples.
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ markers:
|
|||
kind: ParcelAggregation
|
||||
parcellation: Schaefer1000x7
|
||||
method: std
|
||||
storage:
|
||||
storage:
|
||||
kind: SQLiteFeatureStorage
|
||||
uri: /data/project/ukb_motor/junifer_test/test.sqlite
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
#!/bin/bash
|
||||
|
||||
run_afni_docker.sh 3dAFNItoNIFTI "$@"
|
||||
run_afni_docker.sh 3dAFNItoNIFTI "$@"
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
#!/bin/bash
|
||||
|
||||
run_afni_docker.sh 3dRSFC "$@"
|
||||
run_afni_docker.sh 3dRSFC "$@"
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
#!/bin/bash
|
||||
|
||||
run_afni_docker.sh 3dReHo "$@"
|
||||
run_afni_docker.sh 3dReHo "$@"
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
#!/bin/bash
|
||||
|
||||
run_afni_docker.sh afni "$@"
|
||||
run_afni_docker.sh afni "$@"
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ corrected_args=()
|
|||
docker_args=()
|
||||
mounts=0
|
||||
for var in "$@"
|
||||
do
|
||||
do
|
||||
if [ -d "${var}" ]; then
|
||||
echo "$var is a directory"
|
||||
var=$(realpath "${var}")
|
||||
|
|
@ -36,4 +36,4 @@ echo "Corrected args for afni: ${corrected_args[*]}"
|
|||
cwd=$(pwd)
|
||||
cmd="docker run --rm ${docker_args[*]} -v ${cwd}:${cwd} -w ${cwd} afni/afni_make_build ${corrected_args[*]}"
|
||||
echo "Running command: ${cmd}"
|
||||
${cmd}
|
||||
${cmd}
|
||||
|
|
|
|||
|
|
@ -20,4 +20,4 @@ if [ -f "pre_run.sh" ]; then
|
|||
fi
|
||||
|
||||
echo "Running ${*} in virtual environment"
|
||||
"$@"
|
||||
"$@"
|
||||
|
|
|
|||
|
|
@ -16,4 +16,4 @@
|
|||
48.0 19.0 6.0 rIFG
|
||||
8.0 29.0 30.0 aMCC
|
||||
-45.0 27.0 30.0 lIFG
|
||||
11.0 7.0 7.0 rNcaud
|
||||
11.0 7.0 7.0 rNcaud
|
||||
|
|
|
|||
|
|
@ -6,4 +6,3 @@
|
|||
-36 -46 46 Parietal_Inf_L
|
||||
38 -46 44 Parietal_Inf_R
|
||||
-26 0 54 Frontal_Mid_L
|
||||
|
||||
|
|
|
|||
|
|
@ -4,4 +4,3 @@
|
|||
46 -62 32 rAG
|
||||
-24 -22 -20 lHF
|
||||
24 -22 -20 rHF
|
||||
|
||||
|
|
|
|||
|
|
@ -157,4 +157,4 @@
|
|||
-29 -88 8 post occipital
|
||||
13 -91 2 post occipital
|
||||
27 -91 2 post occipital
|
||||
-4 -94 12 post occipital
|
||||
-4 -94 12 post occipital
|
||||
|
|
|
|||
|
|
@ -7,4 +7,3 @@
|
|||
-34 -52 56 Parietal_Inf_L
|
||||
32 -52 50 Parietal_Inf_R
|
||||
32 6 58 Frontal_Mid_R
|
||||
|
||||
|
|
|
|||
|
|
@ -261,4 +261,4 @@
|
|||
-32 -1 54 261
|
||||
-42 -60 -9 262
|
||||
-17 -59 64 263
|
||||
29 -5 54 264
|
||||
29 -5 54 264
|
||||
|
|
|
|||
|
|
@ -12,4 +12,4 @@
|
|||
-58.0 -44.0 4.0 lpSTS
|
||||
54.0 28.0 6.0 rIFG
|
||||
-48.0 30.0 -12.0 lIFG
|
||||
48.0 -72.0 8.0 rV5
|
||||
48.0 -72.0 8.0 rV5
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
-2.0 8.0 50.0 aParacentralL
|
||||
8.0 32.0 46.0 rmpSFG
|
||||
-2.0 8.0 50.0 aParacentralL
|
||||
8.0 32.0 46.0 rmpSFG
|
||||
0.0 26.0 34.0 dMCC
|
||||
50.0 8.0 32.0 rIFJ
|
||||
40.0 22.0 -4.0 raI
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
-32.0 22.0 -2.0 aIns_l
|
||||
-48.0 10.0 26.0 IFG_l
|
||||
-32.0 22.0 -2.0 aIns_l
|
||||
-48.0 10.0 26.0 IFG_l
|
||||
-46.0 26.0 24.0 lPFCc_l
|
||||
-38.0 50.0 10.0 lPFCr_l
|
||||
36.0 22.0 -6.0 aIns_r
|
||||
|
|
@ -18,6 +18,6 @@
|
|||
-12.0 -12.0 12.0 Thal_l
|
||||
-16.0 2.0 14.0 Ncaud_l
|
||||
-16.0 0.0 2.0 GP_l
|
||||
12.0 -10.0 10.0 Thal_r
|
||||
12.0 -10.0 10.0 Thal_r
|
||||
-34.0 -66.0 -20.0 Cb_FG_l
|
||||
32.0 -64.0 -18.0 Cb_FG_r
|
||||
32.0 -64.0 -18.0 Cb_FG_r
|
||||
|
|
|
|||
|
|
@ -14,4 +14,4 @@
|
|||
10.0 -12.0 8.0 Thal_r
|
||||
-46.0 -60.0 -10.0 ITG_l
|
||||
22.0 6.0 4.0 Put_r
|
||||
-10.0 -16.0 6.0 Thal_l
|
||||
-10.0 -16.0 6.0 Thal_l
|
||||
|
|
|
|||
|
|
@ -20,14 +20,12 @@ _vois_path = Path(__file__).parent / "VOIs"
|
|||
# Path to the metadata of the VOIs
|
||||
_vois_meta_path = _vois_path / "meta"
|
||||
|
||||
"""
|
||||
A dictionary containing all supported coordinates and their respective file or
|
||||
data.
|
||||
# A dictionary containing all supported coordinates and their respective file
|
||||
# or data.
|
||||
|
||||
The built-in coordinates are files that are shipped with the package in the
|
||||
data/VOIs directory. The user can also register their own coordinates, which
|
||||
will be stored as numpy arrays in the dictionary.
|
||||
"""
|
||||
# The built-in coordinates are files that are shipped with the package in the
|
||||
# data/VOIs directory. The user can also register their own coordinates, which
|
||||
# will be stored as numpy arrays in the dictionary.
|
||||
_available_coordinates: Dict[
|
||||
str, Union[Path, Dict[str, Union[ArrayLike, List[str]]]]
|
||||
] = {
|
||||
|
|
|
|||
|
|
@ -63,16 +63,14 @@ def _fetch_icbm152_brain_gm_mask(
|
|||
return mask
|
||||
|
||||
|
||||
"""
|
||||
A dictionary containing all supported masks and their respective file or
|
||||
data.
|
||||
# A dictionary containing all supported masks and their respective file or
|
||||
# data.
|
||||
|
||||
The built-in masks are files that are shipped with the package in the
|
||||
data/masks directory. The user can also register their own masks.
|
||||
# The built-in masks are files that are shipped with the package in the
|
||||
# data/masks directory. The user can also register their own masks.
|
||||
|
||||
Callable masks should be functions that take at least one parameter:
|
||||
* `target_img`: the image to which the mask will be applied.
|
||||
"""
|
||||
# Callable masks should be functions that take at least one parameter:
|
||||
# * `target_img`: the image to which the mask will be applied.
|
||||
_available_masks: Dict[str, Dict[str, Any]] = {
|
||||
"GM_prob0.2": {"family": "Vickery-Patil"},
|
||||
"GM_prob0.2_cortex": {"family": "Vickery-Patil"},
|
||||
|
|
|
|||
|
|
@ -26,18 +26,16 @@ if TYPE_CHECKING:
|
|||
from nibabel import Nifti1Image
|
||||
|
||||
|
||||
"""
|
||||
A dictionary containing all supported parcellations and their respective valid
|
||||
parameters.
|
||||
# A dictionary containing all supported parcellations and their respective
|
||||
# valid parameters.
|
||||
|
||||
Each entry is a dictionary that must contain at least the following keys:
|
||||
* 'family': the parcellation's family name (e.g. 'Schaefer', 'SUIT')
|
||||
# Each entry is a dictionary that must contain at least the following keys:
|
||||
# * 'family': the parcellation's family name (e.g. 'Schaefer', 'SUIT')
|
||||
|
||||
Optional keys:
|
||||
* 'valid_resolutions': a list of valid resolutions for the parcellation
|
||||
(e.g. [1, 2])
|
||||
# Optional keys:
|
||||
# * 'valid_resolutions': a list of valid resolutions for the parcellation
|
||||
# (e.g. [1, 2])
|
||||
|
||||
"""
|
||||
# TODO: have separate dictionary for built-in
|
||||
_available_parcellations: Dict[str, Dict[Any, Any]] = {
|
||||
"SUITxSUIT": {"family": "SUIT", "space": "SUIT"},
|
||||
|
|
|
|||
|
|
@ -29,39 +29,37 @@ if TYPE_CHECKING:
|
|||
from pandas import DataFrame
|
||||
|
||||
|
||||
"""
|
||||
New BSD License
|
||||
# New BSD License
|
||||
|
||||
Copyright (c) 2007 - 2022 The nilearn developers.
|
||||
All rights reserved.
|
||||
# Copyright (c) 2007 - 2022 The nilearn developers.
|
||||
# All rights reserved.
|
||||
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
|
||||
a. Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
b. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
c. Neither the name of the nilearn developers nor the names of
|
||||
its contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior written
|
||||
permission.
|
||||
# a. Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
# b. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# c. Neither the name of the nilearn developers nor the names of
|
||||
# its contributors may be used to endorse or promote products
|
||||
# derived from this software without specific prior written
|
||||
# permission.
|
||||
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGE.
|
||||
"""
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
|
||||
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
||||
# DAMAGE.
|
||||
|
||||
|
||||
def _apply_mask_and_get_affinity(
|
||||
|
|
|
|||
|
|
@ -15,39 +15,37 @@ from numpy.testing import assert_array_equal
|
|||
from junifer.external.nilearn import JuniferNiftiSpheresMasker
|
||||
|
||||
|
||||
"""
|
||||
New BSD License
|
||||
# New BSD License
|
||||
|
||||
Copyright (c) 2007 - 2022 The nilearn developers.
|
||||
All rights reserved.
|
||||
# Copyright (c) 2007 - 2022 The nilearn developers.
|
||||
# All rights reserved.
|
||||
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
|
||||
a. Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
b. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
c. Neither the name of the nilearn developers nor the names of
|
||||
its contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior written
|
||||
permission.
|
||||
# a. Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
# b. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# c. Neither the name of the nilearn developers nor the names of
|
||||
# its contributors may be used to endorse or promote products
|
||||
# derived from this software without specific prior written
|
||||
# permission.
|
||||
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGE.
|
||||
"""
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
|
||||
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
||||
# DAMAGE.
|
||||
|
||||
|
||||
def test_seed_extraction() -> None:
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ repository = "https://github.com/juaml/junifer"
|
|||
junifer = "junifer.api.cli:cli"
|
||||
|
||||
[project.optional-dependencies]
|
||||
dev = ["tox"]
|
||||
dev = ["tox", "pre-commit"]
|
||||
docs = [
|
||||
"seaborn>=0.11.2,<0.12",
|
||||
"Sphinx>=5.3.0,<5.4",
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ with TemporaryDirectory() as tmpdir_name:
|
|||
),
|
||||
(
|
||||
f"anat/{t_sub}_space-MNI152NLin2009cAsym_"
|
||||
"desc-brain_mask.nii.gz"
|
||||
"desc-brain_mask.nii.gz"
|
||||
),
|
||||
(
|
||||
f"anat/{t_sub}_space-MNI152NLin2009cAsym_label-"
|
||||
|
|
|
|||
Loading…
Reference in a new issue