Skip to contents

Apply regex patterns to filenames or paths to extract values for new metadata columns.

Usage

assign_meta(
  catalog,
  column,
  pattern,
  source = "basename",
  replacement = "\\1"
)

Arguments

catalog

An image_catalog object.

column

Name of new column to create.

pattern

Regex pattern to match (should contain a capture group).

source

Which existing column to match against. Default "basename".

replacement

Replacement string using backreferences. Default "\\1".

Value

Updated image_catalog.

Examples

root <- tempfile("study_")
d <- file.path(root, "sub-01")
dir.create(d, recursive = TRUE)
invisible(file.create(file.path(d, c("run-1_faces.nii", "run-2_faces.nii",
                                     "run-1_houses.nii"))))
catalog <- image_catalog(root, "sub-*/*.nii")

catalog <- assign_meta(catalog, "run", "run-([0-9]+)", source = "basename")
catalog <- assign_meta(catalog, "contrast", "_([^_]+)\\.nii", replacement = "\\1")
catalog$metadata[, c("basename", "run", "contrast")]
#>           basename run contrast
#> 1  run-1_faces.nii   1    faces
#> 2 run-1_houses.nii   1   houses
#> 3  run-2_faces.nii   2    faces

unlink(root, recursive = TRUE)