diff --git a/docs/source/conf.py b/docs/source/conf.py index 88ba99e..9c52555 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -72,5 +72,10 @@ 'titles_only': False } +# these links cannot be checked in github actions +linkcheck_ignore = [ + "https://crates.io/crates/nwbview", +] + # -- Build the nwb project analytics in the current directory -build_project_analytics(target_dir=os.path.dirname(__file__)) \ No newline at end of file +build_project_analytics(target_dir=os.path.dirname(__file__)) diff --git a/docs/source/tools/analysis_tools_home.rst b/docs/source/tools/analysis_tools_home.rst index ecc2ca5..2c9c938 100644 --- a/docs/source/tools/analysis_tools_home.rst +++ b/docs/source/tools/analysis_tools_home.rst @@ -12,6 +12,7 @@ Analysis and Visualization Tools nwbwidgets/nwbwidgets neurosift/neurosift nwbexplorer/nwbexplorer + nwbview/nwbview hdftools/hdftools spikeinterface/spikeinterface cellexplorer/cellexplorer @@ -87,6 +88,19 @@ Exploring NWB Files

+.. image:: nwbview/nwbview-icon.png + :class: align-left + :width: 180 + +.. include:: nwbview/nwbview.rst + :start-after: .. short_description_start + :end-before: .. short_description_end + +.. raw:: html + +
+
+ .. image:: hdftools/jupyterlab_h5web_nwb_example.png :class: align-left :width: 180 diff --git a/docs/source/tools/nwbview/nwbview-icon.png b/docs/source/tools/nwbview/nwbview-icon.png new file mode 100644 index 0000000..980e88d Binary files /dev/null and b/docs/source/tools/nwbview/nwbview-icon.png differ diff --git a/docs/source/tools/nwbview/nwbview-screenshot.png b/docs/source/tools/nwbview/nwbview-screenshot.png new file mode 100644 index 0000000..0f7e6f5 Binary files /dev/null and b/docs/source/tools/nwbview/nwbview-screenshot.png differ diff --git a/docs/source/tools/nwbview/nwbview.rst b/docs/source/tools/nwbview/nwbview.rst new file mode 100644 index 0000000..464f2c5 --- /dev/null +++ b/docs/source/tools/nwbview/nwbview.rst @@ -0,0 +1,75 @@ +.. _analysistools-nwbview: + + +Nwbview +------------ + +.. image:: nwbview-icon.png + :class: align-left + :width: 100 + + +.. short_description_start + +:ref:`analysistools-nwbview` is a cross-platform software with a graphical user interface to display the contents of the binary NWB file format. It is written in Rust for high-performance, memory safety and ease of deployment. +Its features include the ability to display the contents of the NWB file in a tree structure. It displays voltage and current recordings data in interactive plots. The tabular data or the text data present in the NWB can be displayed in a scalable window. +:bdg-link-primary:`Docs ` :bdg-link-primary:`Source `. + +.. short_description_end + +.. raw:: html + +
+
+
+ +The screenshot below shows the `nwbview` GUI. The left panel shows the contents of the NWB file in a tree structure. The right panel shows the details of the selected item, which can be a plot, a table or a text. + +.. image:: nwbview-screenshot.png + :class: align-left + :width: 800 + +`nwbview` uses the `egui `_ Rust GUI library for rendering. + + +To install and run using cargo +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Cargo is the package manager for Rust, and `nwbview` is listed as a package there. You can find it on `crates.io `_. + + +**Note:** HDF5 needs to be installed in your system as cargo will try to locate the HDF5 root directory and/or headers. + +First install the `cargo` package manager and then run the following command to install `nwbview`. + +.. code-block:: shell + + cargo install nwbview + +Once you completed the installation, simply type `nwbview` on the console to run it. + +.. code-block:: shell + + nwbview + + +To build and run from the source code +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The Rust library dependencies are provided in the `cargo.toml` file. + +Note that the Rust libraries depend on the following system packages that need to be provided. + +* `libgtk-3-dev` +* `librust-atk-dev` +* `libhdf5-serial-dev` + +The exact names of the packages may differ between systems. + +Once all the dependencies are satisfied, go to the directory containing `cargo.toml` and run the following command. + +.. code-block:: shell + + cargo run --release + +The release flag builds the artifacts with optimizations. Do not specify it when you need to debug.