From 173e69a15f60fb088296454bb1c82b921828c687 Mon Sep 17 00:00:00 2001 From: cjsha <36574350+cjsha@users.noreply.github.com> Date: Fri, 17 Jan 2025 13:02:34 -0500 Subject: [PATCH 1/4] Add listening to ephys processing tutorial (#180) * Add listening to ephys processing tutorial --------- Co-authored-by: bparks13 Co-authored-by: Ceci Herbert --- .github/workflows/build.yml | 13 +- .gitignore | 5 +- articles/tutorials/basic-ephys-processing.md | 144 ------------ .../tutorials/ephys-processing-listening.md | 213 +++++++++++++++++ articles/tutorials/toc.yml | 15 +- docfx-utils.ps1 | 2 +- .../convert-units.bonsai | 54 ----- .../basic-ephys-processing/ephys-data.bonsai | 26 --- .../filter-ephys-data.bonsai | 64 ----- .../select-convert-ephys-data.bonsai | 54 ----- .../select-reorder-channels.bonsai | 38 --- .../spike-detection.bonsai | 75 ------ .../ephys-process-listen/audio_listen.bonsai | 220 ++++++++++++++++++ .../ephys-process-listen/audio_process.bonsai | 211 +++++++++++++++++ .../configure.bonsai} | 22 +- .../ephys-process-listen/ephys-data.bonsai | 135 +++++++++++ .../ephys-process-listen.bonsai | 220 ++++++++++++++++++ .../ephys-process-listen/listen-ephys.bonsai | 220 ++++++++++++++++++ .../spike_center-data.bonsai | 152 ++++++++++++ .../spike_detect.bonsai} | 35 ++- .../spike_filter-data.bonsai | 170 ++++++++++++++ .../spike_scale-data.bonsai | 160 +++++++++++++ .../spike_select-channels.bonsai | 144 ++++++++++++ 23 files changed, 1897 insertions(+), 495 deletions(-) delete mode 100644 articles/tutorials/basic-ephys-processing.md create mode 100644 articles/tutorials/ephys-processing-listening.md delete mode 100644 workflows/tutorials/basic-ephys-processing/convert-units.bonsai delete mode 100644 workflows/tutorials/basic-ephys-processing/ephys-data.bonsai delete mode 100644 workflows/tutorials/basic-ephys-processing/filter-ephys-data.bonsai delete mode 100644 workflows/tutorials/basic-ephys-processing/select-convert-ephys-data.bonsai delete mode 100644 workflows/tutorials/basic-ephys-processing/select-reorder-channels.bonsai delete mode 100644 workflows/tutorials/basic-ephys-processing/spike-detection.bonsai create mode 100644 workflows/tutorials/ephys-process-listen/audio_listen.bonsai create mode 100644 workflows/tutorials/ephys-process-listen/audio_process.bonsai rename workflows/tutorials/{basic-ephys-processing/configuration.bonsai => ephys-process-listen/configure.bonsai} (89%) create mode 100644 workflows/tutorials/ephys-process-listen/ephys-data.bonsai create mode 100644 workflows/tutorials/ephys-process-listen/ephys-process-listen.bonsai create mode 100644 workflows/tutorials/ephys-process-listen/listen-ephys.bonsai create mode 100644 workflows/tutorials/ephys-process-listen/spike_center-data.bonsai rename workflows/tutorials/{basic-ephys-processing/spikes.bonsai => ephys-process-listen/spike_detect.bonsai} (88%) create mode 100644 workflows/tutorials/ephys-process-listen/spike_filter-data.bonsai create mode 100644 workflows/tutorials/ephys-process-listen/spike_scale-data.bonsai create mode 100644 workflows/tutorials/ephys-process-listen/spike_select-channels.bonsai diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ef4b1563..87423c23 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -64,13 +64,20 @@ jobs: with: name: _site path: _site - + + - name: Restore lychee cache + uses: actions/cache@v4 + with: + path: .lycheecache + key: cache-lychee-${{ github.sha }} + restore-keys: cache-lychee- + # This checks for missing / broken links in the *.html files after building the website. # We need to run this step here to check that all auto-generated API pages have valid links too. - name: Check HTML Links After Building - uses: lycheeverse/lychee-action@v1.10.0 + uses: lycheeverse/lychee-action@v2 with: - args: --verbose --no-progress --base _site --exclude ^https://github\.com.*merge.* --exclude ^https://github\.com.*apiSpec.* '_site/**/*.html' + args: --verbose --no-progress --base _site --exclude ^https://github\.com.*merge.* --exclude ^https://github\.com.*apiSpec.* --max-retries 0 --max-concurrency 32 --cache --max-cache-age 1d '_site/**/*.html' fail: true deploy: diff --git a/.gitignore b/.gitignore index e597d7da..bcb53207 100644 --- a/.gitignore +++ b/.gitignore @@ -13,4 +13,7 @@ _*/ *.exe *.exe.old *.exe.settings -Packages \ No newline at end of file +Packages + +## Lychee cache +.lycheecache \ No newline at end of file diff --git a/articles/tutorials/basic-ephys-processing.md b/articles/tutorials/basic-ephys-processing.md deleted file mode 100644 index 4f19f66a..00000000 --- a/articles/tutorials/basic-ephys-processing.md +++ /dev/null @@ -1,144 +0,0 @@ ---- -uid: basic-ephys-processing -title: Basic Ephys Data Processing in Bonsai ---- - -This tutorial shows how to use ONIX hardware and the OpenEphys.Onix1 Bonsai package to perform basic online signal -processing on electrophysiology data in Bonsai such as channel selection and reordering, frequency filtering and event -detection (in this example, spike detection using a fixed threshold crossing). - -This type of processing is helpful for visualizing data during acquisition and can be a starting point for more advanced -workflows such as closed-loop experiments. For specialized data visualizations from very dense arrays like Neuropixels -probes, for example, we recommend piping that data to the Open Ephys GUI. - - - - -This tutorial guides you through building the following workflow: - -::: workflow -![/workflows/tutorials/basic-ephys-processing/spikes.bonsai workflow](../../workflows/tutorials/basic-ephys-processing/spikes.bonsai) -::: - -> [!NOTE] -> Although this tutorial uses headstage64 as an example, the process is similar for other ephys headstages. This -> tutorial assumes you are familiar with the [hardware guide](xref:hardware) of the ONIX headstage you intend to use. -> Use this [reference](xref:reference) for which ephys and scaling you need to use for each headstage, and links to relevant -> documentation. - -## Set up and get started in Bonsai - -Follow the [Getting Started](xref:getting-started) guide to set up and get familiarized with Bonsai. In particular: - -- [Download the necessary Bonsai packages](xref:install-configure-bonsai#install-packages-in-bonsai) or -[check for updates](xref:install-configure-bonsai#update-packages-in-bonsai). This tutorial assumes -you're using the latest software. -- Read about [visualizing data](xref:visualize-data) since we recommend checking each step of the tutorial by visualizing the data produced but we don't cover it here. - -## Configure the hardware - -::: workflow -![/workflows/tutorials/basic-ephys-processing/configuration.bonsai workflow](../../workflows/tutorials/basic-ephys-processing/configuration.bonsai) -::: - -Construct a [top-level hardware configuration chain](xref:initialize-onicontext): - -1. Place the [configuration operators](xref:configure) that correspond to the hardware you intend to use between - and . In this example, these are - and . -1. Confirm that the device that streams electrophysiology data is enabled. The Rhd2164 device (an Intan amplifier) on -the headstage64 is the only device used in this tutorial, so you could disable other devices on the headstage and on the -breakout board to improve performance if you wanted to. - -## Stream ephys data into Bonsai - -::: workflow -![/workflows/tutorials/basic-ephys-processing/ephys-data.bonsai workflow](../../workflows/tutorials/basic-ephys-processing/ephys-data.bonsai) -::: - -Place the relevant operators to stream electrophysiology data from your headstage: - -1. Because the device on headstage64 that streams electrophysiology data is the Rhd2164 Intan amplifier, we placed the - node onto the workflow. Use this [reference](xref:reference) to find the ephys data operator -that corresponds to each device. -1. Select the relevant members from the data frames that the data operator produces. In this example, the relevant members are "AmplifierData" and "Clock". To select those members, right-click the `Rhd2164` node, hover over the output option in the context menu, and select it from -the list. -1. Visualize the raw data to confirm that the ephys data operator is streaming data. - -## Select and reorder channels - -::: workflow -![/workflows/tutorials/basic-ephys-processing/select-convert-ephys-data.bonsai workflow](../../workflows/tutorials/basic-ephys-processing/select-convert-ephys-data.bonsai) -::: - -Connect a operator to the electrophysiology data stream and edit its "Channels" property. - -- Remember indexing in Bonsai starts at 0. -- Use commas to list multiple channels and brackets for ranges. -- Reorder channels by listing the channel numbers in the order in which you want to visualize the channels. - -## Convert ephys data to microvolts - -::: workflow -![/workflows/tutorials/basic-ephys-processing/select-convert-ephys-data.bonsai workflow](../../workflows/tutorials/basic-ephys-processing/select-convert-ephys-data.bonsai) -::: - -### Center the signal around zero -Connect a operator to the `SelectChannels` operator and set its properties: -- Edit its "Shift" property to subtract 2^bit depth - 1^ from the signal. Use this [reference](xref:reference) to find -the Shift necessary for each device. In this example, we "Shift" -32768 because the Rhd2164 device outputs unsigned -16-bit data. -- Set the "Depth" property to F32 because this bit depth is required to correctly represent scaled data from all -devices. - -### Scale the signal to microvolts -Connect a second `ConvertScale` operator to the first `ConvertScale` operator and set its properties: -- Edit its "Scale" property to multiply the signal by a scalar in order to get microvolt values. This scalar is -determined by the gain of the amplifier and resolution the ADC contained in the amplifier device. Use this -[reference](xref:reference) to find the "Scale" necessary for each device. In this example, we "Scale" by 0.195 because -the Rhd2164 device on headstage64 has a step size of 0.195 μV/bit -- Keep the "Depth" property at F32. - -Visualize the transformed data to confirm the output of the shifting and scaling operations -worked as expected, i.e. that the signal is centered around zero and that the values make sense in microvolts. - -> [!NOTE] -> Although both the Shift and Scale calculation can be done in one `ConvertScale` operator, the calculations are -> more straightforward using two operators connected in series because the `ConvertScale` operator applies the -> "Shift" offset after applying the "Scale" scalar so if we used a single operator, we would have to scale the Shift -> parameter. - -## Apply a filter - -::: workflow -![/workflows/tutorials/basic-ephys-processing/filter-ephys-data.bonsai workflow](../../workflows/tutorials/basic-ephys-processing/filter-ephys-data.bonsai) -::: - -Connect a `FrequencyFilter` operator to the second `ConvertScale` operator and set its properties. -- Set its "SampleRate" property to 30000. Ephys data in all devices is 30 kHz. -- Set the "FilterType" property to an adequate type. In this example, we use a high pass filter to look at spikes. -- Set the "Cutoff1" and "Cutoff2" properties to an adequate value. In this example, we use 300 Hz as the - lower cutoff frequency. - -Visualize the filtered data. - -> [!TIP] -> If you choose to save data, we recommend you place the `MatrixWriter` operator before filtering and scaling to save raw -> data instead of scaled or filtered data. Filtering with the `FrequencyFilter` operator before recording could remove signals from a bandwidth of interest and converting to microvolts with the second `ConvertScale` operator could increase the size of your data without increasing meaningful information. - -## Detect events - -::: workflow -![/workflows/tutorials/basic-ephys-processing/spike-detection.bonsai workflow](../../workflows/tutorials/basic-ephys-processing/spike-detection.bonsai) -::: - -Based on the amplitude of the signal on the selected channel, set a fixed threshold for detecting spikes. - -Visualize the spike data. - -> [!TIP] -> You can test the spike detection using a pre-recorded data known to have spikes: recreate the -> workflow from this example without the hardware configuration chain in a new workflow and replace the ephys data node (in the case of the headstage64, replace -> the `Rhd2164` node) with a `MatrixReader` that reads from the file containing spiking ephys data in unsigned 16-bit format. \ No newline at end of file diff --git a/articles/tutorials/ephys-processing-listening.md b/articles/tutorials/ephys-processing-listening.md new file mode 100644 index 00000000..e38a5fee --- /dev/null +++ b/articles/tutorials/ephys-processing-listening.md @@ -0,0 +1,213 @@ +--- +uid: ephys-process-listen +title: Process and Listen to Ephys Data +--- + +This tutorial shows you how to perform basic online signal processing of electrophysiology data in +Bonsai such as channel selection/reordering, frequency filtering, and fixed-threshold spike +detection as well as how to listen to ephys data using ONIX hardware and the OpenEphys.Onix1 Bonsai +package. + +> [!NOTE] +> This tutorial serves primarily as an introduction to basic operations for processing electrophysiology data in Bonsai. These operations can also be performed in the Open Ephys GUI which provides advanced visualizations and built-in processing modules. + + + + + +::: workflow +![/workflows/tutorials/ephys-process-listen/ephys-process-listen.bonsai workflow](../../workflows/tutorials/ephys-process-listen/ephys-process-listen.bonsai) +::: + +> [!TIP] +> Although this tutorial uses headstage 64 as an example, the process is similar for other ephys +> headstages. This tutorial assumes you are familiar with the [guide](xref:hardware) corresponding +> to the headstage you intend to use. This [reference](xref:reference) provides information about +> the and offset/scalar values as well as links to other documentation that pertain +> to your particular headstage. + +## Get Started in Bonsai + +Follow the [Getting Started](xref:getting-started) guide to set up and familiarize yourself with Bonsai. In particular: + +- [Download the necessary Bonsai packages](xref:install-configure-bonsai#install-packages-in-bonsai) +or [check for updates](xref:install-configure-bonsai#update-packages-in-bonsai) if they're already +installed. This tutorial assumes you're using the latest packages. +- Read about [visualizing data](xref:visualize-data). We recommend verifying each step of the +tutorial by visualizing the data produced. + +## Configure the Hardware + +Construct a [top-level hardware configuration chain](xref:initialize-onicontext): + +::: workflow +![/workflows/tutorials/ephys-process-listen/configure.bonsai workflow](../../workflows/tutorials/ephys-process-listen/configure.bonsai) +::: + +1. Place the [configuration operators](xref:configure) that corresponds to the hardware you intend + to use between and . + In this example, these are and + . +1. Confirm that the device that streams electrophysiology data is enabled. The + [Rhd2164](https://intantech.com/products_RHD2000.html) device (an Intan ephys acquisition + acquisition chip) on the headstage 64 is the only device used in this tutorial, so you can + disable other devices on the headstage and on the breakout board. + +## Stream Ephys Data into Bonsai + +Place the relevant operators to stream electrophysiology data from your headstage: + +::: workflow +![/workflows/tutorials/ephys-process-listen/ephys-data.bonsai workflow](../../workflows/tutorials/ephys-process-listen/ephys-data.bonsai) +::: + +1. We placed the place into the workflow because the device on + headstage 64 that streams electrophysiology data is the Rhd2164 Intan amplifier. +1. Select the relevant member from the data frames that `Rhd2164Data` produces. In this example, the + relevant member is AmplifierData. To do this, right-click `Rhd2164Data`, hover over the + output option in the context menu, and select "AmplifierData" from the list. + +Visualize the raw data to confirm that the ephys data operator is streaming data. + +## Detect Spikes + +### Select and reorder channels + +Connect a operator to the electrophysiology data stream and edit its "Channels" property: + +::: workflow +![/workflows/tutorials/ephys-process-listen/spike_select-channels.bonsai workflow](../../workflows/tutorials/ephys-process-listen/spike_select-channels.bonsai) +::: + +- Remember indexing starts at 0. +- Reorder channels by listing the channel numbers in the order in which you want to visualize the + channels. + + +### Center the signal around zero + +Connect a operator to the `SelectChannels` operator and set its properties: + +::: workflow +![/workflows/tutorials/ephys-process-listen/spike_center-data.bonsai workflow](../../workflows/tutorials/ephys-process-listen/spike_center-data.bonsai) +::: + +- Edit its Shift property to subtract 2^bit depth - 1^ from the signal. In this example, we shift + -32768 because the Rhd2164 device outputs unsigned 16-bit data. Use this [reference](xref:reference) to find the equivalent value for your hardware. +- Set the Depth property to S16 or F32. A sufficiently large data type is required to represent + ephys data without overflow. + +### Scale the signal to microvolts + +Connect a second `ConvertScale` to the first `ConvertScale` and set its properties: + +::: workflow +![/workflows/tutorials/ephys-process-listen/spike_scale-data.bonsai workflow](../../workflows/tutorials/ephys-process-listen/spike_scale-data.bonsai) +::: + +- Edit its Scale property to multiply the signal by a scalar in order to get microvolt values. This + scalar is determined by the gain of the amplifier and resolution the ADC contained in the bioacquisition + device. In this example, we scale by 0.195 because the Rhd2164 device on headstage64 has a step size + of 0.195 μV/bit. Use this [reference](xref:reference) to find the equivalent value for your hardware. +- Set the Depth property at F32 which is required to represent decimal values. + +Visualize the transformed data to confirm the output of the shifting and scaling operations are +performed as expected, i.e. that the signal is centered around zero and that the values make sense +in microvolts. + +> [!NOTE] +> Although both the shift and scale computations can be done with a single `ConvertScale`, the +> calculation is more straightforward using two operators connected in series because `ConvertScale` +> applies the "shift" transformation after applying the "scale" transformation. If we used a single +> operator, we would have to pre-scale the Shift property. + +### Apply a filter + +Connect a `FrequencyFilter` operator to the second `ConvertScale` operator and set its properties: + +::: workflow +![/workflows/tutorials/ephys-process-listen/spike_filter-data.bonsai workflow](../../workflows/tutorials/ephys-process-listen/spike_filter-data.bonsai) +::: + +- Set its SampleRate property to 30000. Ephys data in all devices is 30 kHz. +- Set the FilterType property to an adequate type. In this example, we use a band pass filter to + look at spikes and remove slowly changing signals. +- Set the Cutoff1 and Cutoff2 properties to adequate values. + +Visualize the filtered data to confirm that it matches your expectations. + +> [!TIP] +> If you choose to save data, we recommend you place the `MatrixWriter` operator before filtering +> and scaling to save raw data instead of scaled or filtered data. Converting to microvolts with the +> second `ConvertScale` operator increases the size of your data (because it's converted to F32 from +> S16) without increasing meaningful information. Filtering with the `FrequencyFilter` operator +> before recording removes signal in irrecoverable ways. It's preferable to either save both or apply +> another filter when loading and processing the data. + +### Detect spikes with fixed threshold + +::: workflow +![/workflows/tutorials/ephys-process-listen/spike_detect.bonsai workflow](../../workflows/tutorials/ephys-process-listen/spike_detect.bonsai) +::: + +Based on the amplitude of the signal on the selected channel, set a fixed threshold for detecting +spikes. + +Visualize the spike data. + +## Listen to Ephys + +The output of `AmplifierData` can be directed into two separate signal processing streams. In other +words, it is possible for two downstream operators to receive the same sequence of +`AmplifierDataFrames`. This is helpful for creating two distinct disparate processes for the same +data stream, one for visualizing spikes in several channels as we did above and one for listening to a single channel as follows. + +### Select a channel and process the signal for audio + +::: workflow +![/workflows/tutorials/ephys-process-listen/audio_process.bonsai workflow](../../workflows/tutorials/ephys-process-listen/audio_process.bonsai) +::: + +The same basic steps as the [Spike Detection](xref:ephys-process-listen#detect-spikes) section are performed. +However, the property settings are critically different. + +- Select a single channel for listening instead of multiple channels for detecting spikes. +- Use the second `ConvertScale` to scale the signal by a value between 0 and 1 to control the volume + of the audio signal instead of scaling by 0.195 to convert to microvolts. This `ConvertScale` + effectively serves as a volume knob. + +Visualize the data and compare it at various points in the processing pipeline to confirm it matches +your expectations. + +### Play ephys data as audio + +::: workflow +![/workflows/tutorials/ephys-process-listen/ephys-process-listen.bonsai workflow](../../workflows/tutorials/ephys-process-listen/ephys-process-listen.bonsai) +::: + +Connect an `AudioPlayback` operator to `FrequencyFilter` and set its SampleRate property to 30000. + +Providing data to `AudioPlayback` that is outside of the bounds of a signed 16 bit integer +(-32,768 to +32,767) introduces clipping distortion into the audio signal, so it is recommended to +maintain a Scale property value of less than 1 for the volume knob `ConvertScale`. Maximize other +volume settings on your PC before exceeding 1. + + \ No newline at end of file diff --git a/articles/tutorials/toc.yml b/articles/tutorials/toc.yml index a9dd3fc2..10e96d31 100644 --- a/articles/tutorials/toc.yml +++ b/articles/tutorials/toc.yml @@ -1,4 +1,13 @@ - href: index.md - items: [ - href: basic-ephys-processing.md - ] + items: + - href: ephys-processing-listening.md + # - href: open-ephys-socket.md + # - href: buffers-memory-usage.md + # - href: bno-calibration.md + # - href: dynamic-properties.md + # - href: custom-operator.md + # - href: integrate-harp.md + # - href: behavioral-experiment.md + # - href: create-gui.md + # - href: custom-operator.md + # - href: low-latency-closed-loop.md \ No newline at end of file diff --git a/docfx-utils.ps1 b/docfx-utils.ps1 index 53f875fb..3e848e6c 100644 --- a/docfx-utils.ps1 +++ b/docfx-utils.ps1 @@ -22,7 +22,7 @@ function lychee($lycheePath) { Write-Output "`nRunning lychee..." Write-Output "------------------------------------------`n" - Invoke-Expression "& `"$lycheePath`" --no-progress --base _site --exclude ^https://github\.com.*merge.* --exclude ^https://github\.com.*apiSpec.* --exclude ^https://github\.com/open-ephys/onix1-bonsai-docs/blob/.*/#L1 '_site/**/*.html'" + Invoke-Expression "& `"$lycheePath`" --no-progress --base _site --exclude ^https://github\.com.*merge.* --exclude ^https://github\.com.*apiSpec.* --exclude ^https://github\.com/open-ephys/onix1-bonsai-docs/blob/.*/#L1 '_site/**/*.html' --max-retries 0 --max-concurrency 32 --cache --max-cache-age 1d" Write-Output "`n" } diff --git a/workflows/tutorials/basic-ephys-processing/convert-units.bonsai b/workflows/tutorials/basic-ephys-processing/convert-units.bonsai deleted file mode 100644 index 98f8d0c0..00000000 --- a/workflows/tutorials/basic-ephys-processing/convert-units.bonsai +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - Headstage64/Rhd2164 - 30 - - - - Clock - - - AmplifierData - - - - - 0 - 1 - 2 - 3 - - - - - - F32 - 1 - -32768 - - - - - F32 - 0.195 - 0 - - - - - - - - - - - - \ No newline at end of file diff --git a/workflows/tutorials/basic-ephys-processing/ephys-data.bonsai b/workflows/tutorials/basic-ephys-processing/ephys-data.bonsai deleted file mode 100644 index bb261253..00000000 --- a/workflows/tutorials/basic-ephys-processing/ephys-data.bonsai +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - Headstage64/Rhd2164 - 30 - - - - Clock - - - AmplifierData - - - - - - - - \ No newline at end of file diff --git a/workflows/tutorials/basic-ephys-processing/filter-ephys-data.bonsai b/workflows/tutorials/basic-ephys-processing/filter-ephys-data.bonsai deleted file mode 100644 index e1b14c88..00000000 --- a/workflows/tutorials/basic-ephys-processing/filter-ephys-data.bonsai +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - Headstage64/Rhd2164 - 30 - - - - Clock - - - AmplifierData - - - - - 0 - 1 - 2 - 3 - - - - - - F32 - 1 - -32768 - - - - - F32 - 0.195 - 0 - - - - - 30000 - 300 - 0 - 60 - HighPass - - - - - - - - - - - - - \ No newline at end of file diff --git a/workflows/tutorials/basic-ephys-processing/select-convert-ephys-data.bonsai b/workflows/tutorials/basic-ephys-processing/select-convert-ephys-data.bonsai deleted file mode 100644 index 98f8d0c0..00000000 --- a/workflows/tutorials/basic-ephys-processing/select-convert-ephys-data.bonsai +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - Headstage64/Rhd2164 - 30 - - - - Clock - - - AmplifierData - - - - - 0 - 1 - 2 - 3 - - - - - - F32 - 1 - -32768 - - - - - F32 - 0.195 - 0 - - - - - - - - - - - - \ No newline at end of file diff --git a/workflows/tutorials/basic-ephys-processing/select-reorder-channels.bonsai b/workflows/tutorials/basic-ephys-processing/select-reorder-channels.bonsai deleted file mode 100644 index ab5b4241..00000000 --- a/workflows/tutorials/basic-ephys-processing/select-reorder-channels.bonsai +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - Headstage64/Rhd2164 - 30 - - - - Clock - - - AmplifierData - - - - - 0 - 1 - 2 - 3 - - - - - - - - - - - \ No newline at end of file diff --git a/workflows/tutorials/basic-ephys-processing/spike-detection.bonsai b/workflows/tutorials/basic-ephys-processing/spike-detection.bonsai deleted file mode 100644 index a9a23222..00000000 --- a/workflows/tutorials/basic-ephys-processing/spike-detection.bonsai +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - Headstage64/Rhd2164 - 30 - - - - Clock - - - AmplifierData - - - - - 0 - 1 - 2 - 3 - - - - - - F32 - 1 - -32768 - - - - - F32 - 0.195 - 0 - - - - - 30000 - 300 - 0 - 60 - HighPass - - - - - 0 - 33 - - -50 - - AlignPeaks - - - - - - - - - - - - - - \ No newline at end of file diff --git a/workflows/tutorials/ephys-process-listen/audio_listen.bonsai b/workflows/tutorials/ephys-process-listen/audio_listen.bonsai new file mode 100644 index 00000000..6301875d --- /dev/null +++ b/workflows/tutorials/ephys-process-listen/audio_listen.bonsai @@ -0,0 +1,220 @@ + + + + + + + riffa + 0 + + + + + BreakoutBoard + + BreakoutBoard/Heartbeat + 0 + true + 10 + + + BreakoutBoard/AnalogIO + 6 + false + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + Input + Input + Input + Input + Input + Input + Input + Input + Input + Input + Input + Input + + + BreakoutBoard/DigitalIO + 7 + false + + + BreakoutBoard/OutputClock + 5 + false + 1000000 + 50 + 0 + + + BreakoutBoard/HarpSyncInput + 12 + false + Breakout + + + BreakoutBoard/MemoryMonitor + 10 + false + 10 + + + + + + Headstage64 + + Headstage64/Rhd2164 + 256 + true + Dsp146mHz + Low100mHz + High10000Hz + + + Headstage64/Bno055 + 257 + false + + + Headstage64/TS4231V1 + 258 + false + + + Headstage64/Headstage64ElectricalStimulator + 259 + + + Headstage64/Headstage64OpticalStimulator + 260 + + PortA + + + + + + 4096 + 2048 + + + + + Headstage64/Rhd2164 + 30 + + + + AmplifierData + + + + + 0 + + + + + + S16 + 1 + -32768 + + + + + F32 + 0.195 + 0 + + + + + 30000 + 0 + 0 + 60 + BandPass + + + + + 0 + 33 + + -50 + + AlignPeaks + + + + + + + + S16 + 1 + -32768 + + + + + S16 + 0.1 + 0 + + + + + 30000 + 0 + 0 + 60 + BandPass + + + + + Generic Software on Speakers (Realtek(R) Audio) + 30000 + Playing + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/tutorials/ephys-process-listen/audio_process.bonsai b/workflows/tutorials/ephys-process-listen/audio_process.bonsai new file mode 100644 index 00000000..4f1e0aa0 --- /dev/null +++ b/workflows/tutorials/ephys-process-listen/audio_process.bonsai @@ -0,0 +1,211 @@ + + + + + + + riffa + 0 + + + + + BreakoutBoard + + BreakoutBoard/Heartbeat + 0 + true + 10 + + + BreakoutBoard/AnalogIO + 6 + false + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + Input + Input + Input + Input + Input + Input + Input + Input + Input + Input + Input + Input + + + BreakoutBoard/DigitalIO + 7 + false + + + BreakoutBoard/OutputClock + 5 + false + 1000000 + 50 + 0 + + + BreakoutBoard/HarpSyncInput + 12 + false + Breakout + + + BreakoutBoard/MemoryMonitor + 10 + false + 10 + + + + + + Headstage64 + + Headstage64/Rhd2164 + 256 + true + Dsp146mHz + Low100mHz + High10000Hz + + + Headstage64/Bno055 + 257 + false + + + Headstage64/TS4231V1 + 258 + false + + + Headstage64/Headstage64ElectricalStimulator + 259 + + + Headstage64/Headstage64OpticalStimulator + 260 + + PortA + + + + + + 4096 + 2048 + + + + + Headstage64/Rhd2164 + 30 + + + + AmplifierData + + + + + 0 + + + + + + S16 + 1 + -32768 + + + + + F32 + 0.195 + 0 + + + + + 30000 + 0 + 0 + 60 + BandPass + + + + + 0 + 33 + + -50 + + AlignPeaks + + + + + + + + S16 + 1 + -32768 + + + + + S16 + 0.1 + 0 + + + + + 30000 + 0 + 0 + 60 + BandPass + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/tutorials/basic-ephys-processing/configuration.bonsai b/workflows/tutorials/ephys-process-listen/configure.bonsai similarity index 89% rename from workflows/tutorials/basic-ephys-processing/configuration.bonsai rename to workflows/tutorials/ephys-process-listen/configure.bonsai index 642d5eb4..f37cb586 100644 --- a/workflows/tutorials/basic-ephys-processing/configuration.bonsai +++ b/workflows/tutorials/ephys-process-listen/configure.bonsai @@ -23,7 +23,7 @@ BreakoutBoard/AnalogIO 6 - true + false TenVolts TenVolts TenVolts @@ -52,7 +52,7 @@ BreakoutBoard/DigitalIO 7 - true + false BreakoutBoard/OutputClock @@ -65,7 +65,7 @@ BreakoutBoard/HarpSyncInput 12 - true + false Breakout @@ -81,29 +81,29 @@ Headstage64 Headstage64/Rhd2164 - 512 + 256 true Dsp146mHz Low100mHz - High20000Hz + High10000Hz Headstage64/Bno055 - 513 - true + 257 + false Headstage64/TS4231V1 - 514 - true + 258 + false Headstage64/Headstage64ElectricalStimulator - 515 + 259 Headstage64/Headstage64OpticalStimulator - 516 + 260 PortA diff --git a/workflows/tutorials/ephys-process-listen/ephys-data.bonsai b/workflows/tutorials/ephys-process-listen/ephys-data.bonsai new file mode 100644 index 00000000..27c594b5 --- /dev/null +++ b/workflows/tutorials/ephys-process-listen/ephys-data.bonsai @@ -0,0 +1,135 @@ + + + + + + + riffa + 0 + + + + + BreakoutBoard + + BreakoutBoard/Heartbeat + 0 + true + 10 + + + BreakoutBoard/AnalogIO + 6 + false + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + Input + Input + Input + Input + Input + Input + Input + Input + Input + Input + Input + Input + + + BreakoutBoard/DigitalIO + 7 + false + + + BreakoutBoard/OutputClock + 5 + false + 1000000 + 50 + 0 + + + BreakoutBoard/HarpSyncInput + 12 + false + Breakout + + + BreakoutBoard/MemoryMonitor + 10 + false + 10 + + + + + + Headstage64 + + Headstage64/Rhd2164 + 256 + true + Dsp146mHz + Low100mHz + High10000Hz + + + Headstage64/Bno055 + 257 + false + + + Headstage64/TS4231V1 + 258 + false + + + Headstage64/Headstage64ElectricalStimulator + 259 + + + Headstage64/Headstage64OpticalStimulator + 260 + + PortA + + + + + + 4096 + 2048 + + + + + Headstage64/Rhd2164 + 30 + + + + AmplifierData + + + + + + + + + + \ No newline at end of file diff --git a/workflows/tutorials/ephys-process-listen/ephys-process-listen.bonsai b/workflows/tutorials/ephys-process-listen/ephys-process-listen.bonsai new file mode 100644 index 00000000..6301875d --- /dev/null +++ b/workflows/tutorials/ephys-process-listen/ephys-process-listen.bonsai @@ -0,0 +1,220 @@ + + + + + + + riffa + 0 + + + + + BreakoutBoard + + BreakoutBoard/Heartbeat + 0 + true + 10 + + + BreakoutBoard/AnalogIO + 6 + false + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + Input + Input + Input + Input + Input + Input + Input + Input + Input + Input + Input + Input + + + BreakoutBoard/DigitalIO + 7 + false + + + BreakoutBoard/OutputClock + 5 + false + 1000000 + 50 + 0 + + + BreakoutBoard/HarpSyncInput + 12 + false + Breakout + + + BreakoutBoard/MemoryMonitor + 10 + false + 10 + + + + + + Headstage64 + + Headstage64/Rhd2164 + 256 + true + Dsp146mHz + Low100mHz + High10000Hz + + + Headstage64/Bno055 + 257 + false + + + Headstage64/TS4231V1 + 258 + false + + + Headstage64/Headstage64ElectricalStimulator + 259 + + + Headstage64/Headstage64OpticalStimulator + 260 + + PortA + + + + + + 4096 + 2048 + + + + + Headstage64/Rhd2164 + 30 + + + + AmplifierData + + + + + 0 + + + + + + S16 + 1 + -32768 + + + + + F32 + 0.195 + 0 + + + + + 30000 + 0 + 0 + 60 + BandPass + + + + + 0 + 33 + + -50 + + AlignPeaks + + + + + + + + S16 + 1 + -32768 + + + + + S16 + 0.1 + 0 + + + + + 30000 + 0 + 0 + 60 + BandPass + + + + + Generic Software on Speakers (Realtek(R) Audio) + 30000 + Playing + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/tutorials/ephys-process-listen/listen-ephys.bonsai b/workflows/tutorials/ephys-process-listen/listen-ephys.bonsai new file mode 100644 index 00000000..4290d3f6 --- /dev/null +++ b/workflows/tutorials/ephys-process-listen/listen-ephys.bonsai @@ -0,0 +1,220 @@ + + + + + + + riffa + 0 + + + + + BreakoutBoard + + BreakoutBoard/Heartbeat + 0 + true + 10 + + + BreakoutBoard/AnalogIO + 6 + false + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + Input + Input + Input + Input + Input + Input + Input + Input + Input + Input + Input + Input + + + BreakoutBoard/DigitalIO + 7 + false + + + BreakoutBoard/OutputClock + 5 + false + 1000000 + 50 + 0 + + + BreakoutBoard/HarpSyncInput + 12 + false + Breakout + + + BreakoutBoard/MemoryMonitor + 10 + false + 10 + + + + + + Headstage64 + + Headstage64/Rhd2164 + 256 + true + Dsp146mHz + Low100mHz + High10000Hz + + + Headstage64/Bno055 + 257 + false + + + Headstage64/TS4231V1 + 258 + false + + + Headstage64/Headstage64ElectricalStimulator + 259 + + + Headstage64/Headstage64OpticalStimulator + 260 + + PortA + + + + + + 2048 + 2048 + + + + + Headstage64/Rhd2164 + 30 + + + + AmplifierData + + + + + 0 + + + + + + S16 + 1 + -32768 + + + + + F32 + 0.195 + 0 + + + + + 30000 + 0 + 0 + 60 + BandPass + + + + + 0 + 33 + + -50 + + AlignPeaks + + + + + + + + S16 + 1 + -32768 + + + + + S16 + 0.1 + 0 + + + + + 30000 + 0 + 0 + 60 + BandPass + + + + + Generic Software on Speakers (Realtek(R) Audio) + 30000 + Playing + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/tutorials/ephys-process-listen/spike_center-data.bonsai b/workflows/tutorials/ephys-process-listen/spike_center-data.bonsai new file mode 100644 index 00000000..216e1a6f --- /dev/null +++ b/workflows/tutorials/ephys-process-listen/spike_center-data.bonsai @@ -0,0 +1,152 @@ + + + + + + + riffa + 0 + + + + + BreakoutBoard + + BreakoutBoard/Heartbeat + 0 + true + 10 + + + BreakoutBoard/AnalogIO + 6 + false + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + Input + Input + Input + Input + Input + Input + Input + Input + Input + Input + Input + Input + + + BreakoutBoard/DigitalIO + 7 + false + + + BreakoutBoard/OutputClock + 5 + false + 1000000 + 50 + 0 + + + BreakoutBoard/HarpSyncInput + 12 + false + Breakout + + + BreakoutBoard/MemoryMonitor + 10 + false + 10 + + + + + + Headstage64 + + Headstage64/Rhd2164 + 256 + true + Dsp146mHz + Low100mHz + High10000Hz + + + Headstage64/Bno055 + 257 + false + + + Headstage64/TS4231V1 + 258 + false + + + Headstage64/Headstage64ElectricalStimulator + 259 + + + Headstage64/Headstage64OpticalStimulator + 260 + + PortA + + + + + + 4096 + 2048 + + + + + Headstage64/Rhd2164 + 30 + + + + AmplifierData + + + + + 0 + + + + + + S16 + 1 + -32768 + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/tutorials/basic-ephys-processing/spikes.bonsai b/workflows/tutorials/ephys-process-listen/spike_detect.bonsai similarity index 88% rename from workflows/tutorials/basic-ephys-processing/spikes.bonsai rename to workflows/tutorials/ephys-process-listen/spike_detect.bonsai index 34795fb9..151b2722 100644 --- a/workflows/tutorials/basic-ephys-processing/spikes.bonsai +++ b/workflows/tutorials/ephys-process-listen/spike_detect.bonsai @@ -24,7 +24,7 @@ BreakoutBoard/AnalogIO 6 - true + false TenVolts TenVolts TenVolts @@ -53,7 +53,7 @@ BreakoutBoard/DigitalIO 7 - true + false BreakoutBoard/OutputClock @@ -66,7 +66,7 @@ BreakoutBoard/HarpSyncInput 12 - true + false Breakout @@ -82,29 +82,29 @@ Headstage64 Headstage64/Rhd2164 - 512 + 256 true Dsp146mHz Low100mHz - High20000Hz + High10000Hz Headstage64/Bno055 - 513 - true + 257 + false Headstage64/TS4231V1 - 514 - true + 258 + false Headstage64/Headstage64ElectricalStimulator - 515 + 259 Headstage64/Headstage64OpticalStimulator - 516 + 260 PortA @@ -122,9 +122,6 @@ 30 - - Clock - AmplifierData @@ -132,9 +129,6 @@ 0 - 1 - 2 - 3 @@ -155,10 +149,10 @@ 30000 - 300 + 0 0 60 - HighPass + BandPass @@ -177,12 +171,11 @@ - + - \ No newline at end of file diff --git a/workflows/tutorials/ephys-process-listen/spike_filter-data.bonsai b/workflows/tutorials/ephys-process-listen/spike_filter-data.bonsai new file mode 100644 index 00000000..6ad8ff06 --- /dev/null +++ b/workflows/tutorials/ephys-process-listen/spike_filter-data.bonsai @@ -0,0 +1,170 @@ + + + + + + + riffa + 0 + + + + + BreakoutBoard + + BreakoutBoard/Heartbeat + 0 + true + 10 + + + BreakoutBoard/AnalogIO + 6 + false + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + Input + Input + Input + Input + Input + Input + Input + Input + Input + Input + Input + Input + + + BreakoutBoard/DigitalIO + 7 + false + + + BreakoutBoard/OutputClock + 5 + false + 1000000 + 50 + 0 + + + BreakoutBoard/HarpSyncInput + 12 + false + Breakout + + + BreakoutBoard/MemoryMonitor + 10 + false + 10 + + + + + + Headstage64 + + Headstage64/Rhd2164 + 256 + true + Dsp146mHz + Low100mHz + High10000Hz + + + Headstage64/Bno055 + 257 + false + + + Headstage64/TS4231V1 + 258 + false + + + Headstage64/Headstage64ElectricalStimulator + 259 + + + Headstage64/Headstage64OpticalStimulator + 260 + + PortA + + + + + + 4096 + 2048 + + + + + Headstage64/Rhd2164 + 30 + + + + AmplifierData + + + + + 0 + + + + + + S16 + 1 + -32768 + + + + + F32 + 0.195 + 0 + + + + + 30000 + 0 + 0 + 60 + BandPass + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/tutorials/ephys-process-listen/spike_scale-data.bonsai b/workflows/tutorials/ephys-process-listen/spike_scale-data.bonsai new file mode 100644 index 00000000..58c2f3a6 --- /dev/null +++ b/workflows/tutorials/ephys-process-listen/spike_scale-data.bonsai @@ -0,0 +1,160 @@ + + + + + + + riffa + 0 + + + + + BreakoutBoard + + BreakoutBoard/Heartbeat + 0 + true + 10 + + + BreakoutBoard/AnalogIO + 6 + false + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + Input + Input + Input + Input + Input + Input + Input + Input + Input + Input + Input + Input + + + BreakoutBoard/DigitalIO + 7 + false + + + BreakoutBoard/OutputClock + 5 + false + 1000000 + 50 + 0 + + + BreakoutBoard/HarpSyncInput + 12 + false + Breakout + + + BreakoutBoard/MemoryMonitor + 10 + false + 10 + + + + + + Headstage64 + + Headstage64/Rhd2164 + 256 + true + Dsp146mHz + Low100mHz + High10000Hz + + + Headstage64/Bno055 + 257 + false + + + Headstage64/TS4231V1 + 258 + false + + + Headstage64/Headstage64ElectricalStimulator + 259 + + + Headstage64/Headstage64OpticalStimulator + 260 + + PortA + + + + + + 4096 + 2048 + + + + + Headstage64/Rhd2164 + 30 + + + + AmplifierData + + + + + 0 + + + + + + S16 + 1 + -32768 + + + + + F32 + 0.195 + 0 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/workflows/tutorials/ephys-process-listen/spike_select-channels.bonsai b/workflows/tutorials/ephys-process-listen/spike_select-channels.bonsai new file mode 100644 index 00000000..bdc2a3f4 --- /dev/null +++ b/workflows/tutorials/ephys-process-listen/spike_select-channels.bonsai @@ -0,0 +1,144 @@ + + + + + + + riffa + 0 + + + + + BreakoutBoard + + BreakoutBoard/Heartbeat + 0 + true + 10 + + + BreakoutBoard/AnalogIO + 6 + false + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + TenVolts + Input + Input + Input + Input + Input + Input + Input + Input + Input + Input + Input + Input + + + BreakoutBoard/DigitalIO + 7 + false + + + BreakoutBoard/OutputClock + 5 + false + 1000000 + 50 + 0 + + + BreakoutBoard/HarpSyncInput + 12 + false + Breakout + + + BreakoutBoard/MemoryMonitor + 10 + false + 10 + + + + + + Headstage64 + + Headstage64/Rhd2164 + 256 + true + Dsp146mHz + Low100mHz + High10000Hz + + + Headstage64/Bno055 + 257 + false + + + Headstage64/TS4231V1 + 258 + false + + + Headstage64/Headstage64ElectricalStimulator + 259 + + + Headstage64/Headstage64OpticalStimulator + 260 + + PortA + + + + + + 4096 + 2048 + + + + + Headstage64/Rhd2164 + 30 + + + + AmplifierData + + + + + 0 + + + + + + + + + + + + + \ No newline at end of file From 92d9e6ef4bea65b2f5f717495fdcce9f809c69be Mon Sep 17 00:00:00 2001 From: Brandon Parks Date: Tue, 21 Jan 2025 17:57:01 -0500 Subject: [PATCH 2/4] Remove concurrency restriction (#191) --- .github/workflows/build.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 87423c23..a9f9afa2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,10 +7,6 @@ on: pull_request: branches: [ main ] -concurrency: - group: docs - cancel-in-progress: true - jobs: build: runs-on: windows-latest From 3e3acf5f304f75c1035b8de4d41370160874004d Mon Sep 17 00:00:00 2001 From: Ceci Herbert Date: Tue, 21 Jan 2025 23:39:04 +0000 Subject: [PATCH 3/4] Update README.md (#185) * Update README.md ran into some issues when installing and made updates for clarity * Update lychee command --- README.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 34642e44..19f06bdb 100644 --- a/README.md +++ b/README.md @@ -20,33 +20,31 @@ Download and install [git](https://git-scm.com/downloads) if it is not installed > It often appears to hang because it does not output any status information. > Usually, the command will eventually return. -1. Clone the documentation repository: +1. Using Windows PowerShell or a Git Bash terminal, clone the documentation repository: ``` console - git clone https://github.com/open-ephys/onix1-bonsai-docs - cd onix1-bonsai-docs + git clone https://github.com/open-ephys/bonsai-onix1-docs + cd bonsai-onix1-docs ``` 1. Pull in the latest files from the submodules according to the commit that the submodules point to: ``` console git submodule update --recursive --init ``` In particular, the source code is available in this repo as a submodule. This will update the source code to the latest commit on main. -1. Configure the docfx version and restore docfx companion tools such as [DocLinkChecker](https://github.com/Ellerbach/docfx-companion-tools/tree/main/src/DocLinkChecker). - ``` console - dotnet tool restore --configfile ./.bonsai/NuGet.config - ``` -1. To make the `docfx` command available after restoring the config file from the previous step, run: +1. Configure the docfx version and restore docfx companion tools such as [DocLinkChecker](https://github.com/Ellerbach/docfx-companion-tools/tree/main/src/DocLinkChecker). You need to be in the same root folder where you cloned the repository for this to work. Run: ``` console dotnet tool restore ``` + to make the `docfx` command available. + If the above command yields the following error: ``` console It was not possible to find any installed .NET Core SDKs ``` even after installing .NET as described previously in the readme, refer to [this comment](https://github.com/dotnet/core/issues/6095#issuecomment-809006602) for a potential fix. If you follow the instructions described in the comment, make sure you proceed in a terminal or command prompt opened after changing the environment variables. -1. Set up a local Bonsai environment for automatically exporting SVGs, run: +1. Set up a local Bonsai environment for automatically exporting SVGs, run Setup.ps1 in PowerShell (or, if not using PowerShell, run Setup.Cmd): ``` console ./.bonsai/Setup.ps1 - ``` + ``` If the above command yields the following error: ``` console ./Setup.ps1 : File C:\Users\User\...\bonsai-onix1-docs\Setup.ps1 cannot be loaded because running scripts is @@ -66,6 +64,8 @@ To build the docs and serve locally, run in PowerShell: ./build.ps1 --serve ``` +If this doesn't run, see comment in section above. + If SVGs are already exported and do not need to be updated, they don't need to be re-exported. In that case, to build the docs and serve locally more quickly, run: ``` console @@ -96,7 +96,7 @@ The above set of commands can also be run using the `docfx-utils.ps1` Powershell To run the next command, install [Lychee](https://github.com/lycheeverse/lychee?tab=readme-ov-file) by following [these instructions](https://github.com/lycheeverse/lychee?tab=readme-ov-file#installation). If you are use Windows and download a Lychee executable, amend the below command according to the location and version of your Lychee executable, and run it. ``` console -/lychee-v-windows-x86_64.exe --verbose --no-progress --base _site --exclude ^https://github\.com.*merge.* --exclude ^https://github\.com.*apiSpec.* '_site/**/*.html' +/lychee-v-windows-x86_64.exe --no-progress --base _site --exclude ^https://github\.com.*merge.* --exclude ^https://github\.com.*apiSpec.* --exclude ^https://github\.com/open-ephys/onix1-bonsai-docs/blob/.*/#L1 '_site/**/*.html' --max-retries 0 --max-concurrency 32 --cache --max-cache-age 1d ``` If you use a different operating systems and a different methods of installation, the above command might require additional amendments. @@ -187,4 +187,4 @@ If there are discrepancies between local and remote builds: ## Style Guide -Refer to the [Style Guide](style-guide.md). \ No newline at end of file +Refer to the [Style Guide](style-guide.md). From 1fb35fb33b12a0b4f9e5d0fb4a969d30b0a4b6c2 Mon Sep 17 00:00:00 2001 From: cjsha <36574350+cjsha@users.noreply.github.com> Date: Tue, 21 Jan 2025 18:39:49 -0500 Subject: [PATCH 4/4] Update docfx tools (#184) Co-authored-by: bparks13 --- docfx-tools | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docfx-tools b/docfx-tools index 14246dc3..0ab0799f 160000 --- a/docfx-tools +++ b/docfx-tools @@ -1 +1 @@ -Subproject commit 14246dc307b918b68aa03232539a8f57318a4623 +Subproject commit 0ab0799f0373587b565ae0b94c864b962216e1c2