Contents

1 About synapsis

synapsis is an R package which is designed for the objective and reproducible analysis of meiotic immunofluorescence data.

Meiosis is a special type of cell division where the chromosome number is halved prior to fertilisation in sexually reproducing species. The accurate halving of chromosomes is facilitated through large scale chromosome exchanges that are referred to as meiotic crossovers. The necessary precursors to crossovers are meiotic DNA double-strand breaks. There is very tight control of DNA double-strand break numbers, timing and positioning. Similarly the repair of these breaks and the intermediate steps to crossover formation are under strict control. All of these events take place on a meiosis-specific chromosomal structure, which is referred to as the synaptonemal complex. These different meiosis-specific molecular events and structures can be visualised with antibody labelling and these signals are what synapsis analyses.

There are three common types of labelling patterns that are considered in meiotic immunofluorescence data sets:

  1. The synaptonemal complex - These linear and thread-like structures are specific to cells which are in meiotic prophase I. A good description of the mouse synaptonemal complex can be found here (Bisig et al. 2012).

  2. Foci - A number of common proteins that are involved in meiotic double-strand break repair form foci when visualised with immunofluoresence. Some common examples of include the visualisation of the dynamic loading and unloading of RAD51, DMC1, MSH4, MLH1 (Cole et al. 2012). Foci can also be seen when visualising relatively fixed chromosomal structures such as centromeres and telomeres.

  3. DNA - DNA is commonly visualised with a stain referred to as DAPI (4′,6-diamidino-2-phenylindole). As nearly all cells contain DNA, DAPI-stained cells are not necessarily in meiosis, but DAPI is still an informative cytological marker.

One of the more common uses of meiotic immunofluorescence data will be a quantitative analysis of some aspect of double-strand break repair. The challenge for manual quantification of foci relates to subjective and undocumented choices: What criteria are required to consider the data from one cell? E.g. how is meiotic sub-stage determined? How is a good or bad quality image determined?
How is a foci defined? E.g. size, intensity, signal to background ratio.

Synapsis also lays the foundation for more complex analyses. For example synapsis generates output that is compatible with machine learning approaches. In future versions of synapsis it will be possible to measure the relative positioning of multiple foci on the same synaptonemal complex, which is another common task that is performed manually by researchers.

A number of good open-source packages exist for the analysis of immunofluoresence data from somatic cells such as the R packages EBImage, colocr, ColocalizR, and the code-free tool CellProfiler. We recognise the value of these software and synapsis makes significant use of EBImage in particular. Objective and reproducible analyses are essential in research.

2 Getting started

To run this tutorial, you will need the following packages:

library(knitr)
library(rmarkdown)
## 
## Attaching package: 'rmarkdown'
## The following objects are masked from 'package:BiocStyle':
## 
##     html_document, md_document, pdf_document

2.1 installing synapsis through bioconductor

Make sure you have the BiocManager package installed.

if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")

Then type the following into the Rstudio console:

BiocManager::install("synapsis")

2.2 installing synapsis from GitHub

To install synapsis from GitHub, you will need:

  • devtools
library(devtools)

You can install the development version of synapsis directly from the github repository by pasting the following into the Rstudio console:

devtools::install_git('https://github.com/mcneilllucy/synapsis', dependencies  = TRUE)

2.3 loading synapsis

library(synapsis)

2.4 checking documentation

You can type

??auto_crop_fast

to explore the first function we will use in the “help” window in Rstudio.

2.5 Data preparation

For the moment, we will use the example images which come with synapsis.

path = paste0(system.file("extdata",package = "synapsis"))

2.5.1 Foci channel

library(EBImage)

Look at the MLH3 channel

file_MLH3 <- paste0(path,"/MLH3rabbit488_SYCP3mouse594_fancm_fvb_x_fancm_bl6_724++_slide01_006-MLH3.tif")
image_MLH3 <- readImage(file_MLH3)
display(2*image_MLH3)

2.5.2 Synaptonemal complex channel

file_SYCP3 <- paste0(path,"/MLH3rabbit488_SYCP3mouse594_fancm_fvb_x_fancm_bl6_724++_slide01_006-SYCP3.tif")
image_SYCP3 <- readImage(file_SYCP3)
display(2*image_SYCP3)

2.5.3 Comment on resolution and size

Many of the input parameters in synapsis are in pixel units. It’s good to get a feel of this before you start analysing them. Let’s

cat("dimension of image:", dim(image_MLH3)[1], " x ", dim(image_MLH3)[2], sep = " ")
## dimension of image: 750  x  750

or size

mb = 1e06
cat("file size in mb:", file.size(file_MLH3)/mb, sep = " ")
## file size in mb: 2.250206

The image is 750 x 750 pixels and 2.25mb. If we recall the SYCP3 channel image, keeping in mind that it is 750 pixels wide, a single cell looks like it takes up roughly 1/8th of the width, i.e. 125 pixels. Keeping this approximate width of a cell in pixels will come in handy when determining input parameters for your own images.

3 calling synapsis functions on sample image

Here we will demonstrate the functionality of synapsis. Given an image whose foci channel (MLH3) is shown in MLH3rabbit488_SYCP3mouse594_fancm_fvb_x_fancm_bl6_724++_slide01_006-MLH3.tif, and synaptonemal complex channel (SYCP3) shown in MLH3rabbit488_SYCP3mouse594_fancm_fvb_x_fancm_bl6_724++_slide01_006-SYCP3.tif, we can:

which are currently the three main features of synapsis.

Some notable features mentioned in the tutorial are:

3.1 Cropping routine

3.1.1 without cell separation using watershed

auto_crop_fast(path, annotation = "on", max_cell_area = 30000, min_cell_area = 7000, file_ext = "tif")