library(knitr)
options(EBImage.display = "raster")
library(cytoplot)
library(dplyr)
library(magrittr)
library(purrr)

The minimal set of columns are:

ljosa2013 %>%
  slice(1:5) %>%
  select(Metadata_Plate, Metadata_Well, Metadata_Site, Metadata_pert_id, 
         matches("URL")) %>%
  knitr::kable()

Compute robust maximum intensity per channel to normalize the intensities (otherwise the images appear too dim).

# B02 is DMSO
max_intensity <- 
ljosa2013 %>%
  filter(Metadata_Plate %in% c("Week1_22123", 
                               "Week1_22141", 
                               "Week1_22161") & 
           Metadata_Well == "B02") %>%
  group_by(Metadata_Plate) %>%
  arrange(Metadata_Well, Metadata_Site) %>%
  slice(1:4) %>%
  ungroup() %>% 
  sample_max_intensity()

Select images from a single well

df <-
ljosa2013 %>%
  filter(Metadata_Plate == "Week1_22123" & 
           Metadata_Well %in% c("B03", "B04"))

df %>% 
  select(Metadata_Plate, Metadata_Well, Metadata_Site, 
         Metadata_Compound, Metadata_Concentration) %>%
  arrange(Metadata_Plate, Metadata_Well, Metadata_Site) %>%
  knitr::kable()

Save image montage per well

images <- 
  df %>%
  save_images(per_row = 2, max_intensity = max_intensity)

View one of the montages:

print(images$Week1_22123_B03)

EBImage::rgbImage(
  images$Week1_22123_B03$Actin %>% EBImage::readImage(),
  images$Week1_22123_B03$Tubulin %>% EBImage::readImage(),
  images$Week1_22123_B03$DAPI %>% EBImage::readImage()) %>%
  EBImage::display()

images %>% 
  flatten() %>% 
  walk(file.remove)


shntnu/cytoplot documentation built on April 6, 2020, 12:46 a.m.