Skip to content

Commit

Permalink
Continue to clarify software options
Browse files Browse the repository at this point in the history
- Improved clarity of descriptions and ordering of presentation of
  software options
  • Loading branch information
jonnew committed Aug 8, 2024
1 parent ea11349 commit ab4c884
Show file tree
Hide file tree
Showing 6 changed files with 341 additions and 73 deletions.
46 changes: 11 additions & 35 deletions source/Software Guide/Open Ephys GUI/index.rst
Original file line number Diff line number Diff line change
@@ -1,43 +1,19 @@
.. _open_ephys_gui:

Open Ephys GUI
---------------------------------------------
There is currently no dedicated ONIX plugin available for the `Open Ephys GUI
<https://open-ephys.github.io/gui-docs/index.html>`__. The Open Ephys GUI is
built primarily for multichannel electrophysiology using an audio processing
library that makes it difficult to deal with multiple asynchronous data
streams.
--------------------------------------------

.. note:: Have a look at the `Open Ephys GUI documentation
<https://open-ephys.github.io/gui-docs/User-Manual/Before-you-begin.html>`_
for information on the GUI's design.
The `Open Ephys GUI <https://open-ephys.github.io/gui-docs/index.html>`__ is an
open-source, plugin-based application for acquiring extracellular
electrophysiology data. It was designed by neuroscientists to make their
experiments more flexible and enjoyable. It works equally well on macOS, Linux,
and Windows.

This is fine when the data being processed is synchronized ephys and auxiliary
data. However, by design, ONIX hardware makes no such guarantees about the
nature of the data it produces. On the contrary, an
**Acquisition Context** manages a table of devices that are
potentially all asynchronous from one another. Even though each sample from
these devices is individually time-stamped in hardware, there is no guarantee
of when they will arrive or in what order. This necessitates the use of
event-driven acquisition software that only propagates data when its received,
and this is where `Bonsai <https://bonsai-rx.org/>`__ really shines. For this
reason, we have dedicated the majority of our development effort toward the
:ref:`Bonsai.ONIX <bonsai_onixref>` library.
.. note:: An ONIX plugin for the Open Ephys is in development. To access all of
ONIX's capabilities right now, have a look at the :ref:`Bonsai library
<openephys_onix1ref>`. **You can still take advantage of the GUI's excellent
ephys visualizaiton tools by streaming data from Bonsai to the GUI using
the** `Ephys Socket Plugin <https://open-ephys.github.io/gui-docs/User-Manual/Plugins/Ephys-Socket.html>`__.

Using the Open Ephys GUI for ONIX Data Visualization
--------------------------------------------------------------
Bonsai provides advanced access to GPU visualization capabilities, but has to
be manually programmed to generate high performance real-time plotting. This can
be a hurdle for those that just want to see if they have their probe in the
right spot. In the future, we aim to change this situation, and eventually
provide first-class native ephys visualization capabilities in the Bonsai
Editor.

.. note:: If you want to help improve Bonsai's Ephys visualization capabilites,
:ref:`get in touch <support>`.

In the meantime we can take advantage of the Ephys GUI's visualization and
audio streaming by the `Ephys Socket Plugin
<https://open-ephys.github.io/gui-docs/User-Manual/Plugins/Ephys-Socket.html>`__
to receive data from Bonsai.

31 changes: 31 additions & 0 deletions source/Software Guide/OpenEphys.Onix1/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
.. _openephys_onix1ref:

Bonsai
========================

`Bonsai <https://bonsai-rx.org/>`__ is a visual programming language (think
LabView) for reactive programming. It is lightweight and easy to use with a
variety of packages and modules for interfacing with hardware and for real-time
processing and manipulation of data streams. `OpenEphys.Onix1
<https://open-ephys.github.io/onix1-bonsai-docs/index.html>`__ is a Bonsai
library for ONIX hardware. This library contains `Bonsai Operators
<https://bonsai-rx.org/docs/articles/operators.html>`__ for acquiring and
sending data to ONIX hardware.

:Code: https://github.com/open-ephys/onix-bonsai-onix1
:Compatibility: ONIX Hardware, UCLA miniscopes & variants
:Documentation: https://open-ephys.github.io/onix1-bonsai-docs/index.html

.. raw:: html

<a href="https://open-ephys.github.io/onix1-bonsai-docs/index.html"><span class="std std-ref custom-card">
<div class="card text-center page-card">

<header>
<h1>Go to the ONIX library Docs <i class="fas fa-external-link"></i></h1>
</header>
<img src="../../_static/images/bonsai-lettering.svg"
class="page-card-img-marg hover-zoom" alt="OpenEphys.Onix1 bonsai
library documentation">

</div>
39 changes: 21 additions & 18 deletions source/Software Guide/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,32 +6,35 @@
.. toctree::
:hidden:

oni-repl/index
Onix Bonsai Library <onix1>
OpenEphys.Onix1/index
Open Ephys GUI/index
oni-repl/index
Bonsai.ONIX (DEPRECATED) <Bonsai.ONIX/index>

|software_logo| Software Guide
===================================

Although ONIX is software agnostic, we have focused our development efforts on `Bonsai <https://bonsai-rx.org/>`__ for data acquisition. Bonsai is
very good at dealing with the asynchronous and heterogeneous data that ONIX
hardware produces.
:ref:`Bonsai <openephys_onix1ref>`
A `Bonsai <https://bonsai-rx.org/>`__ library for acquiring data from ONIX
hardware for real-time experiments. Bonsai is very good at processing the
heterogeneous data streams produced by ONIX hardware.

:ref:`Open Ephys GUI <open_ephys_gui>`
The Open Ephys GUI can be used for ONIX data visualization.

- The :ref:`oni_repl` pages document a low-level C program that
can be used for debugging and basic streaming IO with ONIX
hardware.
- The `OpenEphys.Onix1 <https://open-ephys.github.io/onix1-bonsai-docs/index.html>`__ pages detail how to use the ONIX Bonsai library.
- The :ref:`open_ephys_gui` page shows how ephys data can be streamed the Open
Ephys GUI to take advantage of its excellent visualization capabilities.
:ref:`oni-repl <oni_repl>`
A simple command-line application that can be used for debugging and basic
streaming IO with ONIX hardware.

Deprecated
-----------
.. tip:: ONIX uses an `ONI-compliant API
<https://open-ephys.github.io/ONI/api/index.html>`__ that is software
agnostic. There are several software options for acquiring data from ONIX
hardware If you want to use ONIX hardware with your acquisition software,
please :ref:`get in touch <support>`.

- The :ref:`bonsai_onixref` pages provide detailed information about the deprecated ONIX
Bonsai library.
Deprecated Software
___________________________________

- The :ref:`bonsai_onixref` pages provide information about the original Bonsai
library, which has been superseded by :ref:`openephys_onix1ref`

.. tip:: If you want to use ONIX hardware with your acquisition software,
please :ref:`get in touch <support>`. It's not as hard as you might think
:).
14 changes: 0 additions & 14 deletions source/Software Guide/onix1.rst

This file was deleted.

Loading

0 comments on commit ab4c884

Please sign in to comment.