cat("## Metadata modifications\n")

# Original metadata name modifications (i.e. renaming colums)
if (!is.null(params$metadata_name_mods_org)) {
  metadata_name_mods_org <- make.names(params$metadata_name_mods_org)
  names(metadata_name_mods_org) <- make.names(names(params$metadata_name_mods_org))
  cat("Changed column names as defined by `metadata_name_mods_org`:\n\n")
  cat(paste(
    paste("*", names(metadata_name_mods_org)),
    metadata_name_mods_org,
    sep = " > ", collapse = "\n")
  )
  biocrates <- modify_metadata_names(
    data = biocrates,
    mapping = metadata_name_mods_org
  )
  cat("\n\n")
}

# Metadata import
if (!is.null(params$metadata_import)){
  cat(paste0(
    "Merged additional metadata from file **", params$metadata_import,
    "** with overlaps handling option '**", params$metadata_import_overlap,
    "**'. "
  ))
  biocrates <- import_metadata(
    data = biocrates,
    metadata_file = params$metadata_import,
    column_duplicates = params$metadata_import_overlap
  )
  cat("\n\n")
}

# Additional metadata name modifications (i.e. renaming colums)
if (!is.null(params$metadata_name_mods_add)) {
  metadata_name_mods_add <- make.names(params$metadata_name_mods_add)
  names(metadata_name_mods_add) <- make.names(names(params$metadata_name_mods_add))
  cat("Changed column names as defined by `metadata_name_mods_add`:\n\n")
  cat(paste(
    paste("*", names(metadata_name_mods_add)),
    metadata_name_mods_add,
    sep = " > ", collapse = "\n")
  )
  biocrates <- modify_metadata_names(
    data = biocrates,
    mapping = metadata_name_mods_add
  )
  cat("\n\n")
}

# Metadata value modifications (e.g. renaming samples, groups, ...)
if (!is.null(params$metadata_value_mods)) {
  metadata_value_mods <- params$metadata_value_mods
  names(metadata_value_mods) <- make.names(names(params$metadata_value_mods))
  cat("Changed values as defined by `metadata_value_mods`:\n\n")
  mods <- metadata_value_mods
  for (col in names(mods)){
    cat(paste0("* ", col, ": "))
    cat(paste(names(mods[[col]]), mods[[col]], sep = " > ", collapse = ", "))
    cat("\n")
  }
  biocrates <- modify_metadata_values(
    data = biocrates,
    mapping = metadata_value_mods
  )
  cat("\n\n")
}

# Metadata extraction (experimental)
for (set in params$metadata_extraction){
  biocrates <- extract_metadata(
    data = biocrates,
    output_column = set$to ,
    split_number = set$position,
    input_column = set$from,
    split_string = set$separator,
    sample_type = SAMPLE_TYPE_BIOLOGICAL)
}


bihealth/metaquac documentation built on Aug. 7, 2021, 8:40 a.m.