@@ -101,7 +101,7 @@ gen_sample_dataset <- function(D, nobs, response_type=c("categorical", "continuo
101
101
dset <- mvpa_dataset(train_data = bvec ,mask = mask )
102
102
}
103
103
} else {
104
- fname <- system.file(" extdata/std.lh.smoothwm .asc" , package = " neuroim2 " )
104
+ fname <- system.file(" extdata/std.8_lh.inflated .asc" , package = " neurosurf " )
105
105
geom <- neurosurf :: read_surf_geometry(fname )
106
106
nvert <- nrow(neurosurf :: vertices(geom ))
107
107
mat <- matrix (rnorm(nvert * nobs ), nvert , nobs )
@@ -181,6 +181,21 @@ mvpa_dataset <- function(train_data, test_data=NULL, mask) {
181
181
}
182
182
assert_that(inherits(mask , " NeuroVol" ))
183
183
184
+ # Check for single-voxel datasets (1,1,1,time)
185
+ mask_dims <- dim(mask )[1 : 3 ]
186
+ total_voxels <- prod(mask_dims )
187
+ if (total_voxels < = 1 ) {
188
+ stop(" Invalid dataset: Only 1 voxel detected (dimensions " ,
189
+ paste(mask_dims , collapse = " ×" ),
190
+ " ). Feature RSA analysis requires multiple voxels." )
191
+ }
192
+
193
+ # Check for active voxels in mask
194
+ active_voxels <- sum(mask > 0 )
195
+ if (active_voxels < = 1 ) {
196
+ stop(" Invalid dataset: Only " , active_voxels , " active voxel(s) in mask. Feature RSA analysis requires multiple active voxels." )
197
+ }
198
+
184
199
ret <- structure(
185
200
list (
186
201
train_data = train_data ,
0 commit comments