Transform microwell plates with tidyplate

Formating the input data

The input xlsx or csv should be formatted in a specific way:

  • Top left corner must hold the name for that plate.
  • Column names should be: 1, 2, 3, and so on and so forth.
  • Row names should be: A, B, C, and so on and so forth.
  • There must be an empty row between each plate.

Usage

If the input file is an xlsx file it reads the first sheet by default. Users can specify sheet using the sheet argument for an xlsx file. Users can also specify the variable name of column where well ids will be stored (defaults to “well”). Please make sure that well_id argument does not match individual plate names in the input file.

Start by loading tidyplate:

library(tidyplate)

First check if the input file is valid or not:

library(tidyplate)
file <- system.file("extdata", 
                    "example_12_well.xlsx", 
                    package = "tidyplate")
check_plate(file) # No error for valid file
#> example_12_well.xlsx: OK; Plate type: 12-well

incorrect_file <- system.file("extdata",
                              "incorrect_format.csv",
                              package = "tidyplate")
check_plate(incorrect_file) # Error type displayed
#> Error:
#> ! Verify row and column ids in incorrect_format.csv.
#> ℹ Expected column ids: 1, 2, 3, and so on.
#> ℹ Expected row ids: A, B, C, and so on.
#> ℹ Use the `build_plate()` function to build an empty template.

As mentioned above, the formatting of the input file is very important. A csv or excel template for each plate type can be created using the build_plate function:

build_plate(plate_type = 96, 
            n_plates = 2, 
            file_type = "xlsx") # default is csv

If you want to retrieve the names of individual plates:

view_plate_names(file)
#> [1] "drug"             "cell_line"        "percent_survived"

Read and import the file as a tibble:

data <- tidy_plate(file)
#> Plate type: 12-well
head(data)
#> # A tibble: 6 × 4
#>   well  drug      cell_line percent_survived
#>   <chr> <chr>     <chr>                <int>
#> 1 A01   Neomycin  HEK293                  60
#> 2 A02   Puromycin HEK293                  NA
#> 3 A03   Neomycin  Hela                    52
#> 4 A04   Puromycin Hela                    18
#> 5 B01   Neomycin  HEK293                  62
#> 6 B02   Puromycin HEK293                  23

Conversely, a dataframe or tibble can be re-exported back to a plate shaped csv or xlsx file:

generate_plate(data, well_id = "well", plate_type = 12, file = "plate.csv")

For more information on how to use functions on multiple files or multi-sheet excel files read the vignette("advanced").