| name | nilearn |
| description | Nilearn skill for neuroimaging ML workflows across datasets, image transforms, maskers, GLM, decoding, connectomes, plotting, surface pipelines, and BIDS/fMRIPrep interfaces using source-verified API signatures and docs-backed usage patterns. Use when working with nilearn.datasets, nilearn.image, nilearn.maskers, nilearn.glm, nilearn.decoding, nilearn.connectome, nilearn.plotting, nilearn.surface, or nilearn.interfaces; keywords: fMRI, Niimg-like, NiftiMasker, FirstLevelModel, Decoder, ConnectivityMeasure, plot_stat_map, view_img, vol_to_surf, load_confounds, first_level_from_bids. |
Nilearn
Nilearn provides neuroimaging-focused building blocks on top of NumPy/scikit-learn for image processing, statistical modeling, decoding, and connectivity workflows.
Version
Built against: nilearn==0+unknown
Python: 3.13
Source checkout uses dynamic versioning; see assets/version.txt for commit and environment details.
Scope
This skill intentionally focuses on high-usage workflows across datasets, image, maskers, glm, decoding, connectome, plotting, surface, and interfaces.
Out of scope in this skill: private _utils, low-level test helpers, and exhaustive coverage of every plotting backend edge case.
Coverage profile: hybrid (workflow references + dictionary lookup assets).
Environment Gate
Install policy and environment decision are recorded in assets/version.txt.
Current build used install_permission: no, so runtime claims are tagged where relevant.
Installation
pip install nilearn
pip install "nilearn[plotting]"
Datasets and Atlases
try:
from nilearn import datasets
template = datasets.load_mni152_template()
print(template.shape)
except Exception as e:
print(f"[UNVERIFIED: install denied in selected environment] {type(e).__name__}: {e}")
See references/datasets-and-atlases.md for fetchers, template loaders, and version-specific dataset deprecations.
Image Manipulation
try:
import numpy as np
import nibabel as nib
from nilearn.image import math_img
img = nib.Nifti1Image(np.ones((4, 4, 4), dtype=float), np.eye(4))
doubled = math_img("img * 2", img=img)
print(doubled.shape)
except Exception as e:
print(f"[UNVERIFIED: install denied in selected environment] {type(e).__name__}: {e}")
See references/image-manipulation.md for smooth_img, math_img, and resample_to_img usage and caveats.
Maskers and Signals
try:
from nilearn.maskers import NiftiMasker
masker = NiftiMasker(standardize=True, detrend=True)
print(type(masker).__name__)
except Exception as e:
print(f"[UNVERIFIED: install denied in selected environment] {type(e).__name__}: {e}")
See references/maskers-and-signals.md for NiftiMasker/NiftiLabelsMasker signatures and migration notes.
GLM Modeling
try:
from nilearn.glm.first_level import FirstLevelModel
model = FirstLevelModel(t_r=2.0, noise_model="ar1")
print(type(model).__name__)
except Exception as e:
print(f"[UNVERIFIED: install denied in selected environment] {type(e).__name__}: {e}")
See references/glm-modeling.md for FirstLevelModel, SecondLevelModel, and threshold_stats_img behavior.
Decoding and Connectivity
try:
from nilearn.decoding import Decoder
from nilearn.connectome import ConnectivityMeasure
print(Decoder.__name__, ConnectivityMeasure.__name__)
except Exception as e:
print(f"[UNVERIFIED: install denied in selected environment] {type(e).__name__}: {e}")
See references/decoding-and-connectivity.md for Decoder, SearchLight, and ConnectivityMeasure parameter patterns.
Plotting and Visualization
try:
from nilearn.plotting import plot_stat_map, view_img
print(plot_stat_map.__name__, view_img.__name__)
except Exception as e:
print(f"[UNVERIFIED: install denied in selected environment] {type(e).__name__}: {e}")
See references/plotting-and-visualization.md for plot_img, plot_stat_map, view_img, and surface plotting viewers.
Surface Workflows
try:
from nilearn.surface import vol_to_surf, SurfaceImage
print(vol_to_surf.__name__, SurfaceImage.__name__)
except Exception as e:
print(f"[UNVERIFIED: install denied in selected environment] {type(e).__name__}: {e}")
See references/surface-workflows.md for vol_to_surf, mesh/data loaders, and SurfaceImage patterns.
Interfaces (BIDS/fMRIPrep)
try:
from nilearn.interfaces.bids import get_bids_files
from nilearn.interfaces.fmriprep import load_confounds
print(get_bids_files.__name__, load_confounds.__name__)
except Exception as e:
print(f"[UNVERIFIED: install denied in selected environment] {type(e).__name__}: {e}")
See references/interfaces-bids-and-fmriprep.md for BIDS queries, confounds loading, and first_level_from_bids usage.
Verification (Medium+)
PYTHONPATH="H:\Agent\OpenSciHub\nilearn" python "H:\Agent\OpenSciHub\.opencode\skills\opensci-skill\scripts\verify-snippets.py" --root "H:\Agent\OpenSciHub\.opencode\skills\nilearn" --fail-fast
Dictionary Assets (Hybrid)
Use dictionary assets before source traversal for symbol-level lookup:
- Query
assets/symbol-index.jsonl for exact symbol names.
- Open the matching module card in
assets/symbol-cards/.
- Follow
source anchors in the card only when implementation details are needed.
Primary dictionary entrypoint: assets/symbol-index.md.
Quick Reference
| Function / Class | Purpose |
|---|
datasets.load_mni152_template() | Load canonical skull-stripped MNI template image. |
datasets.fetch_atlas_schaefer_2018() | Download Schaefer atlas files and labels bundle. |
image.math_img() | Apply NumPy expressions directly to image data. |
maskers.NiftiMasker | Fit/apply voxel masks and clean extracted time series. |
glm.first_level.FirstLevelModel | Build subject-level fMRI GLM from events/designs. |
decoding.Decoder | Cross-validated decoding wrapper over Niimg inputs. |
connectome.ConnectivityMeasure | Estimate covariance/correlation/tangent connectomes. |
plotting.plot_stat_map() | Plot thresholded statistical maps on anatomy. |
surface.vol_to_surf() | Project volumetric data onto cortical surfaces. |
interfaces.fmriprep.load_confounds() | Build denoising regressors from fMRIPrep outputs. |
Module Map
| Submodule | Contents | Notes |
|---|
nilearn.datasets | built-in samples + remote fetchers | Large public surface |
nilearn.image | math, smoothing, resampling, concat | Core image transforms |
nilearn.maskers | signal extraction transformers | Main user preprocessing entry |
nilearn.glm | first/second-level stats models | Large API with many defaults |
nilearn.decoding | decoders, searchlight, space-net | ML workflows |
nilearn.connectome | connectivity estimators | feature-level connectomes |
nilearn.plotting | static and interactive viewers | Often requires plotting extras |
nilearn.surface | mesh I/O and volume-to-surface projection | Surface-specific data model |
nilearn.interfaces | BIDS and fMRIPrep integration utilities | Pipeline orchestration helpers |
Import style: explicit __all__ submodule list in nilearn.__init__ (no top-level star re-export of function symbols).
See assets/module-map.md for full inventory and [LARGE] module flags.
References
references/datasets-and-atlases.md - template loading, atlas fetchers, and dataset deprecation path.
references/image-manipulation.md - image-level transforms (smooth_img, math_img, resample_to_img).
references/maskers-and-signals.md - masker constructors and signal extraction controls.
references/glm-modeling.md - first/second-level GLM and thresholding function contract.
references/decoding-and-connectivity.md - decoding wrappers and connectivity estimator patterns.
references/plotting-and-visualization.md - stat-map, surface plots, and interactive viewers.
references/surface-workflows.md - surface mesh/data loading and volume projection workflows.
references/interfaces-bids-and-fmriprep.md - BIDS querying, confounds interfaces, and BIDS-to-GLM bootstrapping.
assets/symbol-index.md - dictionary-style module index for broad API lookup.
assets/symbol-index.jsonl - machine-readable symbol registry.
assets/symbol-cards/ - per-module symbol cards with signatures and source anchors.