Skip to contents

The NeuroVecSeq class provides a container for managing a sequence of NeuroVec objects, particularly useful for handling time series or multi-session neuroimaging data where each segment may have different lengths.

Constructs a NeuroVecSeq object to represent a variable-length sequence of NeuroVec objects. This is particularly useful for managing time series data where different segments may have different lengths.

Usage

NeuroVecSeq(...)

Arguments

...

One or more instances of type NeuroVec.

Value

A NeuroVecSeq object containing:

  • The provided NeuroVec objects

  • Associated space information

  • Length information for each vector

Details

NeuroVecSeq objects store:

  • A list of NeuroVec objects, each potentially with different time dimensions

  • The lengths of each constituent NeuroVec

  • A combined NeuroSpace object representing the total space

The class provides methods for:

  • Accessing individual time points across all vectors

  • Extracting subsequences

  • Computing statistics across the sequence

  • Linear access to the underlying data

The function performs several validations:

  • Ensures all inputs are NeuroVec objects

  • Verifies spatial compatibility

  • Combines spatial information appropriately

Methods

[[

Extract a single volume at a specified time point

length

Get the total number of time points

sub_vector

Extract a subsequence of volumes

linear_access

Access data linearly across all vectors

See also

NeuroVec for the base vector class, NeuroSpace for spatial information

Examples

if (FALSE) { # \dontrun{
# Create some example NeuroVec objects
v1 <- NeuroVec(array(0, c(5, 5, 5, 2)),
               space = NeuroSpace(dim = c(5, 5, 5, 2)))
v2 <- NeuroVec(array(1, c(5, 5, 5, 4)),
               space = NeuroSpace(dim = c(5, 5, 5, 4)))
v3 <- NeuroVec(array(2, c(5, 5, 5, 6)),
               space = NeuroSpace(dim = c(5, 5, 5, 6)))

# Combine them into a sequence
vs <- NeuroVecSeq(v1, v2, v3)

# Access properties
length(vs)  # Total time points
vs[[5]]     # Get the 5th volume

# Extract a subsequence
sub_seq <- sub_vector(vs, 1:5)
} # }

if (FALSE) { # \dontrun{
# Create sample vectors
v1 <- NeuroVec(array(0, c(5, 5, 5, 2)),
               space = NeuroSpace(dim = c(5, 5, 5, 2)))
v2 <- NeuroVec(array(0, c(5, 5, 5, 4)),
               space = NeuroSpace(dim = c(5, 5, 5, 4)))

# Combine into sequence
vs <- NeuroVecSeq(v1, v2)
print(vs)
} # }