Skip to main content

Trial-aware neurodesign-plus 2.0 for fMRI experimental design optimisation

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

neurodesign_plus-2.0.0.tar.gz (1.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

neurodesign_plus-2.0.0-py3-none-any.whl (146.9 kB view details)

Uploaded Python 3

File details

Details for the file neurodesign_plus-2.0.0.tar.gz.

File metadata

  • Download URL: neurodesign_plus-2.0.0.tar.gz
  • Upload date:
  • Size: 1.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for neurodesign_plus-2.0.0.tar.gz
Algorithm Hash digest
SHA256 fb74462c74f74f579b6c7813cb8b5a862150ca652043db4a1917a562a804e667
MD5 a45ffa49a49616e7f18177e27929117b
BLAKE2b-256 82b4d117e5c2a9386e979f57f79a324ace39dd538582c53683993bf757ce20b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for neurodesign_plus-2.0.0.tar.gz:

Publisher: publish.yml on SLDlab/neurodesign-plus

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file neurodesign_plus-2.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for neurodesign_plus-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 81d48dda387e9984f0dae5990d98ba423068a220af1e21986c29086787d5d365
MD5 7d94a7ec919ccd1c9b787fb9c46254dd
BLAKE2b-256 5dd212e4e0711027678b127bbd020b08397ee5abe6d6d621a8d98983edf49d17

See more details on using hashes here.

Provenance

The following attestation bundles were made for neurodesign_plus-2.0.0-py3-none-any.whl:

Publisher: publish.yml on SLDlab/neurodesign-plus

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page