diff --git a/apidoc/OpenEphys.Onix.ConfigureBreakoutBoard.md b/apidoc/OpenEphys.Onix.ConfigureBreakoutBoard.md index fc6cc39..3b8a65d 100644 --- a/apidoc/OpenEphys.Onix.ConfigureBreakoutBoard.md +++ b/apidoc/OpenEphys.Onix.ConfigureBreakoutBoard.md @@ -2,4 +2,4 @@ uid: OpenEphys.Onix1.ConfigureBreakoutBoard --- -[!INCLUDE [Hub Template](hub_template.md)] \ No newline at end of file +[!INCLUDE [Hub Template](hub-template.md)] \ No newline at end of file diff --git a/apidoc/OpenEphys.Onix.ConfigureHeadstage64.md b/apidoc/OpenEphys.Onix.ConfigureHeadstage64.md index 22bcd1a..b50e158 100644 --- a/apidoc/OpenEphys.Onix.ConfigureHeadstage64.md +++ b/apidoc/OpenEphys.Onix.ConfigureHeadstage64.md @@ -2,4 +2,4 @@ uid: OpenEphys.Onix1.ConfigureHeadstage64 --- -[!INCLUDE [Hub Template](hub_template.md)] \ No newline at end of file +[!INCLUDE [Hub Template](hub-template.md)] \ No newline at end of file diff --git a/apidoc/OpenEphys.Onix.ConfigureNeuropixelsV1eHeadstage.md b/apidoc/OpenEphys.Onix.ConfigureNeuropixelsV1eHeadstage.md index 14a4ced..4d4d43a 100644 --- a/apidoc/OpenEphys.Onix.ConfigureNeuropixelsV1eHeadstage.md +++ b/apidoc/OpenEphys.Onix.ConfigureNeuropixelsV1eHeadstage.md @@ -2,4 +2,4 @@ uid: OpenEphys.Onix1.ConfigureNeuropixelsV1eHeadstage --- -[!INCLUDE [Hub Template](hub_template.md)] \ No newline at end of file +[!INCLUDE [Hub Template](hub-template.md)] \ No newline at end of file diff --git a/apidoc/OpenEphys.Onix.ConfigureNeuropixelsV2eBetaHeadstage.md b/apidoc/OpenEphys.Onix.ConfigureNeuropixelsV2eBetaHeadstage.md index 235fa3f..e3b3bf3 100644 --- a/apidoc/OpenEphys.Onix.ConfigureNeuropixelsV2eBetaHeadstage.md +++ b/apidoc/OpenEphys.Onix.ConfigureNeuropixelsV2eBetaHeadstage.md @@ -2,4 +2,4 @@ uid: OpenEphys.Onix1.ConfigureNeuropixelsV2eBetaHeadstage --- -[!INCLUDE [Hub Template](hub_template.md)] \ No newline at end of file +[!INCLUDE [Hub Template](hub-template.md)] \ No newline at end of file diff --git a/apidoc/OpenEphys.Onix.ConfigureNeuropixelsV2eHeadstage.md b/apidoc/OpenEphys.Onix.ConfigureNeuropixelsV2eHeadstage.md index a947648..1ba548a 100644 --- a/apidoc/OpenEphys.Onix.ConfigureNeuropixelsV2eHeadstage.md +++ b/apidoc/OpenEphys.Onix.ConfigureNeuropixelsV2eHeadstage.md @@ -2,4 +2,4 @@ uid: OpenEphys.Onix1.ConfigureNeuropixelsV2eHeadstage --- -[!INCLUDE [Hub Template](hub_template.md)] \ No newline at end of file +[!INCLUDE [Hub Template](hub-template.md)] \ No newline at end of file diff --git a/apidoc/hub_template.md b/apidoc/hub-template.md similarity index 100% rename from apidoc/hub_template.md rename to apidoc/hub-template.md diff --git a/articles/devices/bno055_neuropixelsv1e.md b/articles/devices/bno055-neuropixelsv1e.md similarity index 62% rename from articles/devices/bno055_neuropixelsv1e.md rename to articles/devices/bno055-neuropixelsv1e.md index df9b29a..8b56b21 100644 --- a/articles/devices/bno055_neuropixelsv1e.md +++ b/articles/devices/bno055-neuropixelsv1e.md @@ -1,12 +1,12 @@ --- -uid: device-bno055_neuropixelsv1e +uid: device-bno055-neuropixelsv1e title: NeuropixelsV1eBno055 isGuide: true isDevice: true device: BNO055 headstage: NeuropixelsV1e workflow: true -workflow_file: ~/workflows/devices/Bno055_NeuropixelsV1e.bonsai +workflow_file: ~/workflows/devices/Bno055-Neuropixelsv1e.bonsai visualize: true visualize_timeseries: true --- diff --git a/articles/devices/bno055_neuropixelsv2e.md b/articles/devices/bno055-neuropixelsv2e.md similarity index 62% rename from articles/devices/bno055_neuropixelsv2e.md rename to articles/devices/bno055-neuropixelsv2e.md index fc7d99d..5ff473e 100644 --- a/articles/devices/bno055_neuropixelsv2e.md +++ b/articles/devices/bno055-neuropixelsv2e.md @@ -1,12 +1,12 @@ --- -uid: device-bno055_neuropixelsv2e +uid: device-bno055-neuropixelsv2e title: NeuropixelsV2eBno055 isGuide: true isDevice: true device: BNO055 headstage: NeuropixelsV2e workflow: true -workflow_file: ~/workflows/devices/Bno055_NeuropixelsV2e.bonsai +workflow_file: ~/workflows/devices/Bno055-Neuropixelsv2e.bonsai visualize: true visualize_timeseries: true --- diff --git a/articles/getting-started/bonsai_usage.md b/articles/getting-started/bonsai-usage.md similarity index 60% rename from articles/getting-started/bonsai_usage.md rename to articles/getting-started/bonsai-usage.md index 4d574c2..56dac57 100644 --- a/articles/getting-started/bonsai_usage.md +++ b/articles/getting-started/bonsai-usage.md @@ -7,4 +7,4 @@ To begin, the first thing to do is to open up the Bonsai editor. This can be don ![Open a new file in Bonsai](../../images/bonsai-splash-page-new-file.png){width=650px} -From the editor, nodes can be selected on the left side and placed into the workspace. Before going into details on how to place nodes, we will instead go over the different types of nodes, some examples of ONIX-specific nodes in each category, and some common categories of properties that can be modified across nodes. +From the editor, operators can be selected on the left side and placed into the workspace. Before going into details on how to place operators, we will instead go over the different types of operators, some examples of ONIX-specific operators in each category, and some common categories of properties that can be modified across operators. diff --git a/articles/getting-started/getting_started.md b/articles/getting-started/getting-started.md similarity index 86% rename from articles/getting-started/getting_started.md rename to articles/getting-started/getting-started.md index 7d03ec7..96756d0 100644 --- a/articles/getting-started/getting_started.md +++ b/articles/getting-started/getting-started.md @@ -3,7 +3,7 @@ uid: GettingStarted title: Getting Started --- -Welcome to the user guide! The next few pages are dedicated to users who are unfamiliar with ONIX and Bonsai, and will teach them what ONIX is, how to download and install Bonsai, open a new file, place nodes (and understand what a node is), reorder a workflow, run a workflow, and finally visualize data. +Welcome to the user guide! The next few pages are dedicated to users who are unfamiliar with ONIX and Bonsai, and will teach them what ONIX is, how to download and install Bonsai, open a new file, place operators (and understand what an operator is), reorder a workflow, run a workflow, and finally visualize data. For those who are already familiar with Bonsai and are looking for a particular device or headstage to learn more about the hardware and how to utilize it, the table of contents on the left contains entries for each available device and headstage. Choose a page to learn more about the hardware and view a fully complete workflow that can be copied directly into Bonsai to aid in quickly setting up and collecting data from a system. diff --git a/articles/getting-started/initialize_oni_context.md b/articles/getting-started/initialize-oni-context.md similarity index 50% rename from articles/getting-started/initialize_oni_context.md rename to articles/getting-started/initialize-oni-context.md index d47c188..88d2130 100644 --- a/articles/getting-started/initialize_oni_context.md +++ b/articles/getting-started/initialize-oni-context.md @@ -3,21 +3,21 @@ uid: InitializeOniContext title: Initialize the ONI Context --- -The [`CreateContext`](xref:OpenEphys.Onix1.CreateContext) operator initializes the acquisition context, and it should be the first node you add to your workflow as it provides access to the hardware device table for all other configuration operators. There are several different ways to find this node and add it to the workflow: +The [`CreateContext`](xref:OpenEphys.Onix1.CreateContext) operator initializes the acquisition context, and it should be the first operator you add to your workflow as it provides access to the hardware device table for all other configuration operators. There are several different ways to find this operator and add it to the workflow: -1. From the Bonsai editor, navigate to the toolbox on the left side of the screen and expand the **Source** section. Next, expand the **OpenEphys.Onix1** section, and find the `CreateContext` line. The node can then be added by either double-clicking it, or dragging and dropping the node into the workflow. +1. From the Bonsai editor, navigate to the toolbox on the left side of the screen and expand the **Source** section. Next, expand the **OpenEphys.Onix1** section, and find the `CreateContext` line. The operator can then be added by either double-clicking it, or dragging and dropping the operator into the workflow. - ![Search for CreateContext node manually](../../images/bonsai-editor-place-create-context-manually.png){width=700px} + ![Search for CreateContext operator manually](../../images/bonsai-editor-place-create-context-manually.png){width=700px} -2. Click on the textbox at the top of the toolbox on the left, or from Ctrl + E to focus on the textbox, and type `CreateContext` to search for the node. Same as (1), the node can be placed by double-clicking or dragging and dropping; additionally, if the `CreateContext` string is highlighted Enter can be pressed to place the node immediately. +2. Click on the textbox at the top of the toolbox on the left, or from Ctrl + E to focus on the textbox, and type `CreateContext` to search for the operator. Same as (1), the operator can be placed by double-clicking or dragging and dropping; additionally, if the `CreateContext` string is highlighted Enter can be pressed to place the operator immediately. - ![Search for CreateContext node from textbox](../../images/bonsai-editor-place-create-context-search.png){width=700px} + ![Search for CreateContext operator from textbox](../../images/bonsai-editor-place-create-context-search.png){width=700px} 3. Hover over the image of the [`CreateContext`](xref:OpenEphys.Onix1.CreateContext) workflow below, and click on the clipboard icon in the top-right corner of the workflow image to copy the workflow to the clipboard. Navigate back to Bonsai, and paste the copied workflow into the active editor. Pasting can be done via Ctrl + V, or right-clicking in the editor and choosing **Paste**. ## CreateContext Workflow -This is a nominally functional workflow that provides access to the ONI context, from which all nodes can then be linked to and configured, while also demonstrating how a Breakout Board can be configured before finishing the configuration chain by placing a [`StartAcquisition`](xref:OpenEphys.Onix1.StartAcquisition) node: +This is a nominally functional workflow that provides access to the ONI context, from which all operators can then be linked to and configured, while also demonstrating how a Breakout Board can be configured before finishing the configuration chain by placing a [`StartAcquisition`](xref:OpenEphys.Onix1.StartAcquisition) operator: :::workflow ![CreateContext](../../workflows/operators/ConfigureBreakoutBoard.bonsai) diff --git a/articles/getting-started/install-configure-bonsai.md b/articles/getting-started/install-configure-bonsai.md new file mode 100644 index 0000000..f2fff80 --- /dev/null +++ b/articles/getting-started/install-configure-bonsai.md @@ -0,0 +1,84 @@ +--- +uid: BonsaiInstallationAndConfiguration +title: Bonsai Installation and Configuration +--- + +## Install Bonsai + +To download Bonsai, select between the portable download and the installer download [here](https://bonsai-rx.org/docs/articles/installation.html). + +* The **Portable** download installs a sandboxed version of Bonsai. Portable environments enable users to switch between different environments to prevent package conflicts or confusion between similar packages. + + * To install from the **Portable** download, extract the downloaded file. You can start the portable Bonsai by running the `Bonsai.exe` that is inside the extracted folder. + +* The **Installer** download installs Bonsai and all its dependencies globally. + + * To install from the **Installer** download, run the downloaded `Bonsai-X.X.X.exe` file and agree to the involved licenses. You can start the globally installed Bonsai by launching it from the `Bonsai Setup` window after installing or searching for it in your OS's search function, for example. You can create a shortcut such that the portable Bonsai environment is easy and name it such that it is easy to differentiate between different environments. + +To use Bonsai for interfacing with Open Ephys hardware in a meaningful way, additional packages are required. + +## Open Bonsai Package Manager + +The Bonsai package manager can be accessed from Bonsai's landing window or its workflow editor: + +![Package manager from splash page](../../images/bonsai-splash-page-package-manager-highlight.png){width=350px} or ![Package manager from editor](../../images/bonsai-editor-package-manager-highlight.png){width=425px} + +## Install Packages in Bonsai + +The two required packages to run the workflows in this documentation are: + +* `Bonsai.StarterPack` + +* `OpenEphys.Onix1` + +Additional packages may be required if you wish to use Bonsai in ways that extend beyond the scope of this documentation. + +### Bonsai.StarterPack + +Install the `Bonsai.StarterPack` package. [Open the package manager](#open-bonsai-package-manager) and: + +1. Click the `Browse` tab. + +1. Set `Package source` to `Bonsai Packages`. + +1. Search for `Bonsai.StarterPack`. + +1. Click `Install`. + +![Bonsai Bonsai.StarterPack Install Screenshot](../../images/bonsai-install-Bonsai.StarterPack.webp){width=650px} + +### OpenEphys.Onix1 + +Install the `OpenEphys.Onix1` package. [Open the package manager](#open-bonsai-package-manager) and: + +1. Click the `Browse` tab. + +1. Set `Package source` to `All` or `NuGet`. + +1. Search `OpenEphys.Onix1`. + +1. Click `Install`. + +1. Click `I Accept` when the license agreement window appears. + +![Bonsai OpenEphys.Onix1 Install Screenshot](../../images/bonsai-install-OpenEphys.Onix1.webp){width=650px} + +## Update Packages in Bonsai + +It is good practice to periodically check for package updates. [Open the package manager](#open-bonsai-package-manager) and: + +1. Click the `Update` tab. + +1. Set `Package source` to `All`. + +1. Leave the search bar blank if you want to check for updates for all packages.\ + Alternatively, if you want to check for an update for a particular package, you may type that package's name in the search bar to expedite the update retrieval process. + +1. Click `Update All` if you want to perform all available updates.\ + Alternatively, click on a package and click `Update` if you want to perform a subset of the available updates. + +![Bonsai Update All or Just One Screenshot](../../images/bonsai-update.webp){width=650px} + +## Next Steps + +Now that Bonsai has been installed and configured, it is time to start placing operators and configuring those. If you are new to Bonsai, the following sections give a high-level understanding of how Bonsai is organized, and some of the ONIX-specific concepts that will be useful for learning how to work with the operators. diff --git a/articles/getting-started/install_and_download.md b/articles/getting-started/install_and_download.md deleted file mode 100644 index 6b9da1c..0000000 --- a/articles/getting-started/install_and_download.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -uid: InstallationAndDownload -title: Installation and Download ---- - -* To install `OpenEphys.Onix1`, first install Bonsai [here](https://bonsai-rx.org/docs/articles/installation.html) -* Once Bonsai is installed, open Bonsai and download the necessary packages - * Open the Bonsai package manager - - ![Package manager from splash page](../../images/bonsai-splash-page-package-manager-highlight.png){width=350px} or ![Package manager from editor](../../images/bonsai-editor-package-manager-highlight.png){width=425px} - * Go to **Browse** - - ![Browse the package manager](../../images/bonsai-package-manager-browse.png){width=650px} - * Download the `Bonsai.StarterPack`, which contains several commonly used packages that will be useful for creating workflows and visualizing data. Search for `Bonsai.StarterPack` (1), select the package and click **Install** (2). Click `I Accept` to accept the licenses. - - ![Search for Bonsai.StarterPack and install it](../../images/bonsai-package-manager-starterpack.png){width=650px} - - * Change the package source to **All** (1), then follow the same steps (2,3) to search for and install `OpenEphys.Onix1` - - ![Search for OpenEphys.Onix1 and install it](../../images/bonsai-package-manager-openephys.onix.png){width=650px} - - > [!Warning] - > Update this once the package has been published to NuGet - - > [!Note] - > Alternatively, to take advantage of the graphical user interface built on top of Bonsai, search for the `OpenEphys.Onix.Design` package, which provides GUI's for many of the configurable nodes, making it easier to configure settings and visualize changes prior to committing them to the hardware - -Now that Bonsai has been installed, and the appropriate packages downloaded, it is time to start placing nodes and configuring them. If you are new to Bonsai, the following sections give a high-level understanding of how Bonsai is organized, and some of the ONIX-specific concepts that will be useful for learning how to work with the nodes. diff --git a/articles/getting-started/next-steps.md b/articles/getting-started/next-steps.md new file mode 100644 index 0000000..ab8bd51 --- /dev/null +++ b/articles/getting-started/next-steps.md @@ -0,0 +1,10 @@ +--- +uid: NextSteps +title: Next Steps +--- + +Continue browsing and check out specific operators on the left to see how to configure each operator, as well as some ways to visualize data. Each page will have a fully functional workflow that can be copied into Bonsai to provide an easy starting point for generating data. + +For more technical information on each operator, head to the to see a more developer-focused view of each operator. + +More complex and in-depth tutorials for placing multiple operators and moving towards generating data in an experimental setting can be found in the . diff --git a/articles/getting-started/next_steps.md b/articles/getting-started/next_steps.md deleted file mode 100644 index a18c0df..0000000 --- a/articles/getting-started/next_steps.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -uid: NextSteps -title: Next Steps ---- - -Continue browsing and check out specific nodes on the left to see how to configure each node, as well as some ways to visualize data. Each page will have a fully functional workflow that can be copied into Bonsai to provide an easy starting point for generating data. - -For more technical information on each node, head to the to see a more developer-focused view of each node. - -More complex and in-depth tutorials for placing multiple nodes and moving towards generating data in an experimental setting can be found in the . diff --git a/articles/getting-started/node_types.md b/articles/getting-started/node-types.md similarity index 51% rename from articles/getting-started/node_types.md rename to articles/getting-started/node-types.md index bc3f82c..e9cd8df 100644 --- a/articles/getting-started/node_types.md +++ b/articles/getting-started/node-types.md @@ -1,14 +1,14 @@ --- -uid: NodeTypes -title: Node Types +uid: OperatorTypes +title: Operator Types --- -In Bonsai, all objects are called "nodes", and have a specific function associated with them depending on what they do; this can be `Source`, `Sink`, `Combinator`, `Transform`, or `Condition`. For ONIX nodes, they are all classified as either `Source`, `Sink`, or `Combinator`. +In Bonsai, all objects are called "operators", and have a specific function associated with them depending on what they do; this can be `Source`, `Sink`, `Combinator`, `Transform`, or `Condition`. For ONIX operators, they are all classified as either `Source`, `Sink`, or `Combinator`. -| Node Type | Description | Example ONIX nodes | +| Operator Type | Description | Example ONIX operators | | --------- | ----------- | ------------------ | | Source | Generate event streams from devices or files | [`CreateContext`](xref:OpenEphys.Onix1.CreateContext), [`Bno055Data`](xref:OpenEphys.Onix1.Bno055Data), [`NeuropixelsV1eData`](xref:OpenEphys.Onix1.NeuropixelsV1eData) | | Sink | Save data or trigger external outputs | [`ConfigureHeadstage64`](xref:OpenEphys.Onix1.ConfigureHeadstage64), [`ConfigureNeuropixelsV1eHeadstage`](xref:OpenEphys.Onix1.ConfigureNeuropixelsV1eHeadstage) | | Combinator | Manage control flow or synchronize parallel inputs | [`StartAcquisition`](xref:OpenEphys.Onix1.StartAcquisition) | -Nodes are placed in the Bonsai editor and can be saved into a "workflow", which is a grouping of nodes and saved settings. This workflow can then be run to perform some task, depending on what nodes are placed. +Operators are placed in the Bonsai editor and can be saved into a "workflow", which is a grouping of operators and saved settings. This workflow can then be run to perform some task, depending on what operators are placed. diff --git a/articles/getting-started/property_categories.md b/articles/getting-started/property-categories.md similarity index 85% rename from articles/getting-started/property_categories.md rename to articles/getting-started/property-categories.md index 1cd02a6..af7dd7f 100644 --- a/articles/getting-started/property_categories.md +++ b/articles/getting-started/property-categories.md @@ -3,7 +3,7 @@ uid: PropertyCategories title: Property Categories --- -There are specific categories of properties that define when a node's properties can be modified. +There are specific categories of properties that define when an operator's properties can be modified. `Configuration` properties are only settable when the workflow is not running, and for ONIX devices define how to initialize the device. Examples would be setting the number of channels to record from, the frame rate of a camera, or defining filters to apply to recording channels. diff --git a/articles/getting-started/running_a_workflow.md b/articles/getting-started/running_a_workflow.md deleted file mode 100644 index 4f7d951..0000000 --- a/articles/getting-started/running_a_workflow.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -uid: RunningAWorkflow -title: Running a Workflow ---- - -Once all nodes have been placed and linked correctly, and all **Configuration** properties have been set, it is now possible to run a workflow. Note that some aspects of Bonsai are only available in specific contexts; for instance, the GUIs mentioned above can only be opened when a workflow is not running. Once a workflow is running, these GUIs are not accessible, but visualizers for certain nodes can be opened to view the streaming data. - -Running a workflow can be done in one of two ways: (1) Press the **Start** button at the top of the Bonsai editor, and (2) Press F5. Upon starting a workflow, a context will be created, and all devices will be configured based on the **Configuration** properties. Any `*Data` nodes will then begin streaming data, and can be visualized. - -![Start button in Bonsai editor](../../images/bonsai-editor-start-button.png){width=700px} diff --git a/articles/getting-started/start-workflow.md b/articles/getting-started/start-workflow.md new file mode 100644 index 0000000..0281224 --- /dev/null +++ b/articles/getting-started/start-workflow.md @@ -0,0 +1,10 @@ +--- +uid: StartAWorkflow +title: Start a Workflow +--- + +Once all operators have been placed and linked correctly, and all **Configuration** properties have been set, it is now possible to run a workflow. Note that some aspects of Bonsai are only available in specific contexts; for instance, the GUIs mentioned above can only be opened when a workflow is not running. Once a workflow is running, these GUIs are not accessible, but visualizers for certain operators can be opened to view the streaming data. + +Running a workflow can be done in one of two ways: (1) Press the **Start** button at the top of the Bonsai editor, and (2) Press F5. Upon starting a workflow, a context will be created, and all devices will be configured based on the **Configuration** properties. Any `*Data` operators will then begin streaming data, and can be visualized. + +![Start button in Bonsai editor](../../images/bonsai-editor-start-button.png){width=700px} diff --git a/articles/getting-started/tips-tricks.md b/articles/getting-started/tips-tricks.md new file mode 100644 index 0000000..76838e8 --- /dev/null +++ b/articles/getting-started/tips-tricks.md @@ -0,0 +1,34 @@ +--- +uid: TipsAndTricks +title: Tips and Tricks +--- + +## Bonsai Operator Actions + +When running a workflow in Bonsai, operators are evaluated from left to right, and top to bottom, meaning that the order of the operators becomes very important. Additionally, operators that are linked together conceptually must be linked together explicitly in the editor. Below is a table with some methods for adding links, removing links, reordering operators horizontally and vertically, as well as some shortcuts to aid in placing operators more efficiently. + +The order of operators is also important for which actions can be taken. In the table below, the "first" operator is always the one that is on the left side, or on the bottom for multiple rows of operators. If the first operator clicked is on the right side, or on the top, these actions do not work. + +| Goal | Clicks / Keystrokes | Description | +| ---- | ------------------- | ----------- | +| Link two operators | Click and hold the first operator, drag the cursor to the second operator, and release | While dragging the cursor, it will temporarily change to a red symbol until there is a valid target (e.g., the second operator), where it will change to an up arrow | +| Link two operators | Right-click the first operator, and select **Create Connection**. Select the second operator | While moving the cursor, it will change to an up arrow. A valid operator target will change color when hovering over it | +| Link two operators on placement | Click on an operator in the editor to select it, then place an operator using either method (1) or (2) above | If an operator is currently selected in the editor when a new operator is added, whether it is added by clicking and dragging, double-clicking, or pressing **Enter**, the newly placed operator will be connected to the first operator automatically | +| Unlink two operators | Click the first operator to select it, hold **Shift**, click and hold the first operator, drag to the second operator, and release | While dragging the cursor, it will temporarily change to a red symbol until there is a valid target (e.g., the second operator), where it will change to an up arrow | +| Unlink two operators | Right-click the first operator, and select **Remove Connection**. Select the second operator | While moving the cursor, it will change to an up arrow. A valid operator target will change color when hovering over it | +| Move row of operators up | Hold **Alt**, click and hold the first operator, drag upwards to an operator in another row, and release | This action does not require that the operator be selected prior to performing the action. The second operator that is highlighted when the button / mouse are released will now be under the first operator | +| Change order of operators in a row | Hold **Ctrl**, click and hold the first operator, drag to the right to the second operator, and release | This action does not require that the operator be selected prior to performing the action. This can change the order of any two operators that are a part of the same row; it is not constrained to adjacent operators. Note that if the new placement of the operators is not valid (such as giving a `Source` operator an input), it will knock the operator of the current row and remove any connections | + +> [!Note] +> In the context of `OpenEphys.Onix1`, almost all workflows should have the top row containing a [`CreateContext`](xref:OpenEphys.Onix1.CreateContext) operator connected to an arbitrary number of `Configure*` operators, finished with a [`StartAcquisition`](xref:OpenEphys.Onix1.StartAcquisition) operator. Subsequent rows can contain the corresponding `*Data` operators configured above, and any processing / visualizing operators needed. + +
+ +## Accessing GUIs + +Some operators, specifically many of the `Configure*` operators, can have a GUI attached to the operator that allows for easy manipulation of **Configuration** properties in a graphical environment. These GUIs can be accessed by double-clicking on ab operator; if there is a GUI assigned to it, then it will be opened up in a new window. Please note that not all operators have GUIs, but if you think that an operator would benefit from having this functionality added please reach out to us. + +> [!Note] +> GUIs are not part of the base `OpenEphys.Onix1` library. To take advantage of this added functionality, you must install the accompanying `OpenEphys.Onix1.Design` library using the Bonsai package manager. + +A number of Bonsai operators also come shipped with GUIs, but similar to `OpenEphys.Onix1`, the corresponding `*.Design` library must be installed before it can be leveraged. diff --git a/articles/getting-started/tips_and_tricks.md b/articles/getting-started/tips_and_tricks.md deleted file mode 100644 index 1f7a085..0000000 --- a/articles/getting-started/tips_and_tricks.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -uid: TipsAndTricks -title: Tips and Tricks ---- - -## Bonsai Node Actions - -When running a workflow in Bonsai, nodes are evaluated from left to right, and top to bottom, meaning that the order of the nodes becomes very important. Additionally, nodes that are linked together conceptually must be linked together explicitly in the editor. Below is a table with some methods for adding links, removing links, reordering nodes horizontally and vertically, as well as some shortcuts to aid in placing nodes more efficiently. - -The order of nodes is also important for which actions can be taken. In the table below, the "first" node is always the one that is on the left side, or on the bottom for multiple rows of nodes. If the first node clicked is on the right side, or on the top, these actions do not work. - -| Goal | Clicks / Keystrokes | Description | -| ---- | ------------------- | ----------- | -| Link two nodes | Click and hold the first node, drag the cursor to the second node, and release | While dragging the cursor, it will temporarily change to a red symbol until there is a valid target (e.g., the second node), where it will change to an up arrow | -| Link two nodes | Right-click the first node, and select **Create Connection**. Select the second node | While moving the cursor, it will change to an up arrow. A valid node target will change color when hovering over it | -| Link two nodes on placement | Click on a node in the editor to select it, then place a node using either method (1) or (2) above | If a node is currently selected in the editor when a new node is added, whether it is added by clicking and dragging, double-clicking, or pressing **Enter**, the newly placed node will be connected to the first node automatically | -| Unlink two nodes | Click the first node to select it, hold **Shift**, click and hold the first node, drag to the second node, and release | While dragging the cursor, it will temporarily change to a red symbol until there is a valid target (e.g., the second node), where it will change to an up arrow | -| Unlink two nodes | Right-click the first node, and select **Remove Connection**. Select the second node | While moving the cursor, it will change to an up arrow. A valid node target will change color when hovering over it | -| Move row of nodes up | Hold **Alt**, click and hold the first node, drag upwards to a node in another row, and release | This action does not require that the node be selected prior to performing the action. The second node that is highlighted when the button / mouse are released will now be under the first node | -| Change order of nodes in a row | Hold **Ctrl**, click and hold the first node, drag to the right to the second node, and release | This action does not require that the node be selected prior to performing the action. This can change the order of any two nodes that are a part of the same row; it is not constrained to adjacent nodes. Note that if the new placement of the nodes is not valid (such as giving a `Source` node an input), it will knock the node of the current row and remove any connections | - -> [!Note] -> In the context of `OpenEphys.Onix1`, almost all workflows should have the top row containing a [`CreateContext`](xref:OpenEphys.Onix1.CreateContext) node connected to an arbitrary number of `Configure*` nodes, finished with a [`StartAcquisition`](xref:OpenEphys.Onix1.StartAcquisition) node. Subsequent rows can contain the corresponding `*Data` nodes configured above, and any processing / visualizing nodes needed. - -
- -## Accessing GUIs - -Some nodes, specifically many of the `Configure*` nodes, can have a GUI attached to the node that allows for easy manipulation of **Configuration** properties in a graphical environment. These GUIs can be accessed by double-clicking on a node; if there is a GUI assigned to it, then it will be opened up in a new window. Please note that not all nodes have GUIs, but if you think that a node would benefit from having this functionality added please reach out to us. - -> [!Note] -> GUIs are not part of the base `OpenEphys.Onix1` library. To take advantage of this added functionality, you must install the accompanying `OpenEphys.Onix1.Design` library using the Bonsai package manager. - -A number of Bonsai nodes also come shipped with GUIs, but similar to `OpenEphys.Onix1`, the corresponding `*.Design` library must be installed before it can be leveraged. diff --git a/articles/getting-started/visualizing-data.md b/articles/getting-started/visualizing-data.md new file mode 100644 index 0000000..1a6fafd --- /dev/null +++ b/articles/getting-started/visualizing-data.md @@ -0,0 +1,11 @@ +--- +uid: VisualizingData +title: Visualizing Data +--- + +To visualize data from any `*Data` operator, typically the variable that needs to be visualized must first be output from the operator. To do this, right-click on any `*Data` operator and select the first option; this will be something similar to `Output (OpenEphys.Onix1.*DataFrame)`. From the drop-down list, select the corresponding data variable to be visualized. Doing so will create a new operator in the workflow. + +Select this new operator and right-click it, search for the **Select Visualizer** option and choose a visualizer from that drop-down menu. Note that some data types will require a secondary operator to be connected directly after it, such as a `RollingGraph` operator. If so, this secondary operator must be right-clicked and the appropriate visualizer must be selected here. + +> [!Note] +> Some visualizers come as Bonsai operators and can be found in the `Bonsai.Design.Visualizers` package, which can be installed in the Bonsai package manager. These operators must be placed in the workflow and be linked to a data operator to visualize the data properly. diff --git a/articles/getting-started/visualizing_data.md b/articles/getting-started/visualizing_data.md deleted file mode 100644 index 09414e8..0000000 --- a/articles/getting-started/visualizing_data.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -uid: VisualizingData -title: Visualizing Data ---- - -To visualize data from any `*Data` node, typically the variable that needs to be visualized must first be output from the node. To do this, right-click on any `*Data` node and select the first option; this will be something similar to `Output (OpenEphys.Onix1.*DataFrame)`. From the drop-down list, select the corresponding data variable to be visualized. Doing so will create a new node in the workflow. - -Select this new node and right-click it, search for the **Select Visualizer** option and choose a visualizer from that drop-down menu. Note that some data types will require a secondary node to be connected directly after it, such as a `RollingGraph` node. If so, this secondary node must be right-clicked and the appropriate visualizer must be selected here. - -> [!Note] -> Some visualizers come as Bonsai nodes and can be found in the `Bonsai.Design.Visualizers` package, which can be installed in the Bonsai package manager. These nodes must be placed in the workflow and be linked to a data node to visualize the data properly. diff --git a/articles/getting-started/what_is_onix.md b/articles/getting-started/what-is-onix.md similarity index 100% rename from articles/getting-started/what_is_onix.md rename to articles/getting-started/what-is-onix.md diff --git a/articles/hubs/neuropixelsv1e.md b/articles/hubs/neuropixelsv1e.md index e99eb1a..037c923 100644 --- a/articles/hubs/neuropixelsv1e.md +++ b/articles/hubs/neuropixelsv1e.md @@ -4,7 +4,7 @@ title: NeuropixelsV1eHeadstage isGuide: true isHeadstage: true headstage: NeuropixelsV1e -devices: [ { id: NeuropixelsV1e, file: ~/articles/devices/neuropixelsv1e }, { id: BNO055, file: ~/articles/devices/bno055_neuropixelsv1e } ] +devices: [ { id: NeuropixelsV1e, file: ~/articles/devices/neuropixelsv1e }, { id: BNO055, file: ~/articles/devices/bno055-neuropixelsv1e } ] workflow: true workflow_file: ~/workflows/hubs/NeuropixelsV1e.bonsai --- diff --git a/articles/hubs/neuropixelsv2e.md b/articles/hubs/neuropixelsv2e.md index 22ef191..1d0a5d5 100644 --- a/articles/hubs/neuropixelsv2e.md +++ b/articles/hubs/neuropixelsv2e.md @@ -4,7 +4,7 @@ title: NeuropixelsV2eHeadstage isGuide: true isHeadstage: true headstage: NeuropixelsV2e -devices: [ { id: NeuropixelsV2e, file: ~/articles/devices/neuropixelsv2e }, { id: BNO055, file: ~/articles/devices/bno055_neuropixelsv2e } ] +devices: [ { id: NeuropixelsV2e, file: ~/articles/devices/neuropixelsv2e }, { id: BNO055, file: ~/articles/devices/bno055-neuropixelsv2e } ] workflow: true workflow_file: ~/workflows/hubs/NeuropixelsV2e.bonsai --- diff --git a/articles/hubs/neuropixelsv2ebeta.md b/articles/hubs/neuropixelsv2ebeta.md index db876b3..1ffb0d5 100644 --- a/articles/hubs/neuropixelsv2ebeta.md +++ b/articles/hubs/neuropixelsv2ebeta.md @@ -4,7 +4,7 @@ title: NeuropixelsV2eBetaHeadstage isGuide: true isHeadstage: true headstage: NeuropixelsV2eBeta -devices: [ { id: NeuropixelsV2eBeta, file: ~/articles/devices/neuropixelsv2ebeta }, { id: BNO055, file: ~/articles/devices/bno055_neuropixelsv2e } ] +devices: [ { id: NeuropixelsV2eBeta, file: ~/articles/devices/neuropixelsv2ebeta }, { id: BNO055, file: ~/articles/devices/bno055-neuropixelsv2e } ] workflow: true workflow_file: ~/workflows/hubs/NeuropixelsV2eBeta.bonsai --- diff --git a/articles/toc.yml b/articles/toc.yml index e05ea94..0bed424 100644 --- a/articles/toc.yml +++ b/articles/toc.yml @@ -1,16 +1,16 @@ - name: Getting Started items: - - href: getting-started/getting_started.md - - href: getting-started/what_is_onix.md - - href: getting-started/install_and_download.md - - href: getting-started/bonsai_usage.md - - href: getting-started/node_types.md - - href: getting-started/tips_and_tricks.md - - href: getting-started/property_categories.md - - href: getting-started/initialize_oni_context.md - - href: getting-started/running_a_workflow.md - - href: getting-started/visualizing_data.md - - href: getting-started/next_steps.md + - href: getting-started/getting-started.md + - href: getting-started/what-is-onix.md + - href: getting-started/install-configure-bonsai.md + - href: getting-started/bonsai-usage.md + - href: getting-started/node-types.md + - href: getting-started/tips-tricks.md + - href: getting-started/property-categories.md + - href: getting-started/initialize-oni-context.md + - href: getting-started/start-workflow.md + - href: getting-started/visualizing-data.md + - href: getting-started/next-steps.md - name: Hubs items: @@ -23,8 +23,8 @@ - name: Devices items: - href: devices/bno055.md - - href: devices/bno055_neuropixelsv1e.md - - href: devices/bno055_neuropixelsv2e.md + - href: devices/bno055-neuropixelsv1e.md + - href: devices/bno055-neuropixelsv2e.md - href: devices/breakoutanalogio.md - href: devices/breakoutdigitalio.md - href: devices/electricalstimulator.md diff --git a/images/bonsai-install-Bonsai.StarterPack.webp b/images/bonsai-install-Bonsai.StarterPack.webp new file mode 100644 index 0000000..033ff02 Binary files /dev/null and b/images/bonsai-install-Bonsai.StarterPack.webp differ diff --git a/images/bonsai-install-OpenEphys.Onix1.webp b/images/bonsai-install-OpenEphys.Onix1.webp new file mode 100644 index 0000000..9032130 Binary files /dev/null and b/images/bonsai-install-OpenEphys.Onix1.webp differ diff --git a/images/bonsai-update-none.webp b/images/bonsai-update-none.webp new file mode 100644 index 0000000..5f3ff49 Binary files /dev/null and b/images/bonsai-update-none.webp differ diff --git a/images/bonsai-update.webp b/images/bonsai-update.webp new file mode 100644 index 0000000..413fc10 Binary files /dev/null and b/images/bonsai-update.webp differ diff --git a/img-src/bonsai-install-Bonsai.StarterPack.xcf b/img-src/bonsai-install-Bonsai.StarterPack.xcf new file mode 100644 index 0000000..b48ffbc Binary files /dev/null and b/img-src/bonsai-install-Bonsai.StarterPack.xcf differ diff --git a/img-src/bonsai-install-OpenEphys.Onix1.xcf b/img-src/bonsai-install-OpenEphys.Onix1.xcf new file mode 100644 index 0000000..a5f672e Binary files /dev/null and b/img-src/bonsai-install-OpenEphys.Onix1.xcf differ diff --git a/img-src/bonsai-update.xcf b/img-src/bonsai-update.xcf new file mode 100644 index 0000000..6de40ca Binary files /dev/null and b/img-src/bonsai-update.xcf differ diff --git a/img-src/bonsai-updates-none.xcf b/img-src/bonsai-updates-none.xcf new file mode 100644 index 0000000..b00f30f Binary files /dev/null and b/img-src/bonsai-updates-none.xcf differ diff --git a/template/conceptual.html.primary.tmpl b/template/conceptual.html.primary.tmpl index 921fadb..9e254e7 100644 --- a/template/conceptual.html.primary.tmpl +++ b/template/conceptual.html.primary.tmpl @@ -31,8 +31,8 @@ {{>partials/device.visualize_text}} {{/visualize_text}} -

Refer to Visualizing Data for more information on visualizers and how to download them.

-

Note that data will not be shown until a workflow is running. Check out Running a Workflow to see how to run a workflow.

+

Refer to Visualizing Data for more information on visualizers and how to download them.

+

Note that data will not be shown until a workflow is running. Check out Running a Workflow to see how to run a workflow.

{{/visualize}} {{/isGuide}} diff --git a/workflows/devices/Bno055_NeuropixelsV1e.bonsai b/workflows/devices/Bno055-NeuropixelsV1e.bonsai similarity index 100% rename from workflows/devices/Bno055_NeuropixelsV1e.bonsai rename to workflows/devices/Bno055-NeuropixelsV1e.bonsai diff --git a/workflows/devices/Bno055_NeuropixelsV2e.bonsai b/workflows/devices/Bno055-NeuropixelsV2e.bonsai similarity index 100% rename from workflows/devices/Bno055_NeuropixelsV2e.bonsai rename to workflows/devices/Bno055-NeuropixelsV2e.bonsai