Skip to contents

Extract a single assay from a GDS object and return it as a neuroim2::NeuroVec (4D neuroimaging array), stacking along the 4th dimension.

Usage

as_neurovec(
  x,
  assay = "beta",
  along = c("subject", "contrast", "both"),
  subset_subjects = NULL,
  subset_contrasts = NULL
)

Arguments

x

A GDS object with a voxel space.

assay

Name of the assay to extract (default: "beta").

along

Which dimension to stack along the 4th dimension. One of:

  • "subject": Stack subjects (collapses contrasts if multiple).

  • "contrast": Stack contrasts (collapses subjects if multiple).

  • "both": Stack all subject x contrast combinations.

subset_subjects

Optional character vector of subject IDs to include.

subset_contrasts

Optional character vector of contrast names to include

Value

A neuroim2::NeuroVec object with dimensions [x, y, z, n] where n depends on the along parameter.

Examples

if (requireNamespace("neuroim2", quietly = TRUE)) {
  sp4 <- neuroim2::NeuroSpace(c(4, 4, 2, 4), spacing = c(2, 2, 2))
  vec4d <- neuroim2::NeuroVec(array(rnorm(128), c(4, 4, 2, 4)), sp4)
  gds <- as_gds(vec4d, along = "subject", subjects = paste0("sub0", 1:4))

  # Stack all subjects into a 4D volume
  vec <- as_neurovec(gds, assay = "beta", along = "subject")
  print(dim(vec))

  # Stack specific subjects
  vec <- as_neurovec(gds, assay = "beta", along = "subject",
                     subset_subjects = c("sub01", "sub02"))
  print(dim(vec))
}
#> [1] 4 4 2 4
#> [1] 4 4 2 2