Learn R Programming

ANTsR (version 0.3.3)

aslPerfusion: ASL-based Perfusion from PASL, CASL or pCASL.

Description

This function will estimate perfusion from an ASL time series using a (robust) regression approach. It will do motion correction, compcorr, factor out nuisance variables and use regression to estimate the perfusion itself. It will mask the image too based on a simple procedure ( should fix this in the future by allowing the user to optionally pass a mask in from the outside ). WARNING: the function will estimate the m0 image from the mean of the control tags assuming that the data is acquired T C T C as is most of JJ's data. Quantitative CBF can be obtained by mutiplying the output of this function by a scalar.

Usage

aslPerfusion(asl, maskThresh = 0.75, moreaccurate = 1, dorobust = 0.92, m0 = NA, skip = 20, mask = NA, checkmeansignal = 100, moco_results = NULL, regweights = NULL, useDenoiser = NA, useBayesian = 0, verbose = FALSE, ncompcor = 0, N3 = FALSE)

Arguments

asl
input asl image
maskThresh
for estimating a brain mask
moreaccurate
zero, one or two with the last being the most accurate
dorobust
robustness parameter, lower value keeps more data
m0
known M0 if any
skip
stride to speed up robust regression weight estimates
mask
known brain mask
checkmeansignal
throw out volumes with mean lower than this thresh
moco_results
passes prior motion results so moco does not get repeated
regweights
known temporal weights on regression solution, if any
useDenoiser
use the aslDenoiser if this value is a range gt than zero
useBayesian
strength of bayesian prior
verbose
bool
ncompcor
number of compcor parameters
N3
bool correct target image before motion corr

Value

output a list of relevant objects

Examples

Run this code

# image available at http://files.figshare.com/1701182/PEDS012_20131101.zip
# fn<-'PEDS012_20131101_pcasl_1.nii.gz'
# asl<-antsImageRead(fn,4)
set.seed(1)
nvox <- 5*5*5*10
dims <- c(5,5,5,10)
asl <- makeImage( dims , rnorm( nvox )+500 ) %>% iMath("PadImage" , 2 )
aslmean <- getAverageOfTimeSeries( asl )
aslmask <- getMask( aslmean , 0.001 , Inf )
aslmat<-timeseries2matrix( asl, aslmask )
for ( i in 1:10 ) aslmat[,i*2]<-aslmat[,i*2]*2
asl<-matrix2timeseries( asl, aslmask, aslmat )
pcasl.processing <- aslPerfusion( asl, moreaccurate=1, dorobust=0 )
pcasl.processing <- aslPerfusion( asl, moreaccurate=1, ncompcor=2 )
# allow some rejection
pcasl.processing <- aslPerfusion( asl, moreaccurate=1, dorobust=0.925 )

Run the code above in your browser using DataLab