OBI-ONE is a standardized library of workflows for biophysically-detailed brain modeling, with the following features:
- Integration with a standardized cloud database for neuroscience and computational neuroscience through entitysdk.
- Standardized provenence of workflows.
- Standardized parameter scans across different modeling workflows.
- Corresponding OpenAPI schema and service generated from Pydantic
Pre-installation
brew install uv open-mpi boost cmake
Virtual environment (registered as a Jupyter kernel)
make install
Notebooks are available in examples/
The package is split into core/ and scientific/ code.
core/ defines the follow key classes:
- ScanConfig: defines configurations for specific modeling use cases such as a CircuitSimulationScanConfig. A Form is composed of one or multiple Blocks (see next), which define the parameterization of a use case. Currently Forms can have both single Blocks and dictionaries of Blocks. Each Form, for example, has its own Initialize Block for specifying the base parameters of the use case. Dictionaries of Blocks of a particular type are used where the Form can accept an unspecified number of this Block type, such as Stimulus Blocks.
- Block: defines a component of a ScanConfig. Blocks are the components which support the specification of parameters which should be scanned over in the multi-dimensional parameter scan. When using the Form (in a Jupter Notebook for example). Any parameter which is specified as a list is used as a dimension of a multi-dimensional parameter scan when passed to a Scan object (see below).
- SingleConfig:
- Task:
- ScanGenerationTask: is an example task which takes a single ScanConfig as input, an output path and a string for specifying how output files should be stored. Then the function scan.execute() function can then be called which generates the multiple dimensional scan
Launch the FAST API Serive, with docs viewable at: http://127.0.0.1:8100/docs
make run-local
OBI-ONE uses MkDocs with the Material theme for documentation.
To install the documentation dependencies (MkDocs and MkDocs Material) without affecting your existing dependencies:
make install-docsThis command uses uv sync --group docs to add only the documentation dependencies to your environment, ensuring that other installed packages remain unchanged.
To build and serve the documentation locally for preview:
make serve-docsThis will start a local development server (typically at http://127.0.0.1:8000) where you can preview the documentation. The server will automatically reload when you make changes to the documentation files.
Tags are metadata used to link documentation .md files to products. Each documentation file should include appropriate tags in its frontmatter to categorize and organize content.
The documentation is automatically checked in CI on pull requests. The .github/workflows/check-docs.yml workflow:
- Checks if any files in the
docs/directory have been modified in the pull request - If no documentation changes are detected, the check fails with an error message
- You can skip this check by adding the
skip docslabel to your pull request
This ensures that documentation is updated alongside code changes. The check only runs on pull requests targeting main and can be bypassed with the skip docs label when documentation updates are not needed.
Please see CONTRIBUTIONS.md for guidelines on how to contribute.
Copyright © 2025 Open Brain Institute