-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added more structure to the sectioning
- Loading branch information
1 parent
b9a7629
commit 397aa51
Showing
24 changed files
with
269 additions
and
14 deletions.
There are no files selected for viewing
File renamed without changes
File renamed without changes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
.. _process-home: | ||
|
||
############################### | ||
Imaging with the System | ||
############################### | ||
|
||
Visualization of Axes Mapping | ||
----------------- | ||
|
||
In our system we essentially have 5 different translation stages at work: the standard x,y, and z axes, an additional | ||
stage along the z axis to control the focus of the detection path (f), and and axis associated with the piezo positioned | ||
such that its normal is 60.5 degrees away from the y-axis. | ||
|
||
.. image:: Images/PhysicalAxesMaps.png | ||
:align: center | ||
:alt: Layout of how the axis of the system are mapped | ||
|
||
Finding the Focus | ||
----------------- | ||
|
||
Minimizing Spherical Aberrations | ||
----------------- | ||
|
||
Once the system has been assembled to the point of being able to take image stacks, the process of | ||
minimizing the effects of spherical aberrations can begin. Spherical aberrations are typically | ||
introduced into optical systems due to the surface curvature of different lens elements. This | ||
type of aberration typically presents itself visually as a sort of stretching or bending of the focus | ||
of light in the system. Certain microscope objectives, such as the Nikon 25x/1.1 NA that we employ in this setup, | ||
have a built-in collar that can be adjusted to minimize spherical aberration (PICTURE). | ||
|
||
In our system, we expect the effects of spherical aberrations to be along the axis of our detection path (defined | ||
as z in our imaging scheme). In order to visualize these effects and adjust the correction collar of our objective | ||
to mitigate them, we employ a process of taking a z-stack of fluorescent beads suspended in agarose | ||
and using ImageJ to quickly process those images. | ||
|
||
1. Take a z-stack within Navigate of your sample | ||
2. Open up the z-stack within ImageJ | ||
3. Reslice the z-stack (Image -> Stacks -> Reslice) | ||
4. Do a maximum intensity project of the resliced stack (Image -> Stacks -> Z-Projection) | ||
5. Take note if spherical aberration is present in the projected image. | ||
6. If spherical aberration is still present, make slight adjustments to the objective | ||
correction collar and repeat Steps 1-5. | ||
|
||
As a note, observing the camera live-feed via Navigate's "Continuous Scan" mode while adjusting the correction collar | ||
can help to get in the general vicinity of the correct placement of the correction collar. An example of how change in | ||
the correction collar affect live images are shown below for fluorescent beads. Aiming to get to get the beads near the | ||
expected light sheet position to be as in-focus as possible is a general guide for what direction to move the collar; | ||
however, true correction needs to be done with the z-projection method mentioned above. | ||
|
||
.. image:: Images/ChangingCorrectionCollar.png | ||
:align: center | ||
:alt: Correction collar effects | ||
|
||
As a quick example of what an image of a z-projection could look like before and after trying to correct for spherical aberration is shown | ||
below. Here, one can see in the top panel that the bead features are essentially smoothed out and fuzzy due to | ||
aberrations, while in the bottom panel with adjustments made to the correction collar the beads appear much cleaner and | ||
focused. | ||
|
||
.. image:: Images/SphericalExample.png | ||
:align: center | ||
:alt: Before and after of adjusting in Z-projections after adjusting the correction collar | ||
|
||
Processing Images - Deskewing | ||
------------------------- | ||
|
||
With an image stack acquired, some post processing is still required in order to remove the effects of shearing in our | ||
images. The root of this shearing is due to the angled method in which our sample is mounted and similarly, the angled path that | ||
the sample moves as the piezo is scanned. A basic visual idea of how deskewing affects the resulting image is shown | ||
below for 100 nm fluorescent beads. Here before deskewing for the same image plane (yz), the beads appear to be | ||
stacked in a straight line but oriented along an angle, which is not the most accurate representation of our system. | ||
On the deskewed image on the right, one can see that the beads are now properly angled correspond to our piezo angle | ||
mount, and that the PSFs of the beads is now correctly aligned along the z axis. | ||
|
||
.. image:: Images/BeadDeskewExample.png | ||
:align: center | ||
:alt: Difference between an image set of 100 nm bead before deskewing (left) and after (right) | ||
|
||
To do this deskew processing, we utilize custom-built python code via Jupyter notebooks (HAVE LINK TO NOTEBOOK | ||
DOWNLOAD?). The user needs to provide the correct file path to the .tif image stack collected via navigate, as well | ||
as the parameters of the imaging system like z-step size, xy pixel size, and the angle that the images should be | ||
deskewed over. In our case, our deskew angle is equivalent to 90-60.5 degrees, where 60.5 degrees corresponds to the | ||
difference between the normal of our angle mount and the y-axis. If this value is unknown, one can use different | ||
values for the deskew angle until the bead PSFs are correctly aligned along the z-axis and not angled. | ||
|
||
Processing Images - Rescaling | ||
------------------------- | ||
|
||
With a properly deskewed image set, the next step is to work to rescale the image set dimensions to properly | ||
represent the physical pixel sizes in every dimension. The first step to doing this involves going to the | ||
properties tab of the image stack (Image-> Properties) and adjusting each dimension such that the x and y values | ||
correspond to the xy pixel size based on the system magnification and camera sensor size, and the z value | ||
corresponding to the z step size. While using our angled piezo configuration, the z step size :math:`\delta _z` | ||
doesn't directly correspond to the step size chosen for the piezo via navigate. Depicted graphically below, the | ||
actual z step size is related to both the angle for the piezo and the piezo step size :math:`\delta _p` . | ||
|
||
.. image:: Images/CalculatingZstep.png | ||
:align: center | ||
:alt: Depiction of how :math:`\delta _z` is derived | ||
|
||
An example of what these values can be is shown below, where for our camera and system magnification our xy pixel | ||
size is the same at 130 nm, while we used a piezo step size of 200 nm. Using the relationship shown above to find | ||
:math:`\delta _z`, we find our actual z-step size is roughly 98.5 nm. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,137 @@ | ||
.. _process-home: | ||
|
||
############################### | ||
Hardware and Physical Assembly | ||
############################### | ||
|
||
Note on Difference in Simulated and Physical Coordinate Definitions | ||
______________________________ | ||
|
||
It should be noted briefly that when discussing our physical microscope systems using Navigate software, the definitions | ||
for the coordinate axes is different than that of our simulations. This is due to a difference in standardized | ||
definitions for the axes in our previous systems and how Zemax defines these same axes. This difference is depicted in | ||
the picture below: | ||
|
||
.. image:: Images/CoordinateSchemeChange.png | ||
:align: center | ||
:alt: Difference in coordinate axes for simulation and physical setup | ||
|
||
Baseplate Assembly Process | ||
----------------- | ||
|
||
Our baseplate design was made with ease of assembly in mind. The basic process involves aligning Polaris posts with | ||
dowell pins and screwing them using 1/4"-20 Screws in at the predetermined hole locations on the breadboard. | ||
This general process is depicted below: | ||
|
||
.. image:: Images/BaseplateAssembly.png | ||
:align: center | ||
:alt: General process to place posts on baseplate | ||
|
||
We used various different Polaris post sizes in our assembly based on what element was being mounted on them. | ||
Also worth noting is that three elements are designed to be placed on 0.5" posts and as such require 0.5" post holders at | ||
their designated locations: the L1 focus iris, the rectangular aperture after L2, and the ND filter after the 45 degree mirror. | ||
The overal breakdown of which size posts went with each hole location is listed below: | ||
|
||
.. image:: Images/PostHeightBreakdown.png | ||
:align: center | ||
:alt: Schematic of which holes use which post heights | ||
|
||
To either mount the baseplate onto an optical table or onto separate posts, the process is similar in that | ||
just requires screwing 1/4"-20 screws into either an optical breadboard or onto separate posts at the four corner holes. | ||
|
||
.. image:: Images/BaseplateAssembly_Corners.png | ||
:align: center | ||
:alt: General process to place posts on baseplate corners | ||
|
||
Piezo Setup & Troubleshooting | ||
----------------- | ||
On the PCI Board, connect the positive and negative wires to the corresponding analog output (AO) you want, in our case | ||
we used AO 0, so we connected the positive wire to pin 10 and the ground to pin 11, then plug the BNC cable connected to | ||
those wires into the EXT IN input on the Tiger controller panel corresponding to the piezo. | ||
|
||
.. image:: Images/DevicePinouts.png | ||
:align: center | ||
:alt: How to find the Device Pinout panel | ||
|
||
Plug the piezo cable into the PIEZO input on the Tiger controller panel corresponding to the piezo. | ||
|
||
Verify the range of the piezo in the tiger controller software with the command "5 cca x?" | ||
|
||
At first, ours output the following: | ||
| :A Q:P1 | ||
| 23 P 1 100um RANGE | ||
| 24 P 2 200um RANGE | ||
| 35 P S 150um RANGE | ||
| 36 P 3 300um RANGE | ||
| 37 P 5 500um RANGE | ||
| 34 P f 50um RANGE | ||
| 25 P 4 350um RANGE:N-4 | ||
This tells us that our Piezo (Panel 5/Q) corresponded to P1 or a 100 um range, but ASI requires the piezo needed to be | ||
set to a 50 um range to be able to be intitialized instead. To change this, we used the command "5 cca x = 34" and | ||
power cycled the controller. | ||
|
||
Then our output became: | ||
| :A Q:Pf | ||
| 23 P 1 100um RANGE | ||
| 24 P 2 200um RANGE | ||
| 35 P S 150um RANGE | ||
| 36 P 3 300um RANGE | ||
| 37 P 5 500um RANGE | ||
| 34 P f 50um RANGE | ||
| 25 P 4 350um RANGE:N-4 | ||
Now we can see that the piezo is set to the correct range (Pf). | ||
With that verified, now confirm that the voltage output from the PCI Board is working: | ||
|
||
| 1. Put the BNC cable input currently in EXT IN on the Tiger control panel into the input of the oscilloscope instead. | ||
| 2. Go to the test panels for the PCI board in NI MAX. | ||
.. image:: Images/TestPanels.png | ||
:align: center | ||
:alt: How to find the Test Panels panel | ||
|
||
| 3. Set the voltage mode to sinewave generation. | ||
| 4. Set the voltage range to be between 0 to 10 V. | ||
| 5. Set the frequency to a desired value (we ended up setting it pretty high at 10000 Hz for ease of viewing on the oscilloscope). | ||
.. image:: Images/TestPanelConfiguration.png | ||
:align: center | ||
:alt: How to find the Test Panels panel | ||
|
||
With the voltage output of the PCI board verified, plug the PCI Board voltage cable output back into the EXT IN slot and | ||
verify that the position output of the Piezo reads similarly on the oscilloscope: | ||
1. Plug a BNC Cable into the SENSOR OUT connection on the tiger controller panel. | ||
2. Plug the other end of that cable into the oscilloscope. | ||
3. Verify that a sinewave output is seen on the oscilloscope. | ||
|
||
If the PCI Board voltage is working as intended but the piezo position output doesn't seem to work, try ensuring that | ||
the piezo is set in `External Input mode, and not Controller Input mode <https://asiimaging.com/docs/commands/pm>`_: | ||
1. Use the "PM Q?" (Our piezo corresponds to Q) command: | ||
- the output was "Q = 0" originally, telling us that it's in Controller Input mode | ||
2. Use the "PM Q = 1" command to set the piezo into External Input mode: | ||
- now the output of "PM Q?" is "Q = 1" | ||
|
||
Another important step is to ensure that the configuration file associated with Navigate is appropriately set up for your piezo. | ||
This involves setting the correct axis and voltage-to-distance mapping for the piezo. As an example our configuration file | ||
for Navigate looks like the following for setting up our piezo: | ||
|
||
.. image:: Images/Piezo_Config.png | ||
:align: center | ||
:alt: How to find the Test Panels panel | ||
|
||
Physical Assembly - Visualization of Axes Mapping | ||
----------------- | ||
|
||
In our system we essentially have 5 different translation stages at work: the standard x,y, and z axes, an additional | ||
stage along the z axis to control the focus of the detection path (f), and and axis associated with the piezo positioned | ||
such that its normal is 60.5 degrees away from the y-axis. | ||
|
||
.. image:: Images/PhysicalAxesMaps.png | ||
:align: center | ||
:alt: Layout of how the axis of the system are mapped | ||
|
||
Physical Assembly - How to Mount a Lens in a Polaris Holder | ||
------------------- | ||
|
||
Physical Assembly - Installing the Piezo Angle Mount | ||
----------------- |