Skip to content

0.10.3

Compare
Choose a tag to compare
@Remi-Gau Remi-Gau released this 29 Jan 09:22
· 78 commits to main since this release
a950195

Released January 2024

HIGHLIGHTS

Warning

Support for python 3.7 has been dropped. We recommend moving to python >= 3.11.

Minimum supported versions of packages have been bumped up:

  • Numpy – v1.19.0
  • SciPy – v1.8.0
  • Scikit-learn – v1.0.0
  • Nibabel – v4.0.0
  • Pandas – v1.1.5
  • Joblib – v1.0.0

NEW

  • The temp_file_lifetime parameter of interactive plots’ open_in_browser method is deprecated and has no effect (#4180 by Jerome Dockes)..

Fixes

Enhancements

Changes

  • Expose scipy CubicSpline extrapolate parameter in clean to control the interpolation of censored volumes in both ends of the BOLD signal data (#4028 by Jordi Huguet).

  • Make nilearn.reporting._get_clusters_table module public and move copy_img out of nilearn._utils.niimg (#4166 by Rémi Gau).

  • Private utility context manager write_tmp_imgs is refactored into function write_imgs_to_path (#4094 by Yasmin Mzayek).

  • Move user facing function concat_niimgs out of private module nilearn._utils.niimg_conversions (#4167 by Rémi Gau).

  • Remove leading underscore from non private functions to align with PEP8 (#4086 by Rémi Gau).

  • Make decoding/proximal_operator explicitly private to align with PEP8 (#4153 by Rémi Gau).

  • Make private functions public when used outside of their module nilearn.interface to align with PEP8 (#4168 by Rémi Gau).

  • img_to_signals_labels will also return masked_atlas in release 0.15. Meanwhile, use return_masked_atlas parameter to enable/disable this behavior. (#3761 by Mohammad Torabi).

  • cation Rename the parameter contrast_type in compute_contrast and attribute contrast_type in Contrast to stat_type (#4191 by Rémi Gau).

  • plot_surf_roi will raise a warning if roi_map contains negative or non-integer values; in version 0.13 this will be a ValueError (#4131 by Michelle Wang).

  • nilearn.datasets.fetch_bids_langloc_dataset will be deprecated in release 0.13 as it returns data simuilar to fetch_language_localizer_demo_dataset (#4219 by Rémi Gau).

  • the default parameter of fd_threshold and std_dvars_threshold in load_confounds with be updated to match fmriprep default in version 0.13 (#4225 by Hao-Ting Wang).

  • Combine GLM examples plot_fixed_effect and plot_fiac_analysis into a a single example plot_two_runs_model (#3191 by Taylor Salo and Rémi Gau).

  • Switch to using tox to manage environments during development and testing. All plotting python dependencies (matplotlib AND plotly) are now installed when running pip install nilearn[plotting] (#4029 by Rémi Gau).

List of pull requests

  • [MAINT] Post release 0.10.2 by @Remi-Gau in #4022
  • [FIX] fix spelling by @Remi-Gau in #4026
  • [MAINT] Add python 3.12 to CI by @Remi-Gau in #4023
  • [FIX] Allow MultiNiftiMasker to use generate_report method by @ymzayek in #4001
  • [MAINT] Implement deprecation warnings-as-errors in prerelease test using pytest fixture by @ymzayek in #3936
  • [MAINT] Ignore private visual testing file when running pytest by @ymzayek in #4030
  • [BOT] update pre-commit hooks by @github-actions in #4041
  • [DOC] Change all block splitters in examples to use short syntax by @ymzayek in #4031
  • [MAINT] Update issue labels by @Remi-Gau in #4036
  • [MAINT] Add partial build specific to CI doc build workflow by @ymzayek in #4044
  • [ENH] Allow setting vmin in plot_glass_brain and plot_stat_map by @michellewang in #3993
  • [MAINT] Use correct target name for Makefile recipe by @ymzayek in #4045
  • [MAINT] Rename and move testing utilities under tests directory in each module by @ymzayek in #4047
  • [MAINT] refactor is plotly installed by @Remi-Gau in #4034
  • [FIX] fix typos in Harvard Oxford atlas labels by @Remi-Gau in #4035
  • [ENH] add readme to default data locations by @Remi-Gau in #4037
  • [DOC] link terms to glossary by @Remi-Gau in #4038
  • [DOC] update URLs with http:// to https:// by @DimitriPapadopoulos in #4050
  • [DOC] Fix wrong indentation of example code by @ymzayek in #4053
  • [BOT] update AUTHORS.rst and doc/changes/names.rst by @github-actions in #4058
  • [BOT] update pre-commit hooks by @github-actions in #4059
  • [MAINT] Use rng fixture for setting up np.random.RandomState() - part 2 by @ymzayek in #4054
  • [MAINT] use affine_eye fixture by @Remi-Gau in #4056
  • [MAINT] Refactor fixture for plotting by @Remi-Gau in #4057
  • [DOC] move default from end of argument description to type name by @Remi-Gau in #4040
  • [MAINT fix typo in fixture name by @Remi-Gau in https://github.com//pull/4062
  • [MAINT] Pytest fixture to ignore internal deprecation warnings by @ymzayek in #4043
  • [MAINT] change function privacy in _utils by @Remi-Gau in #4061
  • [MAINT] change future warning to deprecation warning by @Remi-Gau in #4060
  • [MAINT] Use rng fixture for setting up np.random.RandomState() - part 1 by @ymzayek in #4052
  • [FIX] fix experimental example private function in monkeypatch by @Remi-Gau in #4065
  • [DOC] Formatting of docstring in regions.Parcellations by @NIkhilgKrish in #4042
  • [MAINT] Use rng fixture instead of check_random_state by @Remi-Gau in #4063
  • [STY] Minor doc formatting by @Remi-Gau in #4072
  • [BOT] update pre-commit hooks by @github-actions in #4075
  • [ENH] Allow pandas.Series as valid input for second_level_input by @Remi-Gau in #4070
  • [ENH] pad t and F 'short' contrasts with zeros by @Remi-Gau in #4067
  • [DOC] Fix failing docs on main by @ymzayek in #4079
  • [MAINT] refactor of tests and code in GLM module by @Remi-Gau in #4066
  • [MAINT] drop python 3.7 by @Remi-Gau in #4033
  • [DOC] Make scope limit more obvious regarding accepting new downloaders by @Remi-Gau in #4080
  • [DOC][MAINT] Remove restriction on Sphinx version by @ymzayek in #4081
  • [FIX] image.clean_img() kwargs integration by @MIZwally in #4051
  • [BOT] update AUTHORS.rst and doc/changes/names.rst by @github-actions in #4083
  • [FIX] fix typo by @Remi-Gau in #4091
  • [MAINT] update DOI and add RRID by @Remi-Gau in #4032
  • [DOC] mention checking badges during release by @Remi-Gau in #4085
  • [MAINT] Fix Zenodo DOI badge by @ymzayek in #4093
  • [BOT] update pre-commit hooks by @github-actions in #4097
  • [DOC] Remove extraneous hash symbols for examples' section splitters by @ymzayek in #4096
  • [DOC] Improve docstring rendering for typed experimental surface module by @ymzayek in #4049
  • [DOC] Add tagging of release version to stable doc build by @ymzayek in #4100
  • [FIX] Disable extrapolation of out-of-bounds volumes by @jhuguetn in #4028
  • [BOT] update AUTHORS.rst and doc/changes/names.rst by @github-actions in #4102
  • [MAINT] Add listing utilities by @NicolasGensollen in #2991
  • [MAINT] Pin kaleido version to 0.1.0.post1 for windows by @ymzayek in #4101
  • [BOT] update pre-commit hooks by @github-actions in #4105
  • [MAINT] Rewrite write_tmp_imgs function and use it with pytest's tmp_path by @ymzayek in #4094
  • [MAINT] Use Numpy Random Generator to replace legacy RandomState by @ymzayek in #4084
  • [MAINT] Store 1 timepoint for 4D generating a report with the maskers by @ymzayek in #3935
  • [DOC] Speed up fit computation with parallel processing by @ymzayek in #4108
  • [REF] Clarify code in find_parcellation_cut_coords function by @ymzayek in #4107
  • [MAINT] using tox to test in different environments by @Remi-Gau in #4029
  • [DOC] Fix label in changelog by @Remi-Gau in #4114
  • [DOC] Clarify docstrings of plotting functions in img_plotting by @ymzayek in #4115
  • [EHN] Implement signal.clean to SurfaceMasker by @htwangtw in #4117
  • [ENH] Update binarize_img for negative value handling by @smeisler in #4121
  • [ENH] Colorbar ticks at threshold values by @NicolasGensollen in #2887
  • [ENH] Add new returns to NiftiLabelsMasker's transform output by @mtorabi59 in #3761
  • [ENH] Set appropriate cut coordinates for NiftiLabelsMasker reports by @ymzayek in #4099
  • [MAINT] minor pre-commit fix by @Remi-Gau in #4125
  • [ENH] Let _check_embedded_nifti_masker work with surface masker by @ymzayek in #4120
  • [MAINT] Test against Numpy 2.0 nightly releases by @ymzayek in #4130
  • [MAINT] Remove trigger on PR for numpy2 test by @ymzayek in #4133
  • [DOC] Mention classification type in plot_haxby_glm_decoding.py by @TamerGezici in #4122
  • [BOT] update AUTHORS.rst and doc/changes/names.rst by @github-actions in #4134
  • [MAINT] remove leading underscore from non private functions by @Remi-Gau in #4086
  • [ENH] NiftiSpheresMasker reports by @NicolasGensollen in #3102
  • [BOT] update pre-commit hooks by @github-actions in #4142
  • Bump actions/setup-python from 4 to 5 by @dependabot in #4143
  • Don't use get_tmaps=True if tmaps aren't used by @crossmanith in #4136
  • [BOT] update AUTHORS.rst and doc/changes/names.rst by @github-actions in #4148
  • [ENH] Raise error when negative or non-integer ROI values are passed to plot_surf_roi by @michellewang in #4131
  • [DOC] Specify full form of LSS in beta series tutorial by @TamerGezici in #4141
  • [MAINT] Apply Black to nifti_labels_masker.py by @ymzayek in #4146
  • [MAINT] Apply Black to reporting files by @ymzayek in #4145
  • [MAINT] Apply Black img_plotting.py by @ymzayek in #4147
  • [INFRA] Remove CI workflow to error on DeprecationWarnings of dependencies by @ymzayek in #4149
  • [MAINT] Apply Black to nifti_spheres_masker.py by @ymzayek in #4144
  • [MAINT] Improve error for nifti masker when fit is called without imgs or mask_img by @ymzayek in #4151
  • [MAINT] make proximal_operator a private module by @Remi-Gau in #4153
  • [ENH] rename nilearn.datasets._utils.fetch_file to nilearn.datasets._utils.fetch_single_file by @Remi-Gau in #4156
  • [MAINT] make __all__ and API doc more consistent by @Remi-Gau in #4157
  • [MAINT] relocate functions from nilearn.datasets.utils by @Remi-Gau in #4154
  • [FIX] Load compcor related confounds generated from fmriprep 21.x series by @htwangtw in #3285
  • [STY] run black on nilearn/interfaces/fmriprep by @Remi-Gau in #4163
  • [FIX] Adjust figure size to display title for functions calling plot_surf by @ymzayek in #4164
  • [FIX] fix SimpleRegressionResults by @Remi-Gau in #4071
  • [BOT] update pre-commit hooks by @github-actions in #4169
  • [ENH] integrate load_confounds into first_level_from_bids by @Remi-Gau in #4103
  • Bump actions/upload-artifact from 3 to 4 by @dependabot in #4170
  • Updated docs for fetch_abide_pcp by @SuramyaP in #4159
  • [BOT] update AUTHORS.rst and doc/changes/names.rst by @github-actions in #4174
  • [MAINT] nilearn.interface: make private functions used outside of their module public by @Remi-Gau in #4168
  • [DOC] link surface terms to glossary by @Remi-Gau in #4161
  • [STY] apply black to nilearn._utils.data_gen by @Remi-Gau in #4171
  • [BOT] update pre-commit hooks by @github-actions in #4179
  • [INFRA] Proposal for building stable docs in remote runner for releases by @ymzayek in #4160
  • [INFRA] Quick fix for automated stable doc build by @ymzayek in #4181
  • [INFRA] Fix auto trigger for release doc build in Actions workflow by @ymzayek in #4182
  • [FIX] use a local server rather than temp file to open plots in a browser by @jeromedockes in #4180
  • [FIX] rich display in jupyter notebook/lab by @jeromedockes in #4183
  • [MAINT] move user facing functions out of private modules by @Remi-Gau in #4166
  • [MAINT] move user facing functions out of private modules - part 2 by @Remi-Gau in #4167
  • [FIX] use parameter deprecation decorator by @Remi-Gau in #4189
  • [BOT] update pre-commit hooks by @github-actions in #4193
  • [STY] deal with private functions in nilearn.glm that do not coform to PEP8 naming by @Remi-Gau in #4190
  • [ENH] Allow string expressions for second_level_contrast of non_parametric_inference by @ymzayek in #4150
  • [FIX] rename contrast_type to stat_type by @Remi-Gau in #4191
  • [DOC] fix edit button for examples by @Remi-Gau in #4196
  • [MAINT] remove duplicate dependency by @Remi-Gau in #4199
  • [MAINT] remove some old mention of nistats by @Remi-Gau in #4200
  • [MAINT] make private functions in nilearn.plotting used outside of their module public by @Remi-Gau in #4197
  • [MAINT] testing minimal version of dependencies by @Remi-Gau in #4068
  • [MAINT] sort changelog by labels by @Remi-Gau in #4201
  • [MAINT] Remove unnecessary lines describe in test_clean_psc by @paul-reiners in #4208
  • [BOT] update AUTHORS.rst and doc/changes/names.rst by @github-actions in #4213
  • [DOC] format citation by @Remi-Gau in #4212
  • [DOC] replace session by run to align with BIDS terminology by @Remi-Gau in #4214
  • Bump actions/setup-python from 4 to 5 by @dependabot in #4217
  • [FIX] fix plotting of an image with color bar when maximum value is exactly zero by @Remi-Gau in #4204
  • [FIX] Fix PSC normalization when a high-pass filter is applied by @ymzayek in #4116
  • [MAINT] Adapt decoder for scikit-learn > 1.3 by @ymzayek in #4188
  • [DOC] update dataset descriptions by @Remi-Gau in #4215
  • [DOC] Combine similar two-runs GLM examples by @tsalo in #3191
  • [MAINT] speed up tests for html reports by @Remi-Gau in #4221
  • [DEP] deprecate bids_langloc fetcher by @Remi-Gau in #4219
  • FIX/EHN update load_confound_strategy defaults by @htwangtw in #4225
  • [FIX] Let decoder accept list of paths as input by @ymzayek in #4227
  • [FIX] Ensure that fetchers for atlas and func return a Bunch by @Remi-Gau in #4233
  • [MAINT] Examples output all their results in a single main directory by @Remi-Gau in #4230
  • Bump actions/cache from 3 to 4 by @dependabot in #4234
  • [DOC] update version in sphinx directives by @Remi-Gau in #4238
  • [DOC] sort changelog and add highlights by @Remi-Gau in #4237
  • [STY] apply black 24.1.0 by @Remi-Gau in #4162
  • [DOC] remove warning from experimental module and add it as doc string by @Remi-Gau in #4240
  • [STY] re apply black by @Remi-Gau in #4241
  • Release 0.10.3 by @Remi-Gau in #4242

New Contributors

Full Changelog: 0.10.2...0.10.3