Chapter 5 Appendix

5.1 Appendix A – Description of ASPAR_KR packages.

A package is a variation of the classes in Figure 2.1. A list of the packages, and the fields available in them is present in the the terms overview. If a package you need is not available, please refer to Annex 5.2.

5.1.1 Observation unit packages

Default
Standard observational unit. Here you fill in treatments that were applied on the experimental unit itself.

5.1.2 Sample packages

Compost
A sample of compost. It is important to indicate whether it is has azoles in it.
CFUCountCulture
Results of a plate count assay. One can use this package if you put material which originates from a single Sample on plate culture.
AirStrip
A airstrip sample taken according to Kortenbosch et al. (2022).

5.1.3 Assay packages

Like a PCR test result, can be added upon request.

5.2 Appendix B – Extend ASPAR_KR with your own packages.

5.2.1 Planning the addition.

Since it is not possible for the developer of ASPAR_KR to know about all the research data that should be standardised with ASPAR_KR, a package can be requested on gitlab2 If you want to add the package yourself, it is possible, by understanding the class structure of ASPAR_KR Figure 5.1.

Classes availible within the `ASPAR KR` database. Each class `owns' lower level classess. For example, a sample has associated assays.

Figure 5.1: Classes availible within the ASPAR KR database. Each class `owns’ lower level classess. For example, a sample has associated assays.

5.2.2 Adding the packages.3

First we obtain the latest version of the metadata files as such:

suppressMessages(require(tidyverse))
#' Constructs the download link to the FAIRDS metadata files.
#' @param type The type of metadata to obtain.
.meta_data_link_builder <- function(type = "terms") {
  .accepted <- c("terms", "Sample", "Investigation", "ObservationUnit", "Assay")
  if (!(type %in% .accepted)) {
    stop(paste("Given type", type, " is not within", .accepted))
  }
  paste0("https://gitlab.com/m-unlock/fairds-metadata/-/raw/main/", 
         type, ".tsv?ref_type=heads", collapse = "")
}

# Download the terms sheet.
terms <- readr::read_delim(.meta_data_link_builder("terms"))
## Rows: 682 Columns: 7
## ── Column specification ────────────────────────────────────────────────────────────────────────────────────────────────────────────────
## Delimiter: "\t"
## chr (7): Item label, Requirement, Value syntax, Example, Preferred unit, URL...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
sample_meta_data <- readr::read_delim(.meta_data_link_builder("Sample"))
## Rows: 2421 Columns: 4
## ── Column specification ────────────────────────────────────────────────────────────────────────────────────────────────────────────────
## Delimiter: "\t"
## chr (4): # Level, Package name, Item label, Requirement
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

Then we can add a sample:

# add a sample.

.add_package <- function(packages,
                        level = NA,
                        name = NA,
                        label = NA,
                        requirement = NA) {
  .accepted_requirement <- c("optional", "manditory", "ignore");
  for (re in requirement) {
    if (!(requirement %in% .accepted_requirement)) {
      stop(paste("Given requirement", re, 
                 " is not within", .accepted_requirement))
    }  
  }
  
  df <- dplyr::tibble("# Level" = level,
                      "Package name" = name,
                      "Item label" = label,
                      "Requirement" = requirement)
  rbind(df, packages)
}

new_packages <- .add_package(sample_meta_data,
                             level = "Sample",
                             name = "test",
                             label = "label",
                             requirement = "optional")
new_packages
## # A tibble: 2,422 × 4
##    `# Level` `Package name` `Item label`                Requirement
##    <chr>     <chr>          <chr>                       <chr>      
##  1 Sample    test           label                       optional   
##  2 Sample    default        sample identifier           mandatory  
##  3 Sample    default        sample description          mandatory  
##  4 Sample    default        sample name                 mandatory  
##  5 Sample    default        ncbi taxonomy id            mandatory  
##  6 Sample    default        scientific name             mandatory  
##  7 Sample    default        biosafety level             mandatory  
##  8 Sample    default        sampling strategy           optional   
##  9 Sample    default        sample treatment            optional   
## 10 Sample    default        observation unit identifier mandatory  
## # ℹ 2,412 more rows

References

Kortenbosch, Hylke H., Fabienne Van Leuven, Bas J. Zwaan, and Eveline Snelders. 2022. “Catching More Air: An Effective and Simple-to-Use Air Sampling Approach to Assess Aerial Resistance Fractions in Aspergillus Fumigatus.” Preprint. Microbiology. https://doi.org/10.1101/2022.11.03.515058.

  1. See ‘filing issues’ for more information on how to do this.↩︎

  2. Note: It is possible to add packages completely by your self after obtaining push permissions from Jasper Koehorst, but this is out of the scope of this guide.↩︎