Skip to main content

Implementation of multisensory integration models in Python

Project description

Scikit-NeuroMSI

logo

scikit-neuromsi Documentation Status PythonVersion PyPI Coverage Status Code style: black License: BSD-3-Clause https://github.com/leliel12/diseno_sci_sfw DOI PyPI Downloads

Scikit-NeuroMSI is an open-source Python framework that simplifies the implementation of neurocomputational models of multisensory integration.

Motivation

Research on the neural mechanisms underlying multisensory integration—where unisensory signals combine to produce distinct multisensory responses—has surged in recent years. Despite this progress, a unified theoretical framework for multisensory integration remains elusive. Scikit-NeuroMSI aims to bridge this gap by providing a standardized, flexible, and extensible platform for modeling multisensory integration, fostering the development of theories that connect neural and behavioral responses.

Features

Scikit-NeuroMSI was designed to meet three fundamental requirements in the computational study of multisensory integration:

  • Modeling Standardization: Standardized interface for implementing and analyzing different types of models. The package currently handles the following model families: Maximum Likelihood Estimation, Bayesian Causal Inference, and Neural Networks.

  • Data Processing Pipeline: Multidimensional data processing across spatial dimensions (1D to 3D spatial coordinates), temporal sequences, and multiple sensory modalities (e.g., visual, auditory, touch).

  • Analysis Tools: Integrated tools for parameter sweeping across model configurations, result visualization and export, and statistical analysis of model outputs.

In addition, there is a core module with features to facilitate the implementation of new models of multisensory integration.

Requirements

You need Python 3.10+ to run scikit-neuromsi.

Installation

Run the following command:

pip install scikit-neuromsi

or clone this repo and then inside the local directory execute:

pip install -e .

Usage Examples

Run models of multisensory integration

Simulate responses from existing models of multisensory integration (e.g. audio-visual causal inference network from Cuppini et al. (2017)):

from skneuromsi.neural import Cuppini2017

# Model setup
model_cuppini2017 = Cuppini2017(neurons=90, 
                                position_range=(0, 90))

# Model execution
res = model_cuppini2017.run(auditory_position=35, 
                            visual_position=52)

# Results plot
ax1 = plt.subplot()
res.plot.linep(ax=ax1)
ax1.set_ylabel("neural activity")
ax1.set_xlabel("stimulus location (deg)")

model_result

Simulate experimental paradigms

Simulate multisensory integration experiments (e.g. causal inference under spatial disparity - "ventriloquist effect") using the parameter sweep tool:

from skneuromsi.sweep import ParameterSweep
import numpy as np

# Experiment setup
spatial_disparities = np.array([-24, -12, -6, -3, 3, 6, 12, 24])

sp_cuppini2017 = ParameterSweep(model=model_cuppini2017,
                                target="visual_position",
                                repeat=1,
                                range=45 + spatial_disparities)

# Experiment run
res_sp_cuppini2017 = sp_cuppini2017.run(auditory_position=45,
                                        auditory_sigma=4.5,
                                        visual_sigma=3.5)

# Experiment results plot
ax1 = plt.subplot()
res_sp_cuppini2017.plot(kind="unity_report", label="Cuppini 2017", ax=ax1)
ax1.set_xlabel("visual position (deg)")

unity_report_result

For more detailed examples and advanced usage, refer to the Scikit-NeuroMSI Documentation.

Contribute to Scikit-NeuroMSI

We welcome contributions to Scikit-NeuroMSI!

If you're a multisensory integration researcher, we encourage you to integrate your models directly into our package. If you're a software developer, we'd love your help in enhancing the overall functionality of Scikit-NeuroMSI.

For detailed information on how to contribute ideas, report bugs, or improve the codebase, please refer to our Contribuiting Guidelines.

License

Scikit-NeuroMSI is under The 3-Clause BSD License

This license allows unlimited redistribution for any purpose as long as its copyright notices and the license’s disclaimers of warranty are maintained.

How to cite?

If you want to cite Scikit-NeuroMSI, please use the following references:

Paredes, R., Cabral, J. B., & Series, P. (2025). Scikit-NeuroMSI: A Generalized Framework for Modeling Multisensory Integration. bioRxiv, 2025-05. doi: https://doi.org/10.1101/2025.05.26.656124

Paredes, R., Series, P., Cabral, J. (2023). Scikit-NeuroMSI: a Python framework for multisensory integration modelling. IX Congreso de Matematica Aplicada, Computacional e Industrial, 9, 545–548.

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

scikit_neuromsi-1.0.2.tar.gz (77.6 kB view details)

Uploaded Source

Built Distribution

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

scikit_neuromsi-1.0.2-py3-none-any.whl (100.1 kB view details)

Uploaded Python 3

File details

Details for the file scikit_neuromsi-1.0.2.tar.gz.

File metadata

  • Download URL: scikit_neuromsi-1.0.2.tar.gz
  • Upload date:
  • Size: 77.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.18

File hashes

Hashes for scikit_neuromsi-1.0.2.tar.gz
Algorithm Hash digest
SHA256 2f0df0dd4b4cd4b5db2dfdb78dcbe6b472d281432a7b1756628734a5b2d2f229
MD5 42e07217890c1a1d76de710632f36eea
BLAKE2b-256 33b55c3f33e73914a05b60dcec46521b20a615aa300e03509efc86c143f84789

See more details on using hashes here.

File details

Details for the file scikit_neuromsi-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: scikit_neuromsi-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 100.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.18

File hashes

Hashes for scikit_neuromsi-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 12c3658faa4b514656a749676dc6df6908ca78ce6e1ba51889f034a6e33bdd6a
MD5 00a97a0b822dda7d287d2662e277d150
BLAKE2b-256 2581a5379adca9709dadc6125c2ea0aeb684a54e818deaea09bbae3793172f55

See more details on using hashes here.

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