Censor bad volumes from ASL data.

aslCensoring(
  asl,
  mask = NULL,
  nuis = NA,
  method = "outlier",
  reject.pairs = FALSE,
  ...
)

Arguments

asl

input asl image

mask

mask for calculating perfusion

nuis

fixed nuisance parameters

method

one of 'outlier', 'robust', or 'scor'. See Details.

reject.pairs

whether to reject only tag-control pairs of images, as opposed to single images. Rejecting pairs of images is necessary for non-regression-based ASL averaging methods.

...

Additional arguments to pass to censoring method. See Details.

Value

vector of the same length as number of timepoints in asl, with 1 indicating the corresponding timepoint is included and 0 indicating exclusion.

Details

aslCensoring is an interface to ASL timepoint censoring algorithms. Three options are currently provided, with different additional arguments:

  1. outlier Outlier rejection from Tan et al. This method rejects volumes that are either far from the mean of the time-series or whose standard deviation is far from the standard deviations of the individual volumes. Accepts two additional arguments:

    • sigma.mean: how many standard deviations the mean of the volume can be from the mean of all the volumes before being thrown out.

    • sigma.sd: how many standard deviations from the mean of standard deviations can the standard deviation of the volume be before being thrown out.

  2. robust Uses a robust regression approach to estimate volumes with high leverage. Accepts three arguments:

    • nuis: Nuisance regressors to use as covariates.

    • robthresh: Threshold for weights on leverage estimates. Points with weights under this value will be thrown out; defaults to 0.95.

    • skip: Proportion of points to skip when estimating leverage. Defaults to 20 (1/20 of the image is used).

  3. scor SCOR method of Dolui et al. No parameters.

References

Tan H. et al., “A Fast, Effective Filtering Method for Improving Clinical Pulsed Arterial Spin Labeling MRI,” JMRI 2009.

Author

Kandel BM

Examples

set.seed(1)
nvox <- 5 * 5 * 5 * 30
dims <- c(5, 5, 5, 30)
voxvals <- array(rnorm(nvox) + 500, dim = dims)
voxvals[, , , 5] <- voxvals[, , , 5] + 600
asl <- makeImage(dims, voxvals)
censored <- aslCensoring(asl)