The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
This article is now the older, lower-level companion to
vignette("AnalysisWorkflows"). Read that vignette first if
you want the shortest path to ROI extraction, searchlights, and
split-map-reduce patterns. Use this article when you want more raw
examples of composing those operations with purrr and
direct list-processing.
neuroim2 exposes several operations that split an image
into pieces, let you map a function over those pieces, and then reduce
the results back into a vector, list, or derived image.
The ROI- and searchlight-based split-map-reduce patterns now live in
vignette("AnalysisWorkflows"). This article keeps the
lower-level iteration helpers that are still useful when you want to
split by slices, volumes, or voxel vectors directly.
file_name <- system.file("extdata", "global_mask_v4.nii", package = "neuroim2")
vol <- read_vol(file_name)NeuroVolSuppose we want to split up an image volume by slice and apply a
function to each slice. We can use the slices function to
achieve this as follows:
slice_means <- vol %>% slices %>% map_dbl(~ mean(.))
plot(slice_means, type='l', ylab="mean intensity", xlab="slice number")NeuroVec
objectvec <- concat(vol,vol,vol,vol,vol)
vec
#> <DenseNeuroVec> [3.9 Mb]
#> ── Spatial ─────────────────────────────────────────────────────────────────────
#> Dimensions : 64 x 64 x 25 (5 timepoints)
#> Spacing : 3.5 x 3.5 x 3.7
#> Origin : 112, -108, -46.2
#> Orientation : LAS
#> ── Data ────────────────────────────────────────────────────────────────────────
#> Mean +/- SD : 0.288 +/- 0.453 (t=1)
#> Label : none
mean_vec <- vec %>% vols %>% map_dbl(~ mean(.))
sd_vec <- vec %>% vols %>% map_dbl(~ sd(.))
stopifnot(length(mean_vec) == dim(vec)[4])
stopifnot(length(sd_vec) == dim(vec)[4])NeuroVec
objectvec <- concat(vol,vol,vol,vol,vol)
vec
#> <DenseNeuroVec> [3.9 Mb]
#> ── Spatial ─────────────────────────────────────────────────────────────────────
#> Dimensions : 64 x 64 x 25 (5 timepoints)
#> Spacing : 3.5 x 3.5 x 3.7
#> Origin : 112, -108, -46.2
#> Orientation : LAS
#> ── Data ────────────────────────────────────────────────────────────────────────
#> Mean +/- SD : 0.288 +/- 0.453 (t=1)
#> Label : none
mean_vol <- vec %>% vectors() %>% map_dbl(~ mean(.)) %>% NeuroVol(., space=space(vol))
stopifnot(all(dim(mean_vol) == dim(vol)))These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.