- Open Access
AceTree: a tool for visual analysis of Caenorhabditis elegans embryogenesis
© Boyle et al; licensee BioMed Central Ltd. 2006
- Received: 23 February 2006
- Accepted: 01 June 2006
- Published: 01 June 2006
The invariant lineage of the nematode Caenorhabditis elegans has potential as a powerful tool for the description of mutant phenotypes and gene expression patterns. We previously described procedures for the imaging and automatic extraction of the cell lineage from C. elegans embryos. That method uses time-lapse confocal imaging of a strain expressing histone-GFP fusions and a software package, StarryNite, processes the thousands of images and produces output files that describe the location and lineage relationship of each nucleus at each time point.
We have developed a companion software package, AceTree, which links the images and the annotations using tree representations of the lineage. This facilitates curation and editing of the lineage. AceTree also contains powerful visualization and interpretive tools, such as space filling models and tree-based expression patterning, that can be used to extract biological significance from the data.
By pairing a fast lineaging program written in C with a user interface program written in Java we have produced a powerful software suite for exploring embryonic development.
- Image Series
- Current Cell
- Tree Representation
- Invariant Lineage
- Wild Type Embryo
The invariant lineage of the nematode C. elegans  can potentially be exploited to capture detailed information on the location and timing of expression for the genes expressed in the early embryo. In addition, changes in the lineage resulting from mutations or RNAi knockdowns of gene function can provide functional information about genes. To use the lineage with high throughput, one must capture images in sufficient detail and subject those images to automated lineaging.
Bao et al described a procedure for generating lineages automatically. A ubiquitously expressed histone-GFP fusion protein is used to label nuclei in the developing embryo. Images sets are captured once a minute by a confocal microscope, with each set containing up to 35 focal planes through the full depth of the embryo. The program StarryNite analyzes the images to locate all the nuclei at each time point and to establish the linkage of nuclei from time point to time point. The resulting annotation, which implicitly establishes the lineage of the embryo, is written to a series of files, called the nuclei files, one for each time point.
A separate program, AceTree, was written to facilitate viewing, editing and interpretation of the StarryNite output and is described here. This program is separate from StarryNite, with distinct requirements. StarryNite was written in C with a minimal user interface because of the computationally intensive character of automated lineage extraction. The editing and interpretation tools required for AceTree require robust and portable user interfaces and the ability to develop and test new tools rapidly, making Java a logical choice. In addition, AceTree can be used without StarryNite output as an image viewer and manual lineaging tool, although it is not currently optimized for the latter task.
Three other software packages exist that link image series and lineage trees. The most complete of these is SIMI BioCell, which is optimized for manually lineaging of 4D differential-interference-contrast (DIC) image series and has been used effectively to demonstrate the striking insights that can be obtained by lineage analysis. Angler was developed by the developers of AceDB and is directed mainly at viewing and interpreting lineaged series with more reference to information stored in WormBase. Virtual Wormbase has both an educational goal and a research goal and embeds the idea of simulating the development process. These were all designed to deal with 4D DIC image series and thus are not optimized for the specifics of GFP-histone image series.
We chose to develop a new program, AceTree, rather than attempt to adapt an existing program for several reasons. The new program could be optimized for viewing fluorescence images, including "second color" images used to track gene expression throughout embryogenesis. The key data structure of AceTree is identical with the nuclei files produced by StarryNite, which facilitates the expected co-evolution of the programs as the project matures. In addition, AceTree is being made available as an open source package supporting all major PC operating systems.
Since computation speed is unlikely to be an issue in the user interface oriented AceTree, a high-level language solution was sought. Many biological analysis programs with user interface aspects are written in Java and that language received the top consideration. Two components were needed: a package for handling tiff images and a way to produce interactive trees. ImageJ met the first requirement and provided extra features some of which have since been used to assist in handling the image series as they come from the microscope and to produce and view movies developed from images arising in AceTree. The Java class known as DefaultMutableTreeNode contains all the normal features of a tree data structure and the JTree class provides a convenient graphical user interface for it.
AceTree is written in Java version 1.4.2. For 3D representations the Java3D module is required. Image operations of AceTree are derived from ImageJ and the ij.jar file is required. Development is carried out in the open source Eclipse Platform [7, 8]. For source distribution an Ant  build.xml file is provided. The program is packaged as a jar file and has been tested on conventional workstations using three different operating systems: linux; Mac OS X; windows.
The imaging protocol has in this case captured the four-cell stage of the embryo in the first time point. The basic image annotation consists of blue circles around the nuclei, which have been modelled as spheres. At any time, one of the cells will have the special designation of "current cell" and will have a white circle, in this case the ABa cell. Cell names are a basic element of the annotation scheme and AceTree offers the user several ways to control which cells carry their names on the displayed images.
A menu bar some of whose application specific functions will be addressed herein.
A "JTree" representation of the lineage where ABa is highlighted.
A text display window with information about the current cell being displayed.
A control that enables the user to bring up a particular cell at a particular time point.
A "movie" control that can be used to automatically sequence through the images tracking the current cell and its descendents.
A pad with 12 buttons. These buttons provide considerable control over navigation and the kinds of information shown with the image. The main navigation keys – next, prev, up, down – are mapped to the arrow keys on the keyboard.
A text window displaying the position of the mouse when it is within the image.
Tracking cells from image to image is a common need in analyzing lineaged image data. The "Next" key on the keypad moves to the next image in time while tracking the "current cell". If the nucleus is moving in the z plane (here the left/right embryonic axis), then AceTree adjusts, choosing the z plane image which is closest to the center of the nucleus. Figure 3 shows the image window when tracking has reached time 5. Tracking can be dismissed permitting the user to follow a sequence of images where the plane of the image remains fixed.
In the first time point following a division, the current cell designation will move to one of the daughters of the divided cell. Here, the new "current cell" is ABal: AceTree has tracked the left daughter of the division of the ABa cell. However, it also shows in cyan the sister cell, ABar. The annotation in cyan advises that the nucleus of ABar is centered in plane 19. Since we are looking at the plane 13 image, the cyan annotation is a "ghost nucleus" and in this case reassures us that the embryo has followed the left/right division pattern suggested by its canonical name. Notice also that in the position previously occupied by ABp we have ABpl: both daughters of AB have divided at the same time,
There are multiple ways to select the current cell while studying an image series. The tree representation is "live". One can expand the tree to a cell of interest and left click on it in the tree to bring up the image at its "birth". Alternatively, one can right click on it to bring it up just before its division or death. The cell selection panel can be used to bring up a given time point. Any circle displayed in the image can be right clicked to make that cell the current cell and the tree display is updated correspondingly.
Curating the automated lineage
AceTree can be used to curate and edit lineaged data series such as those arising from StarryNite. AceTree accepts as its inputs the image series and the annotation files whose content was shown in Figure 2. If the series is edited, AceTree creates a revised set of annotation files which would be used in subsequent studies of the data. The tools of the Edit menu are provided for these purposes.
The specific situation shown in Figure 4 shows cell Epr just prior to its division into Epra and Eprp. The image clearly shows the metaphase plate and its orientation for the division along the anterior/posterior axis.
When a lineage is edited in such a way that cell linkage is changed from that in the original nuclei files, the tree representation must be rebuilt and cell naming must be redone. Therefore, AceTree contains the algorithms described by Bao to determine cell names upon division. These include the algorithm for determining the embryonic axes from the four founder cells and the subsequent divisions of ABa and ABp which provide the essential starting point for cell naming. Therefore, it is possible to use AceTree to manually lineage an image series and develop annotation files to be used in subsequent studies of the data although the editing tools are not optimal for such a purpose.
Viewing embryonic lineage and morphology
The modified embryo has 4 cells more than the wild type due to an extra division in the E lineage which would normally form the gut. With lit-1 function inhibited, the E cells adopt the fate of the MS lineage and the gut fails to form resulting in embryonic lethality. Notice that the E and MS subtrees for the modified embryo are similar to each other and similar to the wild type MS sublineage but not the wild type E sublineage.
At this stage the four E cells (red) of the wild type embryo have migrated to the interior beginning the process of gut formation. The space filling model of the lit-1 inhibited embryo shows the E cells remaining on the outside of the embryo and matching in number the MS cells. Aside from the abnormal gastrulation, the positioning of other sublineages has also been altered. AceTree offers considerable freedom to select the colors of different sublineages and the orientation of the model to explore morphology.
Tracking gene expression
Tracking the expression of individual genes in time and cellular location is of major interest to developmental biologists. The automated lineaging technique can be used to track expression of genes of interest by introducing a nuclear localized red fluorescent reporter of a gene's promoter activity. The imaging system then collects a parallel set of images in the red channel and the location and size information in the GFP-derived annotations is used to compute the red intensity of each nucleus.
On the left, each nucleus is colored according to the degree of red expression using the same scheme as in Figure 7 except that nuclei that are not expressing are shown in transparent white. Thus according to the data, all cells shown clearly are expressing the tagged gene, with the expression being especially high in those shown in red.
In the view on the right transparent white is again used, in this case for cells where, according to the literature, no expression is expected. Within the groups of cells that are reported to express the gene of interest, the lineage color scheme is: ABal in pink; ABar in blue; E in yellow; MSaa in magenta; MSap in cyan. Pairing the two 3D representations permits the investigator to consider the validity of the hypotheses about the location of gene expression in a very detailed way.
Bao et al  described the lineaging protocol and presented the results of a series of 20 lineaged embryos, using the low error rate observed to establish the validity of the overall approach. The minimum requirement for AceTree was that it facilitate curation and editing of the automated lineages. Bao et al reported that an earlier version of AceTree allowed curation and editing of a series through the 194 cell stage in about 2 hours and that an additional 2–8 hours were required to edit through the 350 cell stage. Editing time is a function of both the quality of the StarryNite output and the utility of AceTree. A goal for future versions of AceTree and StarryNite should be to further expedite editing beyond the 194 cell stage.
The longer-term goal of enhancing the researcher's capability of extracting biological significance from the data is more difficult to quantify. In this regard, AceTree is in a position similar to a number of software tools reported in the literature, especially those supporting the analysis of microarray data [12, 13]. There, as here, the tools permit a combination of data clustering and tree representations, which are meant to guide the researcher through a complex dataset. In the final analysis, the clues obtained by using such tools form only a part of the evidence that leads to new knowledge. We are encouraged by the character of the examples shown here: the work with the lit-1 RNAi treated embryo; the visualizations of the tagged gene; the embryonic rotation study. We remain open to suggestions for additional features deemed helpful by practicing researchers.
The AceTree class provides the main control and is the heart of the application. The link to StarryNite is established through the reading of the nuclei files, which are the main output of that program and by associating them with the same tiff images that were used in the automated lineaging. While this is essentially a user interface class, it is in control of cell and image navigation and as such contains code that embodies the essence of our application. The user navigates by a variety of methods: mouse clicks on the JTree, use of the cell selection panel, use of the button pad and its keyboard equivalents, mouse clicks on the AncestralTree trees, and the movie control. The "current cell" feature is controlled in AceTree. AceTree calls into play about 40 classes that handle various aspects of the user interface. These in turn make use of the javax.swing base classes.
The ImageWindow class makes the raw data of the process accessible and guides the eye by added annotation: circles locating the cells and the current cell, cell names, sister display. ImageWindow relies on classes of the ImageJ package for rendering the tiff images and annotating them. The EditImage class is derived from ImageWindow.
The Image3D class is built upon Java3D and this package is required in addition to Java 1.4.2 for the 3D feature to be available.
Application data structures
The technical underpinnings of the application are embodied in five classes: Nucleus; NucleiMgr; Identity; Cell; AncesTree.
The Nucleus class contains the elements used to describe each nucleus at each time point. The member variables are all public and are directly accessed wherever needed in the AceTree code. The specific variables are those shown in Figure 2: identity, index, status, predecessor, successor1, successor2, x, y, z, size, green weight, red weight.
The NucleiMgr class holds the nuclei_record: a Vector of Vectors where the final elements are instances of the Nucleus class. Thus one Vector of the nuclei_record represents all nuclei at a time point. NucleiMgr has code for reading the nuclei files and creating its internal representation as well as code for recreating the successor indices after an edit operation (the "rebuild" action). The various edit operations act directly on the nuclei_record. AceTree supports saving an edited nuclei_record to nuclei files in the same form as the original files.
The Identity class implements the code to assign cell names. Identity is a singleton class and contains the key public function identityAssignment(), which generates names. Two naming methods described by Bao are implemented. The main loop of STANDARD naming calls the private sisterID() function, which examines the parent/daughter orientation and attaches the implied character to the growing name. Canonically, the plane of division was determined by the orientation of the spindle axis at the initiation of division, with a preference given to the a/p division. Most divisions were assigned the addition of 'a' to one sister and 'p' to the other. In the current images the spindle is invisible. Instead, we rely on the axis of the daughter cells. When the x position of one sister can clearly be seen to be less than that of the other (say more than one quarter of a cell diameter), the daughter is assigned 'a'. Failing that, the code looks for a y axis difference and if that too is insufficiently large the z direction is used. Naturally there is some special case code in Identity to handle the germ line, polar bodies, and the EMS division.
Naming can proceed only when the orientation of the embryo is known. The imaging protocol guarantees that the x image axis will align with the anterior-posterior axis but cannot guarantee that the positive x direction is posterior. Likewise the dorsal-ventral and left-right axes may variously align with the y and z axes. The Identity module determines the axes by considering the 4 and 8 cell stages. ABa and ABp are distinguished from EMS and P2 by their earlier divisions and the initial axes can be unambiguously determined. If axes are not determined, all names are stylized: sublineages are called "Nuc" with a number added to distinguish the sublineage and directional letters to track subsequent divisions.
CANONICAL naming relies on a rule table based on the Sulston lineage. The rule tells for each canonical parent what axis to use to examine the division and how the daughters are to be named to stay within the canonical list. Finally, there is "manual" naming for use in manual lineaging. The choice of naming method is a user option: canonical is the default.
The Cell and AncesTree classes enable AceTree to offer tree representations based on the annotation information in the nuclei files. The Cell class derives from the Java DefaultMutableTreeNode class. That class offers all the normal data structure features of trees such as the various traversals. AceTree calls the constructor of AncesTree giving it a NucleiMgr object. The constructor calls the private processEntries() function which proceeds through the nuclei_record from time point to time point. In the general case, the presence of a new cell is detected by examination of the successor indices and new Cell objects are created for each sister. When AceTree needs to refer to the tree as a whole, it refers to the root Cell: the properties of the DefaultMutableTreeNode take care of the details.
Access to cells within AceTree is facilitated by two hashtables kept by AncesTree and made available via access functions: iCells and iCellsByName. The member variables of the Cell object include: name, starting time, ending time, ending fate (alive, divided, died) and a hashKey which is constructed from the time and index of its Nucleus at birth. The Cell object also contains the drawing code needed to render it in Ancestral Tree style trees.
AceTree is available as part of the StarryNite-AceTree package from http://waterston.gs.washington.edu. The AceTree.jar file contains the source code. It requires Java 1.4.1 and the ImageJ jar file ij.jar; Java3D must be installed to use the space filling model features. AceTree has been tested on linux, macintosh, and windows. The AceTreeDemo download contains the program and a data set in a single zip file of about 200 MB. The AceTree Help menu provides a tutorial in html called AceTreeDemo, which can be followed to learn the program features, the character of the data, and the power of the annotations developed by StarryNite. AceTreeDemo.html can be extracted from the jar file and printed from a browser to provide an offline manual. The AceTree.jar file in the demo package is the full featured program and can be used with other data available on the site.
We gratefully thank Drs. James Priess and James Thomas and their groups for their help and advice. This research is partly funded by NIH. ZB is a Damon Runyon Fellow supported by the Damon Runyon Cancer Research Foundation (DRG-1813-04). JIM is a Fellow of The Jane Coffin Childs Memorial Fund for Medical Research.
- Sulston JE, Schierenberg E, White JG, Thomson JN: The embronic cell lineage of the nematode Caenorhabditis elegans . Dev Biol 1983, 100: 64–119. 10.1016/0012-1606(83)90201-4View ArticlePubMedGoogle Scholar
- Bao Z, Murray JI, Boyle T, Ooi SL, Sandel MJ, Waterston JH: Automated Cell Lineage Tracing in Caenorhabditis elegans PNAS. 2006, 103(8):2707–2712. February 21, 10.1073/pnas.0511111103 February 21, 10.1073/pnas.0511111103Google Scholar
- Schnabel R, Hutter H, Moerman D, Schnabel H: Assessing normal embryogenesis in Caenorhabditis elegans . Dev Biol 1997, 184: 234–265. 10.1006/dbio.1997.8509View ArticlePubMedGoogle Scholar
- Martinelli SD, Brown CG, Durbin R: Gene expression and development databases for C. elegans. Semin Cell Dev Biol 1997, 8(5):459–67. 10.1006/scdb.1997.0171View ArticlePubMedGoogle Scholar
- Johan Koch: Virtual Wormbase, User Manual email@example.com[http://celegans.sh.se/vwbase/]2005. 23rd June 2005Google Scholar
- Rasband W: ImageJ: Image Processing and Analysis in Java.[http://rsb.info.nih.gov/ij/index.html]
- Shavor S, D'Anjou J, Fairbrother S, Kehn D, Kellerman J, McCarthy P: The Java Developer's Guide to Eclipse. Addison Wesley Professional 2003. ISBN:0342259640. ISBN:0342259640.Google Scholar
- Eclipse Platform2004. [http://www.eclipse.org/]
- The Apache Software Foundation: Apache Ant 1.6.2 Manual. 2004.Google Scholar
- Kaletta T, Schnabel H, Schnabel R: Binary specification of the embryonic lineage in Caenorhabditis elegans. Nature 1997, 390: 294–298. 10.1038/36869View ArticlePubMedGoogle Scholar
- Azzaria M, Goszczynski B, Chung MA, Kalb JM, McGhee JD: A fork head/HNF-3 homolog expressed in the pharynx and intestine of the Caenorhabditis elegans embryo. Dev Biol 2001, 178: 289–303. 10.1006/dbio.1996.0219View ArticleGoogle Scholar
- Saldanha AJ: Java Treeview–extensible visualization of microarray data. Bioinformatics 20(17):3246–8. 2004 Nov 22 2004 Nov 22 10.1093/bioinformatics/bth349Google Scholar
- Rees CA, Demeter J, Matese JC, Botstein D, Sherlock G: GeneXplorer: an interactive web application for microarray data visualization and analysis. BMC Bioinformatics 5: 141. 2004 Oct 1 2004 Oct 1 10.1186/1471-2105-5-141PubMed CentralView ArticlePubMedGoogle Scholar
This article is published under license to BioMed Central Ltd. This is an Open Access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/2.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.