Metadata-Version: 2.4
Name: obi-one
Version: 2025.10.5
Summary: Standardized library of functions and workflows for biophysically-detailed brain modeling
Author-email: James Isbister <james.isbister@openbraininstitute.org>, Christoph Pokorny <christoph.pokorny@openbraininstitute.org>, Daniela Egas Santander <daniela.egassantander@openbraininstitute.org>, Gianluca Ficarelli <gianluca.ficarelli@openbraininstitute.org>, Michael Reimann <michael.reimann@openbraininstitute.org>, Darshan Mandge <darshan.mandge@openbraininstitute.org>, Ilkan Kilic <ilkan.kilic@openbraininstitute.org>, Aurélien Jaquier <aurelien.jaquier@openbraininstitute.org>, Dries Verachtert <dries.verachtert@openbraininstitute.org>, Jean-Denis Courcol <jean-denis.courcol@openbraininstitute.org>, Armando Romani <armando.romani@openbraininstitute.org>, Mike Geveart <michael.gevaert@openbraininstitute.org>, Nicolas Frank <nicolas.frank@openbraininstitute.org>
License-Expression: Apache-2.0
Project-URL: Homepage, https://github.com/openbraininstitute/obi-one
Project-URL: Issues, https://github.com/openbraininstitute/obi-one/issues
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: <3.13,>=3.12.2
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pydantic>=2.10.6
Requires-Dist: pydantic-settings>=2.8.1
Requires-Dist: pydantic-core
Requires-Dist: brainbuilder>=0.20.2
Requires-Dist: bluepysnap>=3.0.2
Requires-Dist: fastapi
Requires-Dist: uvicorn
Requires-Dist: starlette
Requires-Dist: python-multipart
Requires-Dist: jupyter
Requires-Dist: notebook
Requires-Dist: jupyterlab>=4.4.8
Requires-Dist: ipykernel
Requires-Dist: sqlalchemy
Requires-Dist: blueetl
Requires-Dist: aiofiles
Requires-Dist: neurom
Requires-Dist: morph-tool
Requires-Dist: entitysdk>=0.8.3
Requires-Dist: obi-auth>=0.3.0
Requires-Dist: networkx>=3.4.2
Requires-Dist: pyjwt>=2.10.1
Requires-Dist: cachetools>=5.5.2
Requires-Dist: httpx>=0.28.1
Requires-Dist: bluepyefe>=2.3.51
Requires-Dist: connectome-utilities>=0.4.11
Requires-Dist: connectome-manipulator
Requires-Dist: bluecellulab>=2.6.71
Requires-Dist: obi_notebook
Provides-Extra: connectivity
Requires-Dist: connectome-analysis>=1.0.1; extra == "connectivity"
Dynamic: license-file

# OBI-ONE

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**](github.com/openbraininstitute/entitysdk).
- Standardized provenence of workflows.
- Standardized parameter scans across different modeling workflows.
- Corresponding OpenAPI schema and service generated from Pydantic

<br>

# Installation


Pre-installation
```
brew install uv open-mpi boost cmake
```

Virtual environment (registered as a Jupyter kernel)
```
make install
```

<br>


# Examples
Notebooks are available in [**examples/**](examples/)

<br>


# Technical Overview / Glossary

The package is split into [**core/**](core/) and [**scientific/**](scientific/) code.

[**core/**](core/) defines the follow key classes:

- [**ScanConfig**](obi_one/core/scan_config.py): defines configurations for specific modeling use cases such as a [CircuitSimulationScanConfig](obi_one/scientific/simulation/simulations.py).  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**](obi_one/core/block.py): 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**](obi_one/core/single.py):
- [**Task**](obi_one/core/task.py):
- [**ScanGenerationTask**](obi_one/core/scan_generation_task.py): 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


<br>


# FAST API Service

Launch the FAST API Serive, with docs viewable at: http://127.0.0.1:8100/docs
```
make run-local
```

<br>

# Contributions
Please see [**CONTRIBUTIONS.md**](CONTRIBUTIONS.md) for guidelines on how to contribute.
 
# Acknowledgements
Copyright © 2025 Open Brain Institute
