Skip to main content

Simuran

Documentation Status Quality Gate Status codecov Maintainability Code style: black License: GPL v3

Demo of UI

To see more details than in the README, our read the docs site, or the PhD thesis of Sean K. Martin.

Installation

pip install simuran

MAC OS

  • To use the UI, you will need to perform at least the following - brew install libpng.
  • It is possible you may also need the MAC command line developer tools.

Usage

Objective

Simuran can help facilitate batch processing of many neural recordings in an easy to handle way.

The main objects to setup are Recordings (containing all information relevant to an experiment, or part of an experiment) and RecordingContainers, which are a series of Recordings. For instance, a RecordingContainer could represent all t-maze running speed, spikes, etc. and associated metadata, while a Recording is an individual t-maze session. This can then support easy extraction of subcontainers, such as, all trials which were successful in mice expressing a particular gene.

API

The API is built around the Recording and RecordingContainer classes, for instance, one way to load an NWB file is as follows:

import simuran

recording = simuran.Recording(
    source_file=PATH_TO_NWB, loader=simuran.loader("NWB"))
recording.load()
recording.inspect() # See what was loaded

The Recording class is designed to be as flexible as possible, and can be used to load any data, as long as a loader is provided. The loader is a class which takes a Recording object and loads the data into it. Other modules include the analysis module, which allows multi-processing of analysis functions, and the base module, which contains the base classes for the API. The plot module contains plotting functions for general use, and also some simple figure handling (auto garbage collection, etc.). Finally, the bridge module contains Bridge class definitions, which are used to allow interoperability between different software tools and data formats in neuroscience.

GUI - Visual node based editor

Here, the focus is mostly on the Recording level, but multiple recordings can be bundled as blocks.

Recordings are loaded and processed via Nodes which are established through the UI and run in a digraph fashion. The UI is built using dearpygui, and supports a subset of the API via nodes, which can be expanded upon.

Demo of UI still

Examples

Some examples are provided in the examples folder.

Contributing

Contributions are welcome, and any issues can be raised on the github page. Please feel free to reach out to me if you have any questions.

License

Simuran is distributed under the GPL-3.0 License.

Inspiration

  1. NeuroChaT: Analysis toolset with GUI for Neuroscience
  2. SpikeInterface · GitHub
  3. A set of python neuroscience scripts which rely on the NeuroChaT API
  4. MNE: Magnetoencephalography (MEG) and Electroencephalography (EEG) in Python
  5. Sumatra - NeuralEnsemble
  6. Snakemake

Update coverage

pytest .
codecov -t ba31944a-6070-401e-a731-1bd2f92a5e55

Metadata

Release files for simuran 23.8.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 simuran 23.8.0
File Size Uploaded
simuran-23.8.0.tar.gz 63.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for simuran 23.8.0
File Interpreter ABI Platform
simuran-23.8.0-py3-none-any.whl Python 3 none any Details

Total release size: 132.5 kB

Release files / simuran-23.8.0.tar.gz

Download URL simuran-23.8.0.tar.gz
Size 63.5 kB
Tags Source
SHA-256 checksum
How to use checksums
bdee2ada7ad7b19fd1d99e870f96062c38f424c6fd48b1a8eb93222ddb5bdc33
BLAKE2b-256 checksum
How to use checksums
9ba22a51042b7d1d85b9718f1d0f9eda1134b4ecd59e175205ce4d64d791452b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.17

Release files / simuran-23.8.0-py3-none-any.whl

Download URL simuran-23.8.0-py3-none-any.whl
Size 69.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8b5134a831f369f4cb53a8910700c35694ced3573e3cf7d1fe7b2c71ad132f38
BLAKE2b-256 checksum
How to use checksums
fcbf2e6e8102f7125c5381e93154a54d97df8b3466f911ae3d48d3d676965a8f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.17

Release history Release notifications | RSS feed

This release

23.8.0 This release

2 release files

23.2.0

1 release file

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