Optical projection tomography microscope

A bench-top instrument for 3D imaging of zebrafish larvae

  • Mechanical design
  • Motion control
  • Optical instrumentation
  • Electronics
  • Image reconstruction

Optical projection tomography images a specimen in three dimensions by rotating it through a full turn and recording a projection at every angle: a CT scanner that uses visible light instead of X-rays. Zebrafish larvae suit the technique well. At a few days old they are almost transparent, so each projection carries an image through the whole body rather than just its surface.

I built this microscope for a zebrafish research lab at UCL, where I worked as a research associate. It sits on an optical breadboard: a motorised drivetrain turns a glass capillary holding a single larva, and a light source and optic path either side of the rotation axis record the projections. The motion, optics and sample handling were designed as one bench-top instrument, and the projection sets it captured were reconstructed into 3D volumes in MATLAB.

Rotating the specimen

The larva is drawn up into a glass capillary, which is held on the rotation axis so that the drivetrain turns the specimen about its own centre rather than sweeping it across the field of view. A stepper motor drives the capillary holder through a toothed belt, so the sample can be indexed in fixed angular steps through a complete 360° turn.

Overhead view of the OPT microscope showing the belt-driven capillary holder and the optical assembly on the breadboard.
The instrument from above: drive and capillary holder on the breadboard.

The optical assembly is built from standard hardware — posts, clamps and translation stages — so a component can be repositioned or swapped without remaking parts. The custom work is concentrated in the parts that had to be made: the capillary holder and the drive that turns it.

The optic path

A light source on the far side of the capillary illuminates the specimen, and a lens train collects the transmitted light and forms a projection on the camera. Camera, optic path and light source are each height-set to the capillary axis and locked off once aligned, and an XY stage provides the lateral adjustment needed to centre the capillary on the rotation axis before a scan.

A scan is simply a sequence of those projections, one per angular step, taken across a full turn. A separate control unit carries the drive electronics, with power, test and go controls on the front panel, so the breadboard itself stays clear of motor cabling.

Reconstruction

A single projection says little on its own; the value is in the whole set. With projections covering a full rotation, the data can be reconstructed into a three-dimensional volume, and the internal structure of the larva can then be examined in section rather than inferred from one view.

I wrote the reconstruction in MATLAB. It takes the projection stack produced by a scan and returns a volume that can be sliced through in any plane, which is what makes the instrument useful: the same specimen can be interrogated repeatedly without being sectioned, mounted or otherwise prepared for each question.

Isometric CAD assembly of the OPT microscope drawn in white on blue, with callouts for the camera, optic path, glass capillary, XY stage, light source and control unit.
Isometric assembly view from the CAD model, reproduced as a blueprint.

The drawing above is the isometric view from the CAD assembly, which I modelled in Fusion 360. Page border and title block have been removed and the linework redrawn white on a blue drafting grid; the component callouts are from the original drawing.

What the build required

The interesting part of this project was not any single component but getting them to agree. The drivetrain has to hold the specimen on the optical axis for the whole scan, the optic path has to keep looking through the capillary as it turns, and the reconstruction assumes that the projections are evenly spaced and consistently framed. Each of those requirements is easy on its own and awkward in combination, and most of the iteration went into the mechanical alignment, and into keeping the captured stack consistent from one scan to the next.