Skip to main content

neurodesign-plus

neurodesign-plus is an extended and maintained fork of the original neurodesign package for fMRI experimental design optimisation.

In addition to the base package workflow, neurodesign-plus adds support for:

  1. fixed user-defined event orders via order,
  2. variable stimulus durations via stimuli_durations,
  3. transition-specific ITIs via conditional_ITI,
  4. probabilistic template-based ordering via order_keys, order_probabilities, and order_length.

Current version

Version 2.0 is a breaking release: experiments are now built from trials (each holding one or more events) instead of a flat event list, so a few options were renamed. 1.0.x scripts need these renames:

1.0.x 2.0
stimuli_durations event_durations
conditional_ITI event_transition_interval / inter_trial_interval
order_keys / order_probabilities / order_length trial_templates / trial_template_probabilities / n_conceptual_trials

Experiment, Design, and Optimisation are unchanged. See the migration guide to update old code, or pin neurodesign-plus<2.0 to keep the old behavior.

Installation

Install the published package with:

python -m pip install neurodesign-plus

Documentation

Current API Example

from pathlib import Path
import json

from neurodesign import Experiment, Optimisation, report

exp = Experiment(
    TR=2.0,
    n_trials=8,
    P=[0.5, 0.5],
    C=[[1, -1]],
    rho=0.3,
    n_stimuli=2,
    event_durations=1.0,
    trial_start_interval=0.5,
    post_event_interval=0.2,
    inter_trial_interval=2.0,
    resolution=0.1,
    seed=7,
)

optimisation = Optimisation(
    experiment=exp,
    weights=[0.0, 0.5, 0.25, 0.25],
    preruncycles=1,
    cycles=1,
    optimisation="simulation",
    G=2,
    I=1,
    outdes=1,
    convergence=1,
    seed=101,
    folder=Path("output") / "readme_example",
)
optimisation.optimise()
design = optimisation.selected_design(0)

report.make_report(optimisation, Path("report.pdf"))
Path("schedule.json").write_text(
    json.dumps(design.export_payload(), indent=2), encoding="utf-8"
)
Path("specification.json").write_text(
    json.dumps(exp.export_specification(), indent=2),
    encoding="utf-8",
)

Repository Layout

docs/        Sphinx documentation sources
manuals/     Included long-form manuals
neurodesign/ Package source code
tests/       Automated regression and release-audit tests
tutorials/   Executed tutorial notebooks
validation/  Validation runners and reproducibility helpers

Tutorials

The tutorial collection includes:

  • three overview tutorials in tutorials/,
  • four base-function tutorials in tutorials/base_functions/,
  • four feature-focused tutorials in tutorials/new_functions/.

The Read the Docs tutorials page is the best place to browse the current notebook set and their intended learning progression.

Credits

This project is a maintained fork of the original neurodesign package by Joke Durnez and the Neuropower team.

Author contributions (CRediT):

  • Atharv A. Umap — Conceptualization, Software, Validation
  • Caroline J. Charpentier — Project administration
  • Valentin Guigon — Conceptualization, Methodology, Resources, Software, Supervision, Validation, Writing

Release files for neurodesign-plus 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for neurodesign-plus 2.0.0
File Size Uploaded
neurodesign_plus-2.0.0.tar.gz 1.5 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for neurodesign-plus 2.0.0
File Interpreter ABI Platform
neurodesign_plus-2.0.0-py3-none-any.whl Python 3 none any Details

Total release size:1.7 MB

Release files / neurodesign_plus-2.0.0.tar.gz

Download URL neurodesign_plus-2.0.0.tar.gz
Size 1.5 MB
Tags Source
SHA-256 checksum
How to use checksums
fb74462c74f74f579b6c7813cb8b5a862150ca652043db4a1917a562a804e667
BLAKE2b-256 checksum
How to use checksums
82b4d117e5c2a9386e979f57f79a324ace39dd538582c53683993bf757ce20b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 20, 2026.

Transparency log

Release files / neurodesign_plus-2.0.0-py3-none-any.whl

Download URL neurodesign_plus-2.0.0-py3-none-any.whl
Size 146.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
81d48dda387e9984f0dae5990d98ba423068a220af1e21986c29086787d5d365
BLAKE2b-256 checksum
How to use checksums
5dd212e4e0711027678b127bbd020b08397ee5abe6d6d621a8d98983edf49d17
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 20, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page