3  Reporter Gene Expression

3.1 Introduction

In this exercise you will use absorbance ratio data obtained from cloning your reporter gene downstream of a set of nine candidate kanamycin-responsive promoter regions.

Your reporter gene absorbs light at 700nm, so by using a spectrophotometer and measuring the attenuation of light at 700nm (OD700), you can estimate the amount of reporter gene that is produced.

Caution

It is not enough to only measure the absorbance due to the reporter gene. We are interested in how much reporter gene is produced by each cell. So we must take into account how many cells are present in the medium.

To see what we mean: if 500 cells each produced 10 units of reporter gene, we’d expect around 5000 units of absorbance. But if there are only 100 cells producing 50 units of reporter gene each, we’d still expect around 5000 units of absorbance. Measuring OD700 alone could not tell the difference between these results.

To take the number of cells into account, we also measure absorbance at 600nm (OD600), as a measure of cell density. Then, by taking the ratio of OD700 to OD600 we can normalise the measurement of reporter gene by the amount of the organism that is present.

With our example above, assuming that one cell gives one unit of absorbance at 600nm, the situation with 500 cells producing 10 units of reporter gene each would have an OD700/OD600 ratio of \(5000/500 = 10\), but the case of 100 cells producing 50 units of reporter gene would have an OD700/OD600 ratio of \(5000/100 = 50\), for five times the expression.

In this experiment, we are seeking a reporter system that responds to high concentrations of kanamycin by expressing, or switching on, the reporter gene. So we are looking for plasmids (here named pABS1.01 to pABS1.09) that have a strong expression response at high concentrations of kanamycin, but a weaker expression response at lower concentrations.

To find good candidate reporter systems, we plot the OD700/OD600 ratio against kanamycin concentration, to visualise which systems appear to have the characteristics we are looking for.

Important

In this part of the workshop, you will plot the ratio of your reporter absorbance (OD700) to your organism growth (OD600) against the concentration of kanamycin applied, using R, in order to identify good candidate reporters.

3.2 Load and inspect your data

Your data is in the file reporter_curves.csv, so load it into R using the read.csv() function, and inspect the format of your data, just as you did for the yeast growth data in Chapter 2.

Task

Use the WebR cell below to load your data.

  • Check back with Chapter 2 to see if you can use anything you’ve already learned

Use the R code below to load your data

data <- read.csv("reporter_curves.csv")
glimpse(data)

3.2.1 Make a basic ggplot2 figure of your reporter data

You have loaded absorbance ratio data for nine candidate kanamycin reporters and a control sample. You’re going to plot these in the same way as you plotted the yeast growth data in Chapter 2.

Task

Use the WebR cell below to make a scatterplot of your data.

  • Use the ggplot() and aes() functions to create your base layer with the data, and how you want to group your data.
  • Use a geom_point() layer to visualise the datapoints
  • You’re plotting the abs_ratio column against conc, and grouping data by sample
  • Don’t forget to include a line that shows your figure!
  • Check back with Chapter 2 to see if you can use anything you’ve already learned

Use the R code below to load your data

fig <- ggplot(data, aes(x=conc, y=abs_ratio, color=sample)) +
         geom_point()
fig

The figure output shows the datapoints, but there are a lot of reporters, so there are a lot of colours. It’s difficult to track any single reporter because of the overlap between points, and confusion of colours.

Figure 3.1: A ggplot() graph of reporter absorbance ratios against kanamycin concentration.

3.2.2 Make a lineplot to help with visualisation

One of the advantages of ggplot2 is that it is easy to add and swap layers. We don’t only have to make a scatterplot, we can add a lineplot to our figure as well. We do this by adding a geom_line() layer.

Task

Use the WebR cell below to add a lineplot to your data.

  • Use a geom_line() layer to visualise the datapoints
  • Don’t forget to use + to add the layer!
  • Check back with Chapter 2 to see if you can use anything you’ve already learned

Use the R code below to load your data

fig <- ggplot(data, aes(x=conc, y=abs_ratio, color=sample)) +
         geom_point() +
         geom_line()
fig

The lines help to follow individual candidate reporters, but the plot is still jumbled up in the middle, and the similarities between some of the colours make it difficult to follow.

Figure 3.2: A ggplot() graph of reporter absorbance ratios against kanamycin concentration, with lines to aid tracking data.

3.2.3 Use facets to make the visualisation clearer

Another advantage of ggplot2 is that we can quickly make major changes to the layout of a plot, in order to improve visualisation. Here, you will use facets to plot each sample separately in its own smaller subplot (called a facet). This will avoid the visualisation problems caused by overlapping lines with similar colours.

To do this, we use the facet_wrap() styling layer. We need to tell facet_wrap() what variable should be plotted in each separate facet. If we want to place each sample in its own facet, we would use facet_wrap(~sample) - NOTE: the variable sample is preceded by a tilde (~).

Task

Use the WebR cell below to plot your figure with a separate facet for each sample.

  • Use facet_wrap(~sample) to make a separate subplot for each sample.
  • Check back with Chapter 2 to see if you can use anything you’ve already learned

Use the R code below to plot your data

fig <- ggplot(data, aes(x=conc, y=abs_ratio, color=sample)) +
         geom_point() +
         geom_line() +
         facet_wrap(~sample)
fig

Now that we have a separate plot for each sample, it is easy to see which candidate reporters look like they might be worth taking forward. Notice that the \(x\)- and \(y\) axis scales are the same in each facet.

Figure 3.3: A ggplot2 facet plot of reporter absorbance ratios against kanamycin concentration

3.2.4 Tidying up your figure

The current axis labelling of the figure could be improved. You can change the axis labels to something more meaningful by using the labs() styling layer. To change the \(x\)- and \(y\)-axis labels you might use a layer like labs(x="X-axis title", y="Y-axis title").

Task

Use the WebR cell below to change the \(x\)-axis label to “[kanamycin]” and the \(y\)-axis label to “OD700/OD600”.

  • Use labs() with the x= and y= arguments to change the axis labels for your plot
  • Check back with Chapter 2 to see if you can use anything you’ve already learned

Use the R code below to plot your data

fig <- ggplot(data, aes(x=conc, y=abs_ratio, color=sample)) +
         geom_point() +
         geom_line() +
         facet_wrap(~sample) +
         labs(x="[kanamycin]", y="OD700/OD600")
fig
Figure 3.4: A ggplot2 facet plot of reporter absorbance ratios against kanamycin concentration

3.2.5 Make a monochrome plot

You can change the presentation of your plot using the functions you learned in Chapter 2, to generate a monochrome plot ready for publication.

Task

Use the WebR cell below to convert your plot to monochrome.

  • use scale_colour_grey() to convert colours to greyscale
  • use theme_bw() to make the theme black and white
  • use theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank()) to remove grid lines
  • Check back with Chapter 2 to see if you can use anything you’ve already learned

Use the R code below to plot your data

fig <- ggplot(data, aes(x=conc, y=abs_ratio, color=sample)) +
         geom_point() +
         geom_line() +
         facet_wrap(~sample) +
         labs(x="[kanamycin]", y="OD700/OD600") +
         scale_colour_grey() +
         theme_bw() +
         theme(panel.grid.major = element_blank(),
               panel.grid.minor = element_blank())
fig
Figure 3.5: A monochrome ggplot2 facet plot of reporter absorbance ratios against kanamycin concentration

3.3 Summary

Well Done!

After successfully working through this section you should be able to:

  • import reporter gene expression/absorbance data into R
  • use R and ggplot2 to visualise expression/absorbance data
  • interpret the meaning of expression/abundance data
Important

Please answer the questions below in the formative quiz on MyPlace