Skip to content

Commit 0894118

Browse files
Merge pull request #880 from TheDeanLab/more-docs
Getting closer
2 parents a25d339 + 738c437 commit 0894118

File tree

7 files changed

+124
-49
lines changed

7 files changed

+124
-49
lines changed

docs/source/api.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
API
1+
Software API
22
=============
33

44
.. autosummary::

docs/source/implementations/implementations.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
===========================================
2-
Example Microscopes
2+
Implemented Microscopes
33
===========================================
44

55
As an example of the flexibility of the **navigate** software, we describe several

docs/source/index.rst

Lines changed: 34 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,26 @@
66
############
77

88

9-
**navigate** is an open-source Python software for general microscope control. It focuses
10-
on smart microscopy applications by providing reusable acquisition and analysis routines,
11-
termed :ref:`features <features>`, that can be chained
12-
in arbitrary orders to create custom acquisition protocols. **navigate** is designed to accommodate the needs of
9+
**navigate** is an open-source Python software for light-sheet microscope control. It
10+
focuses on smart microscopy applications by providing reusable acquisition and
11+
analysis routines, termed :ref:`features <features>`, that can be chained
12+
in arbitrary orders to create custom acquisition protocols.
13+
**navigate** is designed to accommodate the needs of
1314
a diverse user base, from biologists with no programming experience to advanced
1415
technology developers.
1516

1617
**Project Philosophy**
1718
=========================
1819

1920
* Prioritize standard library imports for maximum stability, and minimize external
20-
dependencies.
21+
dependencies.
2122
* Abstraction layer to drive different camera types, etc.
2223
* Plugin architecture for extensibility.
23-
* Maximize productivity for biological users through robust graphical user interface-based workflows.
24+
* Maximize productivity for biological users through robust graphical user
25+
interface-based workflows.
2426
* Performant and responsive.
25-
* Brutally obvious, well-documented, clean code organized in an industry standard Model-View-Controller architecture.
27+
* Brutally obvious, well-documented, clean code organized in an industry standard
28+
Model-View-Controller architecture.
2629

2730
.. note::
2831

@@ -43,16 +46,16 @@ dependencies.
4346

4447
.. toctree::
4548
:caption: Getting Started
46-
:maxdepth: 2
49+
:maxdepth: 1
4750

4851
quick_start
49-
implementations/implementations
5052
software_installation
5153
i_want_to
5254

55+
5356
.. toctree::
5457
:caption: User Guide
55-
:maxdepth: 2
58+
:maxdepth: 1
5659

5760
user_guide/hardware_overview
5861
user_guide/file_formats
@@ -63,31 +66,43 @@ dependencies.
6366

6467
.. toctree::
6568
:caption: Development
66-
:maxdepth: 2
69+
:maxdepth: 1
6770

6871
contributing/software_architecture
6972
contributing/contributing_guidelines
7073
contributing/feature_container
7174
user_guide/restapi
7275
plugin/plugin_home
7376

77+
.. toctree::
78+
:caption: Plugins
79+
:maxdepth: 1
80+
81+
navigate Plugin Template <https://github.com/TheDeanLab/navigate-plugin-template>
82+
navigate Confocal Projection Plugin <https://github.com/TheDeanLab/navigate-confocal-projection>
83+
navigate at Scale <https://github.com/TheDeanLab/navigate-at-scale>
84+
navigate MMCore Plugin <https://github.com/TheDeanLab/navigate-mmcore-plugin>
85+
navigate ilastik Server <https://github.com/TheDeanLab/navigate-ilastik-server>
86+
7487
.. toctree::
7588
:caption: Reference
76-
:maxdepth: 2
89+
:maxdepth: 1
7790

91+
implementations/implementations
7892
api
7993

8094

8195
**Authors**
8296
============
83-
**Navigate** includes key contributions from numerous individuals, both past and present,
84-
in `The Dean Lab <https://www.dean-lab.org>`_. Please see the accompanying manuscript for a full list of contributors.
97+
**navigate** includes key contributions from numerous individuals, both past and
98+
present, in `The Dean Lab <https://www.dean-lab.org>`_. Please see the accompanying manuscript
99+
for a full list of contributors. :ref:`Outside contributors <contributing/contributing_guidelines>` are welcome.
85100

86101
**Funding**
87102
============
88103
**navigate** is supported by the
89-
`UT Southwestern and University of North Carolina Center for Cell Signaling
90-
<https://cellularsignaltransduction.org>`_, a Biomedical Technology Development and Dissemination (BTDD)
91-
Center funded by the NIH National Institute of General Medical Science (RM1GM145399), and
92-
the `Center for Metastatic Tumor Imaging <https://www.metastasis-imaging.org>`_ program, a
93-
Cellular Cancer Biology Imaging Research (CCBIR) program funded by the NIH National Cancer Institute (U54CA268072).
104+
105+
- NIH National Institute of General Medical Science (RM1GM145399).
106+
- NIH National Cancer Institute (1U54CA268072).
107+
- `Simmons Comprehensive Cancer Center <https://www.utsouthwestern.edu/departments/simmons/>`_ Translational Seed Grant.
108+
- `UTSW President's Research Council <https://engage.utsouthwestern.edu/pages/membership-giving/membership-giving---presidents-research-council>`_

docs/source/software_installation.rst

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ Operating System Compatibility
1212

1313
.. important::
1414
**navigate** is developed for use on Windows-based systems. This is due to the
15-
compatibility of device drivers for various microscope hardware components, such as
15+
compatibility of :ref:`device drivers <firmware_overview>` for various microscope
16+
hardware components, such as
1617
cameras, stages, and data acquisition cards, which are predominantly designed for the
1718
Windows environment.
1819

@@ -21,8 +22,8 @@ Operating System Compatibility
2122
include improper positioning of widgets and problems with resizing the GUI window.
2223
As such, the use of **navigate** on MacOS is not recommended.
2324

24-
The software is untested on Linux systems.Users considering the use of **navigate**
25-
software on Linux should proceed with caution and be prepared for potential
25+
The software is untested on Linux systems. Users considering the use of **navigate**
26+
software on Linux should proceed with caution and be prepared for potential
2627
compatibility issues, especially with respect to device drivers.
2728

2829
.. note::
@@ -33,16 +34,16 @@ Hardware Considerations
3334
-----------------------
3435

3536
**navigate** will run on a mid-range laptop with at least 8 GB of RAM and a processor
36-
with two cores. Most of its operations are undemanding. Saving data at a reasonable
37-
rate, however, will require an SSD. The hardware configuration for an example
37+
with two cores. Most of its operations are undemanding. Saving data at a reasonable
38+
rate, however, will require an SSD. The hardware configuration for an example
3839
microscope control machine is shown below.
3940

4041
.. important::
4142
Scientific cameras are capable of rapidly generating large amounts of high-resolution data.
42-
As such, the read/write speed of the data storage device is a critical for smooth operation
43+
As such, the read/write speed of the data storage device is a critical for smooth operation
4344
of the software. For example, for a standard Hamamatsu camera with a 2048 x 2048 sensor,
4445
operating at 16-bit depth and 20 frames per second, the data save rate is approximately ~167 MB/s.
45-
While such capabilities are well within the capabilities of modern SSDs, they are beyond the
46+
While such capabilities are well within the capabilities of modern SSDs, they are beyond the
4647
capabilities of most HDDs. Therefore, it is recommended to use a fast SSD data saving operations.
4748

4849

@@ -97,7 +98,7 @@ microscope control machine is shown below.
9798
- **Interface**: PCI-E x 8
9899

99100
.. note::
100-
The specifications listed are based on an example system configuration and can
101+
The specifications listed are based on an example system configuration and can
101102
be adjusted based on specific needs and availability.
102103

103104
---------------------
@@ -157,7 +158,7 @@ To install the bleeding edge version of **navigate**, run the following command:
157158
158159
.. note::
159160

160-
If you are running the software on a computer that is not connected to microscope
161+
If you are running the software on a computer that is not connected to microscope
161162
hardware, you can add the flag ``-sh`` (``--synthetic-hardware``) to launch the
162163
program:
163164

@@ -175,13 +176,16 @@ Open an ``Anaconda Prompt (Miniconda3)`` and enter the following.
175176
(base) conda activate navigate
176177
(navigate) navigate
177178
178-
.. note::
179+
.. tip::
179180

180181
If you are running Windows, you can create a desktop shortcut to **navigate** by
181182
right-clicking the Desktop, navigating to New and then Shortcut and entering
182183
``%windir%\system32\cmd.exe "/c" C:\path\to\miniconda\Scripts\activate.bat navigate && navigate``
183184
into the location text box.
184185

186+
This provides a convenient executable shortcut to launch the software, which is
187+
advantageous for users who are not comfortable with the command line.
188+
185189

186190
Developer install
187191
=================

docs/source/user_guide/file_formats.rst

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -50,34 +50,28 @@ Image Writing Benchmarks
5050
------------------------
5151

5252
To evaluate the performance of saving imaging data in different formats, we conducted
53-
benchmarks on a Linux-based system. We assessed the average disk write time for TIFF,
53+
benchmarks on a Linux-based system. We assessed the median disk write time for TIFF,
5454
OME-TIFF, H5, N5, and OME-Zarr formats across image resolutions of 512x512,
5555
1024x1024, and 2048x2048 under two conditions: (A) capturing 1000 single-plane
5656
images and (B) acquiring a single z-stack composed of 1000 planes. All times
57-
are measured in milliseconds. Bottom panel for both A and B has a reduced y-axis to
58-
highlight the differences in write times between the formats. Results are also
59-
presented in a table format below.
60-
61-
The initial setup for writing H5/N5 files introduces
62-
significant overhead, and to a lesser extent for TIFF and OME-TIFF files, which
63-
elevates the average write time. However, the median write time remains consistently
64-
low and stable across most of the acquisition. For z-stack imaging, TIFF and OME-TIFF
65-
formats achieved write speeds of up to approximately 400 Hz for a 2048x2048 camera
57+
are measured in milliseconds. Results are presented below. For z-stack imaging, TIFF
58+
and OME-TIFF formats achieved write speeds of up to approximately 400 Hz for a 2048x2048 camera
6659
resolution, surpassing the operational speeds of most contemporary sCMOS cameras.
6760
The Big-TIFF variant was used for both TIFF and OME-TIFF formats to accommodate the
6861
large file sizes.
6962

63+
Timelapse Imaging
64+
~~~~~~~~~~~~~~~~~
7065

71-
.. image:: images/benchmarks.png
72-
:width: 50%
73-
:align: center
66+
1000 images acquired, with a single Z plane. Median write time reported in
67+
milliseconds.
7468

7569
.. table::
7670
:widths: auto
7771
:align: center
7872

7973
+-------------+---------+----------+-------+-------+---------+
80-
| Z=1, T=1000 | TIFF | OME-TIFF | H5 | N5 | OME-Zarr|
74+
| | TIFF | OME-TIFF | H5 | N5 | OME-Zarr|
8175
+=============+=========+==========+=======+=======+=========+
8276
| 512x512 | 4.06 | 15.26 | 2.79 | 12.09 | 1.35 |
8377
+-------------+---------+----------+-------+-------+---------+
@@ -86,12 +80,17 @@ large file sizes.
8680
| 2048x2048 | 22.25 | 38.57 | 34.71 | 29.56 | 11.85 |
8781
+-------------+---------+----------+-------+-------+---------+
8882

83+
Z-Stack Imaging
84+
~~~~~~~~~~~~~~~
85+
86+
1 image acquired, with 1000 Z planes. Median write speed time in milliseconds.
87+
8988
.. table::
9089
:widths: auto
9190
:align: center
9291

9392
+--------------+---------+----------+-------+-------+---------+
94-
| Z=1000, T=1 | TIFF | OME-TIFF | H5 | N5 | OME-Zarr|
93+
| | TIFF | OME-TIFF | H5 | N5 | OME-Zarr|
9594
+==============+=========+==========+=======+=======+=========+
9695
| 512x512 | 0.21 | 0.17 | 4.76 | 1.80 | 1.30 |
9796
+--------------+---------+----------+-------+-------+---------+
@@ -100,6 +99,17 @@ large file sizes.
10099
| 2048x2048 | 2.35 | 2.14 | 75.56 | 14.08 | 8.60 |
101100
+--------------+---------+----------+-------+-------+---------+
102101

102+
Additional Sources of Overhead
103+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
104+
105+
The initial setup for writing H5/N5 files introduces
106+
significant overhead, and to a lesser extent for TIFF and OME-TIFF files, which
107+
elevates the average write time. However, the median write time remains consistently
108+
low and stable across most of the acquisition.
109+
110+
Computer Specifications for Benchmarks
111+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
112+
103113
The computer specifications that the benchmarks were performed on are as follows:
104114

105115
- Architecture: x86_64

docs/source/user_guide/hardware_overview.rst

Lines changed: 47 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ configure each of these devices is provided :doc:`here <hardware/supported_hardw
2828
* Imagine Optics
2929
* - *Filter Wheel*
3030
-
31-
* Applied Scientific Instrumentation with Tiger Controller
31+
* ASI with Tiger Controller
3232
* Sutter Lambda 10-3
3333
* Sutter Lambda LS
3434
* - *Galvanometers*
@@ -44,8 +44,8 @@ configure each of these devices is provided :doc:`here <hardware/supported_hardw
4444
* - *Stages*
4545
-
4646
* Analog controlled galvanometers and piezoelectric stages.
47-
* Applied Scientific Instrumentation with Tiger Controller
48-
* Applied Scientific Instrumentation with MFC2000 Controller
47+
* ASI with Tiger Controller
48+
* ASI with MFC2000 Controller
4949
* Mad City Labs Nano-Drive
5050
* Physik Instrumente
5151
* Sutter MP285
@@ -57,3 +57,47 @@ configure each of these devices is provided :doc:`here <hardware/supported_hardw
5757
* - *Zoom*
5858
-
5959
* Dynamixel MX-28R
60+
61+
62+
Device Firmware
63+
===============
64+
65+
.. _firmware_overview:
66+
67+
68+
**navigate** has been tested with the following firmware. Devices that are controlled
69+
with analog or digital voltages are omitted.
70+
71+
72+
.. list-table::
73+
:widths: 25 75
74+
:header-rows: 1
75+
76+
* - **Manufacturer**
77+
- **Firmware Version**
78+
* - *ASI*
79+
-
80+
* Tiger Controller 2.2.0.
81+
82+
* - *Dynamixel*
83+
-
84+
* Dynamixel MX-28R
85+
86+
* - *National Instruments*
87+
-
88+
* NI-DAQmx Device Drivers: 22.5.0, 22.8.0, 23.3.0, 23.8.0
89+
90+
* - *Hamamatsu*
91+
-
92+
* DCAM API: 20.7.641, 21.7.4321, 22.9.6509, 22.11.4321, 23.12.6736
93+
* Camera Firmware: 2.21B, 2.53.A, 3.20.A, 4.30.B,
94+
* Active Silicon CoaXpress: 1.10, 1.13, 1.21.
95+
96+
* - *Photometrics*
97+
-
98+
* PVCAM: 3.9.13
99+
100+
* - *Physik Instrumente*
101+
-
102+
* PIMikroMove: 2.36.1.0
103+
* PI_GCS2_DLL: 3.22.0.0

docs/source/user_guide/restapi.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,5 @@ piece of software, but slower than direct access of the data in memory.
1010

1111
An example of using our REST-API to communicate with ilastik, a widely used image segmentation tool,
1212
is provided in our Case Studies section :doc:`here <case_studies/ilastik_segmentation>`.
13+
The navigate ilastik Server plugin can be found `here <https://github
14+
.com/TheDeanLab/navigate-ilastik-server>`_.

0 commit comments

Comments
 (0)