-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Improve landing page - Simplify presentation - Remove warning as first thing you see - Tell people why we target bonsai * Address some review comments * Minor updates after merging * Remove breadcrumb attribute Co-authored-by: cjsha <[email protected]> Co-authored-by: bparks13 <[email protected]>
- Loading branch information
1 parent
5e1dca5
commit 6bf26a5
Showing
4 changed files
with
265 additions
and
20 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,33 +1,97 @@ | ||
--- | ||
uid: index | ||
title: OpenEphys.Onix1 | ||
_disableBreadcrumb: true | ||
--- | ||
|
||
> [!Warning] | ||
> These docs are under active development, feel free to contribute by either [raising an issue](https://github.com/bonsai-rx/docs/issues) or following the links saying **Edit this page**. | ||
`OpenEphys.Onix1` is a [Bonsai](https://bonsai-rx.org/) library that can be used to control the [ONIX PCIe Acquisition System](https://open-ephys.org/onix/oeps-9006), which provides: | ||
|
||
`OpenEphys.Onix1` is a library that can be used in [Bonsai](https://bonsai-rx.org/) to acquire data from ONIX devices, such as the [ONIX PCIe Acquisition System](https://open-ephys.org/onix/oeps-9006). For more details on the ONI specification, check out [this link](https://open-ephys.github.io/ONI/), and to learn more about ONIX devices and their implementation of ONI, click [here](https://open-ephys.github.io/onix-docs/). | ||
* Support for a variety of tools such as [Neuropixels (all | ||
variants)](https://www.neuropixels.org/), | ||
[Miniscopes](https://open-ephys.org/miniscope-v4/miniscope-v4), [Intan-based | ||
headstages](https://open-ephys.org/onix/oeps-7741), and more | ||
* Automatic hardware synchronization of all data streams. | ||
* Torque-free commutation of ultra-thin (down to ~0.2mm diameter) tethers | ||
* High performance closed-loop control (100 usec feedback loop times) | ||
|
||
## Advantages | ||
|
||
While data can be acquired using programs other than Bonsai, there are a number of advantages that come from building `OpenEphys.Onix1` as a Bonsai library. A major advantage is that it maintains maximal compatibility with open source programs, including [OpenCV](https://opencv.org/), [DeepLabCut](https://www.mackenziemathislab.org/deeplabcut), and many more. | ||
<br> | ||
<div class="quick-links"> | ||
|
||
Other major advantages include: | ||
* Visual interface provided by building on top of Bonsai's foundation | ||
* Time-stamped synchronization across multiple devices | ||
* Combine data streams for real-time processing | ||
| <xref:getting-started> | [Operator Reference](xref:OpenEphys.Onix1) | <xref:tutorials> | [Hardware Guide](https://open-ephys.github.io/onix-docs/) | | ||
|:----:|:----:|:----:|:----:| | ||
| [![User Guide](images/running.svg){width=150}](xref:getting-started) | [![Operator Reference](images/books.svg){width=150}](xref:OpenEphys.Onix1) | [![Tutorials](images/beaker.svg){width=150}](xref:tutorials) |[![Tutorials](images/screwdriver.svg){width=150}](https://open-ephys.github.io/onix-docs/)| | ||
|
||
</div> | ||
<br> | ||
|
||
### Quick Links | ||
<br> | ||
### Why Bonsai? | ||
|
||
ONIX is built on the [ONI standard](https://open-ephys.github.io/ONI/), which is software | ||
agnostic. Bonsai is the first software target pursued by the Open Ephys team for | ||
ONIX hardware. There are three major reasons for this: | ||
|
||
1. **Performance.** ONIX is a universal interface for neural recording instruments. It can | ||
capture data produced by neural probes, cameras, high-speed ADCs, etc. In | ||
general terms, ONIX can capture data from arbitrary mixtures of | ||
asynchronous[^1] data sources. Bonsai provides an extremely powerful, | ||
open-source software platform for elegantly collecting, combining, and | ||
processing data from essentially any data source regardless of its sample | ||
rate, sample regularity, packet size, and bandwidth. Bonsai accomplishes this | ||
task in a fundamental manner: it explicitly models each data source as an | ||
ordered temporal sequence with a start and end called an | ||
[Observable](https://reactivex.io/documentation/observable.html). This is | ||
analogous to how, for instance, | ||
[Numpy](https://numpy.org/doc/stable/index.html) explicitly models fixed-size | ||
multi-dimensional arrays as | ||
[ndarrays](https://numpy.org/doc/stable/reference/generated/numpy.ndarray.html#numpy.ndarray). | ||
And, just like Numpy offers an extensive linear algebra toolkit | ||
to operate on these arrays, Bonsai offers an analogous | ||
[toolkit](https://reactivex.io/documentation/operators.html) | ||
for operating on temporal sequences of data. Because Bonsai was created around this core | ||
data model and operator library, it makes capturing, processing, and combining data | ||
sequences from different hardware sources natural in Bonsai, whereas it is | ||
bug prone and difficult in other software options. | ||
1. **Code quality.** Open Ephys has been developing open source hardware and | ||
software for the Neuroscience community for over a decade. In terms of code | ||
quality, Bonsai is excellent. Bonsai uses a modern language and build system, | ||
has integrated package management, and an extremely clean, featureful, and well | ||
maintained API. Given that Bonsai's development model perfectly aligns with our | ||
values, we are very proud to be able to contribute to its growth in the | ||
Neuroscience community. | ||
1. **Third party integration.** Bonsai provides support for | ||
hundreds of pieces of open- and closed-source hardware and software that are | ||
used extensively in neuroscience research. For instance: | ||
|
||
- The classic Open Ephys [acquisition system](https://open-ephys.org/acquisition-system) | ||
- [Ucla Miniscope ecosystem](https://open-ephys.github.io/miniscope-docs/index.html) | ||
- [National Instruments](https://bonsai-rx.org/daqmx/articles/intro.html) acquisition boards | ||
- Virtually every machine-vision and sCMOS camera[^2] | ||
- [Sanworks Bpod](https://sanworks.github.io/Bpod_Wiki/) | ||
- [Harp](https://harp-tech.org/index.html) | ||
- [Deeplabcut](https://github.com/bonsai-rx/deeplabcut) & [Sleap](https://github.com/bonsai-rx/sleap) | ||
- And much more | ||
|
||
By targeting Bonsai, ONIX can be used seamlessly with these third party tools. | ||
|
||
> [!NOTE] | ||
> We put a lot of effort into | ||
> making these docs useful for everyone. If you have suggestions for making | ||
> them even better, please contribute by either [raising an | ||
> issue](https://github.com/bonsai-rx/docs/issues) or following the links saying | ||
> **Edit this page**. We welcome all constructive feedback. As always, our goals | ||
> are better performing tools, less redundant development, and more reproducible | ||
> science. | ||
> | ||
> In addition to this library, we are currently developing ONIX support for the | ||
[Open Ephys GUI](https://open-ephys.org/gui/). | ||
|
||
<div class="quick-links"> | ||
|
||
| <xref:getting-started> | <xref:OpenEphys.Onix1> | <xref:tutorials> | | ||
|:--------------:|:-------------------:|:---------:| | ||
| [![User Guide](images/macbook.svg){width=200}](xref:getting-started) | [![Operator Guide](images/books.svg){width=200}](xref:OpenEphys.Onix1) | [![Tutorials](images/running.svg){width=200}](xref:tutorials) | | ||
| [New to Bonsai or <br>OpenEphys.Onix? Start here!](xref:getting-started) | [Operator references here](xref:OpenEphys.Onix1) | [Check out our tutorials <br>for useful workflows](xref:tutorials) | | ||
[^1]: Although physical data sources are asynchronous (e.g. a Neuropixels probe | ||
runs on a distinct clock and produces data at a distinct rate compared to the | ||
camera sensor on a Miniscope), all data is hardware-timestamped on a common | ||
clock. No post-hoc data alignment is required. | ||
|
||
</div> | ||
[^2]: [Flir](https://github.com/bonsai-rx/spinnaker), [Allied | ||
Vision](https://github.com/bonsai-rx/vimba), | ||
[Ximea](https://github.com/bonsai-rx/ximea), | ||
[Basler](https://github.com/bonsai-rx/pylon), | ||
[Excelitas](https://github.com/bonsai-rx/pco), etc. |