Retistruct Computational reconstruction and transformation of flattened retinae

Retistruct is an R package to morph a flat surface with cuts (a dissected flat-mount retina) onto a curvilinear surface (a standard retinal shape). It can estimate the position of a point on the intact adult retina to within 8° of arc (3.6% of nasotemporal axis). The coordinates in reconstructed retinae can be transformed to visuotopic coordinates.

How Retistruct works


Reconstruction is achieved by: stitching the marked-up cuts of the flat-mount outline; dividing the stitched outline into a mesh whose vertices then are mapped onto a curtailed sphere; and finally moving the vertices so as to minimise a physically-inspired deformation energy function.

Installation and documentation

Retistruct has been tested on GNU/Linux (Ubuntu 16.04), Mac OS X 10.8 and Microsoft Windows 7. Installing the graphical user interface on Mac OS X 10.9 (Mavericks) and 10.10 (Yosemite) is possible, but requires the GTK library to be installed first; see this issue on Github for more help.

Stable version

To install the stable version of Retistruct hosted on CRAN, follow the instructions in the User Guide. The installation contains a number of demonstration retinae, and instructions for how to handle retinal flat-mount images in Retistruct.

Development version and source code

The development version of Retistruct contains the most recent bug fixes and improvements, but may not be stable. To install it follow the instructions on the Retistruct Github repository, where the source code can also be checked out.

Reference publication

For reference purposes, this zip file contains the version of Retistruct that generated the reconstructions in Sterratt & al. (2013; PLoS Computational Biology 9). The file also contains some Matlab code to read data directories contained by Retistruct.

Sample data

As well as the built-in demo data, there are some sample images to practise on:

  1. Beginner: SMI-32 stained retina. As described in the User Guide, the outline can be marked up in ImageJ and imported into Retistruct.
  2. More advanced: TIFF files (left and right), each containing a stack of three images corresponding to Figure 6 of the manuscript: retinae labelled with Fluoro-Emerald, Fluoro-Ruby and a brightfield image. As described in the User Guide, use ImageJ to mark up the outline on the brightfield image, and then use ImageJ’s particle analyser to find the locations of the stained cells.


If you encounter issues using Retistruct please either:

Work using Retistruct


August 2020
The development branch, 0.7.x, is released. This adds the ability to stitch together separate fragments and reconstruct 3D data comprising an overhead image and depth map. There are also user interface improvements, most notably a magnifier function. The improvements were supported by an NIH R21 grant (EY027894) from 2018-2020 to Dr. Mark P. Krebs, The Jackson Laboratory.
December 2019
Retistruct 0.6.1 and 0.6.2 is out. This reinstates sphericalplots and the saving of reconstructed data. New features include allowing resizing of windows so plots can be larger, allowing data counts to be read in using ijroi and csv formats and exposing some features in the API. Version 0.6.2 fixes a small issue and adds much better documentation for developers. See the NEWS file for more information.
July 2019
Retistruct 0.6.0 is out. The big change in this version is a complete refactor of the code, which should enable future enhancements to happen more quickly. The stitching algorithm is improved. There are major improvements in image rendering, which should be a lot faster thanks to the tsearch algorithm in 0.4.x of the geometry package, and able to deal with high-resolution images.
July 2017
Retistruct 0.5.11 is out. The CSV input format can now take a file of counts (or “grouped”) data and there are a number of bug fixes; see the NEWS file for more information.
March 2015
Brian Cohn has pointed out a precursor paper to Retistruct, which we weren’t aware of when developing Retistruct, or writing the paper:
  • Curcio, C.A., Sloan, K. R. and Meyers, D. (1989) “Computer methods for sampling, reconstruction, display and analysis of retinal whole mounts”. Vision Res. 29(5):529-40. Pubmed

Authors and funding

Retistruct was written by David Sterratt at the University of Edinburgh, and tested by Daniel Lyngholm and Ian Thompson at the MRC Centre for Developmental Neurobiology, KCL.

The development of the initial version of Retistruct was supported by a Programme Grant from the UK Wellcome Trust (G083305) from 2008-2013.

Improvements to image handing and refactoring the code (released in v0.6.0) were supported by The Jackson Laboratory (Bar Harbor, ME, USA) Scientific Services Innovation Fund from 2016-2017 and an NIH R21 grant (EY027894) from 2018-2020 to Dr. Mark P. Krebs, The Jackson Laboratory.

The capabilities to reconstruct tissue comprised of separate fragments (released in v0.7.0) and to reconstruct 3D data comprising an overhead image and depth map (released in v0.7.2), and user interface improvements (released in v0.7.0) were supported by an NIH R21 grant (EY027894) from 2018-2020 to Dr. Mark P. Krebs, The Jackson Laboratory.