#' @title Standardized to Template Images SyN
#' @description Normalizes to the template
#' @param orig_t1_pre Skull-stripped T1 image to register to Eve
#' @param t1_pre Normalized T1 Pre
#' @param t1_post Normalized T1 Post
#' @param flair Normalized FLAIR
#' @param t2 Normalized T2
#' @param pd Normalized PD
#' @param outdir output directory
#' @param add_stub Stub to add on the filenames
#'
#' @return NULL
#' @export
#' @importFrom extrantsr registration ants_apply_transforms
z_images = function(orig_t1_pre,
t1_pre,
t1_post,
flair,
t2,
pd,
outdir = ".",
add_stub = "_strip_norm"){
verbose = TRUE
niis = list(FLAIR = flair,
T1_Pre = t1_pre,
T1_Post = t1_post,
T2 = t2,
PD = pd)
# REMOVE NULL
nulls = sapply(niis, is.null)
niis = niis[!nulls]
keep_cols = nii_names = names(niis)
imgs = check_nifti(niis)
stopifnot(all(c("T1_Pre", "FLAIR") %in% nii_names))
if (verbose) {
message("Reading in Images")
}
#############################################
# Columns to keep
#############################################
ofnames = file.path(outdir, keep_cols)
ofnames = outer(ofnames,
c("_Z_Mean", "_Z_Median"),
paste0)
ofnames = paste0(ofnames,
".nii.gz")
# if (!all_exists(ofnames))) {
#############################################
# Get stubs for whitestripes
#############################################
# reg_name = "T1_Pre"
# reg_file = irow[, reg_name]
reg_file = orig_t1_pre
template_brain = system.file("JHU_MNI_SS_T1_brain.nii.gz",
package = "msseg")
outprefix = tempfile()
reg = registration(
filename = reg_file,
template.file = template_brain,
typeofTransform = "SyN",
interpolator = "LanczosWindowedSinc",
verbose = verbose,
remove.warp = FALSE,
copy_origin = TRUE,
outprefix = outprefix
)
# temp = check_nifti(template_brain)
# nrows = length(temp)
native = check_nifti(reg_file)
icol = keep_cols[1]
template_dir = system.file("Normed_Templates",
package = "msseg")
for (icol in keep_cols) {
out_stub = file.path(template_dir,
paste0("Template_", icol))
out_name = paste0(out_stub, "_Median")
med_img = readnii(out_name)
out_name = paste0(out_stub, "_SD")
sd_img = readnii(out_name)
out_name = paste0(out_stub, "_Mean")
mean_img = readnii(out_name)
ofname = file.path(outdir, paste0(icol, add_stub))
nim = check_nifti(imgs[[icol]])
z_mean = finite_img(
(nim - mean_img) /
sd_img )
z_med = finite_img(
(nim - med_img) /
sd_img )
z_mean_native = ants_apply_transforms(
fixed = native,
moving = z_mean,
transformlist = reg$invtransforms,
interpolator = reg$interpolator)
z_mean_native = robust_window(
z_mean_native,
probs = c(0.001, 0.999))
writenii(z_mean_native,
filename = paste0(ofname, "_Z_Mean"))
z_med_native = ants_apply_transforms(
fixed = native,
moving = z_med,
transformlist = reg$invtransforms,
interpolator = reg$interpolator)
z_med_native = robust_window(
z_med_native,
probs = c(0.001, 0.999))
writenii(z_med_native,
filename = paste0(ofname,
"_Z_Median"))
if (verbose) {
message(icol)
}
}
return(invisible(NULL))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.