-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMainBody.html
More file actions
229 lines (168 loc) · 11.8 KB
/
MainBody.html
File metadata and controls
229 lines (168 loc) · 11.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
<!DOCTYPE html>
<html>
<head>
<title>LifeHack Microscope: Main Body</title>
<meta name="description" content="The main structure of the Life Hack microscope containing all the hardware required of a microscope body including for Ring TIRF illumination.">
<meta name="author" content="Josh Edwards">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="main.css">
<link rel="stylesheet" type="text/css" href="menu.css">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-B9XZF5GEV3"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-B9XZF5GEV3');
</script>
</head>
<body>
<div id="myNav" class="overlay">
<a href="javascript:void(0)" class="closebtn" onclick="closeNav()">×</a>
<div class="grid-container">
<a href="home.html"><div class="hero-image-home">
<div class="menu-text"><h1>Home</h1></div>
</div></a>
<a href="MainBody.html"><div class="hero-image-MainBody">
<div class="menu-text"><h1>Main Body</h1></div>
</div></a>
<a href="BeamExpansion.html"><div class="hero-image-BeamExpansion">
<div class="menu-text"><h1>Beam Expansion Module</h1></div>
</div></a>
<a href="Excitation.html"><div class="hero-image-Excitation">
<div class="menu-text"><h1>Excitation Module</h1></div>
</div></a>
<a href="FocusShifter.html"><div class="hero-image-FocusShifter">
<div class="menu-text"><h1>Focus Shifter</h1></div>
</div></a>
<a href="IncubationBox.html"><div class="hero-image-IncubationBox">
<div class="menu-text"><h1>Incubation Box</h1></div>
</div></a>
<a href="https://github.com/HoldenLab/LifeHack"><div class="hero-image-github">
<div class="menu-text"><h1>Git Hub</h1></div>
</div></a>
<a href="ImageAutofocus.html"><div class="hero-image-ImageAutofocus">
<div class="menu-text"><h1>ImLock</h1></div>
</div></a>
<a href="Operation.html"><div class="hero-image-Operation">
<div class="menu-text"><h1>Operation</h1></div>
</div></a>
</div>
</div>
<script>
function openNav() {
document.getElementById("myNav").style.height = "100%";
}
function closeNav() {
document.getElementById("myNav").style.height = "0px";
}
function LoadNav() {
document.getElementById("myNav").style.display = "block";
}
</script>
<div class="hero-image">
<div class="hero-text">
<h1>Main Body</h1>
<p>Main Structure of the LifeHack System</p>
</div>
</div>
<div class="nav-wrapper" style="height:80px;">
<div id="navbar">
<a href="javascript:void(0)" onclick="openNav()">☰ Menu</a>
</div>
</div>
<div class="sidenav">
<a href="#Description">Description</a>
<a href="#Parts">Parts</a>
<a href="#Construction">Construction</a>
<a href="#RingTIRF">Ring TIRF</a>
<a href="https://github.com/HoldenLab/LifeHack/tree/master/Main%20Body">Go to GitHub</a>
<a href="https://github.com/HoldenLab/LifeHack/issues">Report Bug/Feedback</a>
<hr>
<p>Project Contributors: Josh Edwards, Kevin Whitley, Sudeer Peneti, Yann Cesbron, Seamus Holden</p>
<p>Website by Josh Edwards</p>
<p>Updated: May 2021</p>
</div>
<div class="page">
<video src="Video/Microscope-body-animation.mp4" width="90%" controls autoplay muted></video>
<h1 id="Description">Description</h1><hr>
<p>The main body of the microscope contains all of the hardware to fulfill the functionality of a microscope bar fluorescence excitation.</p>
<img src="Images/Microscope-body.jpg" width="60%">
<p>TIRF and HILO illumination is provided by the pair of Galvo-scanning mirrors incorporated into the excitation path after the back port of the main body. This enables the use of <a href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0136055">ring TIRF</a> whereby through the course of an image the beam illuminates the coverslip from all angles Shadowing and artifacts caused by imperfections in the coverslip or inhomogeneities in the sample are thereby reduced.</p>
<p>A cylindrical lens positioned in a 3D printed box immediately before the camera provides 3D localisation by atigmatism. This contains a rail mounting system to allow for axial adjustment of the lens position. Sliding the lens towards and away from the camera will respectively reduce and increase the severity of the astigmatism at the camera.</p>
<p>This module is also home to The Focus Shifter and ImLock sub-modules. These modules can be operated at a range of wavelengths but we have had success at 850nm and 940nm respctively. Provided that the CRISP system and IR-brightfield LED do not share the same spectral window they may be used simultaneously.</p>
<p>All of this is contained within a structurally open frame to allow for easy access to adjustable components and for the later addition of optical pathways if required.</p>
<img src="Images/Main Body Line Drawing.png" width="80%">
<p style=text-align:center>Optical Diagram: L5=200mm tube lens, L6=100X 1.49NA Objective, L7=200mm tube lens, L8=50mm tube lens, L9=100mm translatable lens,<br>Blue = Excitation, Red = Infra-Red, Green = Emission.</p>
<h1 id="Parts">Parts</h1><hr>
<iframe src="Parts-List/MainBody-Parts.htm" width="100%" height="500px" title="Parts"></iframe>
<div class="minipage">
<a class="button-design" href="Parts-List/MainBody-Parts.xlsx">⇩ Download ⇩</a>
<a class="button-design" href="https://github.com/HoldenLab/LifeHack/tree/master/Main%20Body/Parts">⇩ Get Custom Part Designs ⇩</a>
</div>
<h1 id="Construction">Construction</h1><hr>
<a class="button-design" href="https://a360.co/3p1nkNR" target="_blank">👁 View CAD Design Online 👁</a>
<h2>Alignment Laser</h2>
<p>Alignment of the main body of the microscope is greatly aided by the use of a dedicated alignment laser with interchangeable screw mounts. This allows for mounting of the laser at various ports and on sections of rail.</p>
<img src="Images/AlignmentLaser.jpg" width="40%" style="margin-bottom:5px">
<iframe src="Images/Alignment-Laser-Drawing.pdf" width="100%" height="700px" title="Alignment"></iframe>
<a class="button-design" href="https://github.com/HoldenLab/LifeHack/tree/master/Alignment%20Laser">👁 Get Designs for Manufacture 👁</a>
<p>Adapted from <a href="https://www.osapublishing.org/oe/fulltext.cfm?uri=oe-23-6-7734&id=313825"><cite>S. Abrahamsson et al, "MultiFocus Polarization Microscope (MF-PolScope) for 3D polarization imaging of up to 25 focal planes simultaneously," Opt. Express 23, 7734-7754 (2015).</cite> <b>Appendix D</b></a></p>
<h2>Construction/Alignment</h2>
<p>Before begining assembly, the two vertically mounted Infinity Cubes(in red box below) need to have their filter cubes mounted the other way up to standard. This is achieved by removing the top and bottom plates, swapping them, and turning the cube upside down before fitting in to the microscope. The desired set up can be found in the 3D model and is available on request from <a href="https://www.cairn-research.co.uk/">Cairn Research</a> as the "LifeHack TriCube".</p>
<p>After this, attach the objective basket, Cubes, and stage to the frame so that the Cubes hang down below. This step was pre-assembled by Cairn Research for our microscope.</p>
<img src="Images/BodyBuild1.PNG" width="40%">
<p>Now add the emission path turning mirror. After ensuring that no filters are mounted in the Infinity cubes, mount the alignment laser at the objective port and a target after the mirror to align the turning mirror.</p>
<img src="Images/BodyBuild2.PNG" width="40%">
<p>Add the remainder of the emission pathway barring the camera and align the tube lens to the target.</p>
<p>Attach the frame and emission pathway to the breadboard and tighten firmly making sure to double check the alignment after.</p>
<img src="Images/BodyBuild3.PNG" width="40%">
<p>Now add the excitation pathway cage as shown below. Mount a target at the cage support plate and insert a suitable dichroic into the lower infinity cube. Align the dichroic to the target with the alignment laser.</p>
<p>Position the tube lens on the cage rods as in the designs and repeat the above step to align it laterally. Precise axial positioning should be conducted in the opposite direction with a target at the objective port.</p>
<p>The rest of the excitation pathway can then be added (the alignment for the Galvos is contained within the <a href=#RingTIRF>Ring TIRF</a> section).</p>
<img src="Images/BodyBuild4.PNG" width="40%">
<p>Once the excitation pathway is constructed, the autofocus devices can be fitted (The construction of these is documented on their respective pages). The first step of this is to align the top infinity cube dichroic to the focus shifter pathway. Use the same filter as for the lower cube in order to work with the alignment lens. Then add the combiner cube mirror and align that through the ImLock pathway.</p>
<div class="minipage">
<img src="Images/BodyBuild5.png" width="90%">
<img src="Images/BodyBuild6.png" width="90%">
</div>
<h1 id="RingTIRF">Ring TIRF</h1><hr>
<p>TIRF microscopy is frequently used to study thin samples as its short illumination range dramatically reduces background fluorescence. The most common way of achieving this is to illuminate the coverslip from the edge of the objective at an angle beyond the critical angle. Illuminating in such a way from one point can lead to artefacts in the image due to inhomogeneities at the interface between the sample and the coverslip. Rapidly spinning the beam around the entire circumference of the objective using Galvo mirros greatly reduces this as an averaging effect occurs. The principle and software below are taken from <a href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0136055">Ellefsen KL, Dynes JL, Parker I (2015) Spinning-Spot Shadowless TIRF Microscopy. PLOS ONE</a>.</p>
<h2>Software</h2>
<p>Python software is provided to control the Galvos to produce ring TIRF illumination. The graphical user interface is described below.</p>
<img src="Images/Ring-TIRF-Instructions.jpg" width="100%" style="padding-bottom:15px">
<a class="button-design" href="https://github.com/HoldenLab/shadowlessTIRF">👁 Get Software from GitHub 👁</a>
<h2>National Instruments DAC</h2>
<p>To generate the sinusoidal signals required to drive the Galvo mirros a DAC is required. The galvos are connected via a connector panel to the two analogue outputs from said DAC.</p>
<div class="minipage">
<img src="Images/NI-board.jpg" width="100%">
<img src="Images/NI-board-cover.jpg" width="100%">
</div>
<h2>Alignment and Calibration</h2>
<ul>
<li>Before connecting the Galvo to the rest of the system, attach the alignment laser to its input and a target/iris on an SM1 tube to the output.</li>
</ul>
<img src="Images/Galvo.jpg" width="40%">
<ul>
<li>Zero the Galvo using the "X-shift" and "Y-shift" settings on the software GUI.</li>
<li>Attach the Galvo to the system and zero the combination of it and the turning lens pair immediately before it.</li>
</ul>
</div>
<div class="bottomnav">
<a href="http://creativecommons.org/licenses/by-nc-sa/4.0/">License: Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License</a>.
<a href="https://blogs.ncl.ac.uk/holdenlab/">Holden Lab Website</a>
</div>
<script>
window.onscroll = function() {myFunction()};
var navbar = document.getElementById("navbar");
var sticky = navbar.offsetTop;
function myFunction() {
if (window.pageYOffset >= sticky) {
navbar.classList.add("sticky")
} else {
navbar.classList.remove("sticky");
}
}
</script>
</body>
</html>