Releases: nilearn/nilearn
0.10.4
Released April 2024
HIGHLIGHTS
-
Use the appropriate HTML templates for nilearn.maskers.MultiNiftiMapsMasker and nilearn.maskers.MultiNiftiLabelsMasker reports that would lead to empty reports for MultiNiftiMapsMasker (#4310 by Rรฉmi Gau).
-
Fix color bar handling with color map with only 1 level (#4255 by Rรฉmi Gau).
-
Improve colorbar size and labels in mosaic display (#4284 by Rรฉmi Gau).
-
Remove unused **kwargs from nilearn.plotting.view_img and nilearn.plotting.plot_surf (#4270 by Rรฉmi Gau).
Fixes
-
Fix plotting of carpet plot due to a change in the coming version of matplolib (3.9.0) (#4279 by Rรฉmi Gau).
-
Fix errant warning when using stat_type in nilearn.glm.compute_contrast (#4257 by Eric Larson).
-
Fix when thresholding is applied to images by GLM reports (#4258 by Rรฉmi Gau).
-
Use the appropriate HTML templates for nilearn.maskers.MultiNiftiMapsMasker and nilearn.maskers.MultiNiftiLabelsMasker reports that would lead to empty reports for MultiNiftiMapsMasker (#4310 by Rรฉmi Gau).
-
Make masker report tables horizontally scrollable (#4308 by Rรฉmi Gau).-
-
Masker reports tables do not overlap with report image (#4308 by Rรฉmi Gau).
-
Fix color bar handling with color map with only 1 level (#4255 by Rรฉmi Gau).
-
Ensure that region_names_ can be generated by nilearn.maskers.NiftiSpheresMasker.transform_single_imgs for deterministic atlases that use floats or non-consecutive values as region_ids whether they include background in their labels or not (#4274 by Rรฉmi Gau).
-
Ensure that nilearn.interfaces.bids.save_glm_to_bids serializes numpy arrays to list used as GLM parameters before saving them to JSON (#4325 by Rรฉmi Gau).
-
Check that the view parameter in surface plotting functions is a pair of int or float when it is not a string (#4297 by Rรฉmi Gau).
-
Fix positions of the markers on the images on the sphere masker reports (#4285 by Rรฉmi Gau).
-
Fix cut position in nifti maps maskers to match displayed map maximum (#4304 by Rรฉmi Gau).
-
Make sure that nilearn.maskers.NiftiSpheresMasker reports displays properly when it contains only 1 sphere (#4269 by Rรฉmi Gau).
-
Miscellaneous fixes in GLM reports (only display FIR delay if FIR is used, display color bar โZ scoreโ legendโฆ) (#4266 by Rรฉmi Gau).
-
Fix minor typos in documentation (glossary and connectivity/parcellating) (#4343 by Florent Pollet).
-
Update minor information on the Code of Conduct page (#4318 and #4320 by Himanshu Aggarwal).
Enhancements
-
Add an avg_method parameter to nilearn.plotting.plot_surf_stat_map (#4298 by Rรฉmi Gau).
-
Advertise nilearnโs in built globbing capability in an example (#4334 by Himanshu Aggarwal).
Changes
-
Throw warnings when passing parameters to surface plotting functions that are not used by the plotly engine (#4298 by Rรฉmi Gau).
-
Improve colorbar size and labels in mosaic display (#4284 by Rรฉmi Gau).
-
Change the colormap to gray for the background image in the nilearn.maskers.NiftiSpheresMasker (#4269 by Rรฉmi Gau).
-
Remove unused **kwargs from nilearn.plotting.view_img and nilearn.plotting.plot_surf (#4270 by Rรฉmi Gau).
-
Use red to blue color map in the GLM reports (#4266 by Rรฉmi Gau).
-
nilearn.maskers.NiftiSpheresMasker will throw warnings if the labels passed to it is not a list of str, or if the number of items in the list of labels does not match the number of regions in the label image (#4274 by Rรฉmi Gau).
-
Copy headers from user-specified image to the result of nilearn.image.math_img (#4337 by Himanshu Aggarwal).
-
Render the description of the templates, atlases and datasets of the nilearn.datasets as part of the documentation (#4232 by Rรฉmi Gau).
-
Render examples of GLM and masker reports as part of the documentation (#4267 and #4295 by Rรฉmi Gau).
-
HTML, CSS are now linted using prettier. (#4302, by Rรฉmi Gau).
List of pull requests
- [MAINT] Post release 0.10.3 by @Remi-Gau in #4246
- [MAINT] Refactor test reporting by @Remi-Gau in #4247
- [MAINT] remove date from copyright by @Remi-Gau in #4249
- [FIX] numpy 2 compatibility by @Remi-Gau in #4251
- [DOC] Add datasets description to the documentation by @Remi-Gau in #4232
- [FIX] Replace remaining
contrast_type
bystat_type
by @larsoner in https://github.com/nilearn/nil...
0.10.3
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
-
API Allow passing arguments to first_level_from_bids to build first level models that include specific set of confounds by relying on the strategies from load_confounds (#4103 by Rรฉmi Gau).
-
Support passing t and F contrasts to compute_contrast that that have fewer columns than the number of estimated parameters. Remaining columns are padded with zero (#4067 by Rรฉmi Gau).
-
NiftiSpheresMasker now has generate_report method (#3102 by Yasmin Mzayek and Nicolas Gensollen).
-
Update the CompCor strategy in load_confounds and load_confounds_strategy to support fmriprep 21.x series and above. (#3285 by Hao-Ting Wang).
-
Allow setting vmin in plot_glass_brain and plot_stat_map (#3993 by Michelle Wang).
-
When plotting thresholded statistical maps with a colorbar, the threshold value(s) will now be displayed as tick labels on the colorbar (##2833 by Nicolas Gensollen).
-
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).
NEW
- The temp_file_lifetime parameter of interactive plotsโ open_in_browser method is deprecated and has no effect (#4180 by Jerome Dockes)..
Fixes
-
MultiNiftiMasker can now call generate_report which will generate a report for the first subject in the list of subjects (#4001 by Yasmin Mzayek).
-
Make sure that all atlases and datasets fetchers return a description (#4215 Rรฉmi Gau).
-
Update the CompCor strategy in load_confounds and load_confounds_strategy to support fmriprep 21.x series and above. (#3285 by Hao-Ting Wang).
-
Fix SimpleRegressionResults to accommodate for the lack of a model attribute (#4071 Rรฉmi Gau)
-
clean_img can now use kwargs clean__sample_mask argument to correctly reshape the nifti image to the dimensions of the mask in the output (#4051 by Mia Zwally).
-
Fix plotting of an image with color bar when maximum value is exactly zero (#4204 by Rรฉmi Gau).
-
Code Fix PSC normalisation method applied by standardize_signal in signal (#4116 by Hao-Ting Wang and Yasmin Mzayek).
-
Fixed inheritance of decoder classes to keep compatibility with scikit-learn>v1.3 (#4188 by Yasmin Mzayek).
-
Make sure that all the fetchers for atlas and func from nilearn.datasets return a sklearn.utils.Bunch. Add new behavior to fetch_language_localizer_demo_dataset to return output as Bunch. This behavior will become the default in version 0.13.0 (#4233 by Rรฉmi Gau).
Enhancements
-
NiftiSpheresMasker now has generate_report method (#3102 by Yasmin Mzayek and Nicolas Gensollen).
-
Allow passing Pandas Series of image filenames to SecondLevelModel (#4070 by Rรฉmi Gau).
-
Allow passing arguments to first_level_from_bids to build first level models that include specific set of confounds by relying on the strategies from load_confounds (#4103 by Rรฉmi Gau).
-
Support passing t and F contrasts to compute_contrast that that have fewer columns than the number of estimated parameters. Remaining columns are padded with zero (#4067 by Rรฉmi Gau).
-
Multi-subject maskersโ generate_report method no longer fails with 5D data but instead shows report of first subject. User can index input list to show report for different subjects (#3935 by Yasmin Mzayek).
-
Allow global_signal parameter in load_confounds_strategy in denoise_strategy='compcor' (#4225 by Hao-Ting Wang).
-
Add two_sided option for binarize_img (#4121 by Steven Meisler).
-
generate_report now uses appropriate cut coordinates when functional image is provided (#4099 by Yasmin Mzayek and Nicolas Gensollen).
-
Mention the classification type (all-vs-one) in Decoding of a dataset after GLM fit for signal extraction (#4122 by Tamer Gezici).
-
Add backslash to homogenize [Parcellations](https://nilearn.github.io/dev/modules/generated/nilearn.regions....
0.10.2
Released September 2023
HIGHLIGHTS
- Volume plotting functions like
plotting.plot_img
now have an optionalradiological
parameter, defaulting toFalse
. IfTrue
, this will invert the x-axis andL
andR
annotations to confirm to radiological conventional view.. - Update Decoder objects to use the more efficient
LogisticRegressionCV
. - Add
LassoCV
as a new estimator option for Decoder objects - Add
vmin
andsymmetric_cbar
arguments tonilearn.plotting.plot_img_on_surf
. - Improve
contrasts
allowing fixed effects on F contrasts - New experimental surface API to facilitate working with surface data in downstream surface-based analyses. We provide this API as a nilearn.experimental.surface module as it is still incomplete and subject to change without a deprecation cycle..
NEW
- Volume plotting functions like
plotting.plot_img
now have an optionalradiological
parameter, defaulting toFalse
. IfTrue
, this will invert the x-axis andL
andR
annotations to confirm to radiological conventional view.. - New experimental surface API to facilitate working with surface data in downstream surface-based analyses. We provide this API as a nilearn.experimental.surface module as it is still incomplete and subject to change without a deprecation cycle..
Fixes
- Fix bug in method
transform_imgs
ofmaskers.MultiNiftiMapsMasker
andmaskers.MultiNiftiLabelsMasker
that would raise an error if a list ofsample_mask
was specified tofit_transform
. - Fix bug in
nilearn.plotting.surf_plotting._plot_surf_matplotlib
that would make vertices transparent when saving in PDF or SVG format. - Fix bug that would prevent using
symmetric_cmap=True
or theavg_method
argument withplotting.plot_surf_roi
. - Fixes a bug that would lead to an error when loading a fsaverage surface while relying on numpy >= 1.24.x.
- Fix bug that would prevent loading the confounds of a gifti file in actual fmriprep datasets.
- Fix bug that prevented using dataframes as input for second level GLM when computing contrasts.
- Fix bug in
glm.first_level.first_level_from_bids
that returned no confound files if the corresponding bold files contained derivatives BIDS entities. - Fix bug in
glm.first_level.first_level_from_bids
that would throw a warning aboutslice_time_ref
not being provided even when it was. - Fix bug where the
cv_params_
attribute of fitter Decoder objects sometimes had missing entries ifgrid_param
is a sequence of dicts with different keys. - Make the
nilearn.interfaces.fmriprep.load_confounds
confounds file selection more generic. - Change default figure sizes to prevent titles from overlapping figure content
- Relax the
nilearn.interfaces.fmriprep.load_confounds
confounds selection oncosine
as not all confound files contained the variables. - Fix
pathlib.Path
not being counted as Niimg-like object inimage.new_img_like
. - Fix
fit_transform
behavior to match whenfit
method is passed image data - Allow using both vmin and threshold with "plotly" engine to be consistent with "matplotlib" behavior
- Set edgecolors to be the same as facecolors in
plotting.plot_surf_contours
so that ROI contours are rendered clearly - Refactor deprecation of behavior of
datasets.fetch_atlas_craddock_2012
,datasets.fetch_atlas_smith_2009
anddatasets.fetch_atlas_basc_multiscale_2015
fetchers including using API consistentmaps
key
Enhancements
- Add cross-reference links to type definitions in public surface functions.
- Update Decoder objects to use the more efficient
LogisticRegressionCV
. - Throw warning in
glm.first_level.first_level_from_bids
when using event.tsv files with no trial type column. - Make return key names in the description file of destrieux surface consistent with
datasets.fetch_atlas_surf_destrieux
. - Add
LassoCV
as a new estimator option for Decoder objects - Add
vmin
andsymmetric_cbar
arguments tonilearn.plotting.plot_img_on_surf
. - Improve
generate_report
method of maskers by allowing users to pass a cmap argument for plotting image - Improve
contrasts
allowing fixed effects on F contrasts
Changes
- Validate the content of events files before plotting them.
nilearn.glm.first_level.experimental_paradigm.check_events
will now throw a warning if some events have a 0 second duration and will throw an error if an event hasNaN
onset or duration.- Removed old files and test code from deprecated datasets COBRE and NYU resting state.
- PEP8 and isort compliance extended to the whole nilearn codebase..
- Finish applying black formatting to most of the codebase..
- Empty region signals resulting from applying
mask_img
inmaskers.NiftiLabelsMasker
will no longer be kept in release 0.15. Meanwhile, usekeep_masked_labels
parameter when initializing themaskers.NiftiLabelsMasker
object to enable/disable this behavior.. - Empty region signals resulting from applying
mask_img
inmaskers.NiftiMapsMasker
will no longer be kept in release 0.15. Meanwhile, usekeep_masked_maps
parameter when initializing themaskers.NiftiMapsMasker
object to enable/disable this behavior.. - Removed mention of license in "header".
- Configure plots in example gallery for better rendering
- Make one_mesh_info and full_brain_info into private functions _one_mesh_info and _full_brain_info
- Refactor error raising tests using context managers
- Added warning to deprecate
darkness
insurf_plotting._compute_facecolors_matplotlib
andhtml_surface._get_vertexcolor
- Replace skipped doctests with default code-blocks
- Move the
~nilearn.plotting.html_surface._mix_colormaps
tocm.py
innilearn.plotting
- Remove deprecation decorator from
~nilearn.glm.regression
- Expose
standardize
inplotting.plot_carpet
andconnectome.ConnectivityMeasure
to handle "zscore" deprecation. - Example :ref:
sphx_glr_auto_examples_01_plotting_plot_prob_atlas.py
is shortened to speed up build time
List of pull requests
- Post release 0.10.1 by @ymzayek in #3730
- [MAINT] Format nilearn/plotting: apply isort and fix flake8 errors by @Remi-Gau in #3648
- [BOT] update pre-commit hooks by @github-actions in #3731
- [BOT] update pre-commit hooks by @github-actions in #3734
- [FIX] Missing values in
Decoder.cv_params_
whenparam_grid
is a list of dicts with different keys by @michellewang in #3733 - Correcting typo in the "load_confounds_strategy" function ("scrubbing") by @jonasmago in #3738
- [DOC] Fix broken doc build by @ymzayek in #3744
- [MAINT] Clean up remaining files from deprecated datasets (
cobre
,nyu
) by @michellewang in #3743 - [ENH] Use LogisticRegressionCV instead of LogisticRegression to improve Decoder performance by @michellewang in #3736
- [FIX] Fix tests failing due to deprecations in pre-release dependencies by @ymzayek in #3746
- [INFRA] Add timeout setting in Azure Pipelines CI by @ymzayek in #3747
- [BOT] update pre-commit hooks by @github-actions in #3748
- add more info to adhd example by @mtorabi59 in #3739
- [MAINT] improve test coverage BaseMasker by @Remi-Gau in #3721
- [MAINT] refactor nilearn/maskers (sourcery, f-strings) by @Remi-Gau in #3685
- [MAINT] avoid creating files during testing: test_infer_effect_maps by @Remi-Gau in #3716
- [MAINT] Catch warnings as errors on partial doc builds by @ymzayek in #3749
- [FIX] force ordered output of
_sanitize_reorder
to match regex in test by @Remi-Gau in #3751 - [MAINT] run isort and flake8 on the whole nilearn code base in CI by @Remi-Gau in #3651
- [FIX] find confounds even when BIDS derivatives bold files contain res or den entities by @Remi-Gau in #3742
- [BOT] update pre-commit hooks by @github-actions in #3764
- [DOC] update changelog and git blame ignore by @Remi-Gau in #3755
- [FIX] Change error string to match scikit-learn
InvalidParameterError
message by @ymzayek in #3763 - [MAINT] relax regex for warning on sanitize reorder error by @Remi-Gau in #3766
- [DOC] fix duplicate entry in examples dropdown by @Remi-Gau in #3760
- [MAINT] refactor nilearn/datasets (sourcery, f-strings) by @Remi-Gau in #3727
- [MAINT] add workflow to check for f strings by @Remi-Gau in #3759
- [DOC] Remove license and hide authors in examples by @Remi-Gau in #3765
- [MAINT] refactor nilearn/plotting (f-strings) by @Remi-Gau in #3757
- [MAINT] remove test install with python 2.7 workflow by @Remi-Gau in #3768
- [REF] fix f strings by @Remi-Gau in #3770
- [ENH][DOC] Fix inconsistent description of return keys for fetch_atlas_surf_destrieux by @tarunsamanta2k20 in https://git...
Release 0.10.1
Release 0.10.1 (#3724) * update changelog version * Fix some changelog entries * Rename changelog file for release * Add badges * Add release month * Remove dev tag in directives * Fix sphinx docstring userwarning * [full doc] Request full build
Release 0.10.1rc1
Pre-release 0.10.1rc1 (#3536) * REL 0.10.1rc1 * Set version marker * Modify changelog
Release 0.10.0
Release 0.10.0 (#3454)
Release 0.9.2
Release 0.9.2 (#3348)
Release 0.9.1
Release `0.9.1` (#3219) * REL 0.9.1 * formatting
Release 0.9.0
Release `0.9.0` (#3147) * 0.8.2 -> 0.9.0 * add python 3.10 to setup.py * add some recent contributors * [circle full] reformat changelog for 0.9.0 * [circle full] add highlights and improve formatting for 0.9.0 * fix ref * update news * [circle full] bump version number * update changelog for 0.9.0 * [circle full] clean latest changelog
Release 0.8.1
Release `0.8.1` (#2974) * Update whats_new * Update news * Bump version number to 0.8.1 * [circle full] request full build