Skip to contents

Filter catalog files based on metadata conditions.

Usage

# S3 method for class 'image_catalog'
subset(x, subset, ...)

Arguments

x

An image_catalog object.

subset

Logical expression evaluated in the context of metadata columns.

...

Additional arguments (ignored).

Value

A filtered image_catalog.

Examples

# Build a tiny study tree with empty placeholder files
root <- tempfile("study_")
for (s in c("01", "02")) {
  d <- file.path(root, paste0("sub-", s))
  dir.create(d, recursive = TRUE)
  invisible(file.create(file.path(d, c("cope1.nii.gz", "varcope1.nii.gz"))))
}
catalog <- image_catalog(root, "sub-*/*.nii.gz",
                         path_regex = "sub-(?<subject>[^/]+)")

catalog <- assign_meta(catalog, "stat_type", "^([a-z]+)[0-9]+")

# Keep only files from subject "01"
sub_catalog <- subset(catalog, subject == "01")
sub_catalog
#> Image Catalog
#>   Files: 2
#>   Root: /tmp/Rtmp17Odxi/study_1cecbd8219a
#>   Pattern: sub-*/*.nii.gz
#>   Metadata columns: subject, stat_type
#>   Subjects: 1 (01)

# Multiple conditions
sub_catalog <- subset(catalog, subject %in% c("01", "02") & stat_type == "cope")
sub_catalog$metadata$basename
#> [1] "cope1.nii.gz" "cope1.nii.gz"

unlink(root, recursive = TRUE)