fslr: Wrapper Functions for FSL ('FMRIB' Software Library) from Functional MRI of the Brain ('FMRIB')

Wrapper functions that interface with 'FSL' <http://fsl.fmrib.ox.ac.uk/fsl/fslwiki/>, a powerful and commonly-used 'neuroimaging' software, using system commands. The goal is to be able to interface with 'FSL' completely in R, where you pass R objects of class 'nifti', implemented by package 'oro.nifti', and the function executes an 'FSL' command and returns an R object of class 'nifti' if desired.

Install the latest version of this package by entering the following in R:
AuthorJohn Muschelli <muschellij2@gmail.com>
Date of publication2017-03-07 01:06:25
MaintainerJohn Muschelli <muschellij2@gmail.com>

View on CRAN

Man pages

aux_file-methods: Extract Image aux.file attribute

bitpix-methods: Extract Image bitpix attribute

cal_max-methods: Extract Image cal.max attribute

cal_min-methods: Extract Image cal.min attribute

check_file: Wrapper for getForms with filename

checkout: Determine of Q and S forms are consistent

data_type-methods: Extract Image data_type attribute

datatype-methods: Extract Image datatype attribute

descrip-methods: Extract Image descrip attribute

dim_-methods: Extract Image dim_ attribute

download_fsl: Download FSL

dtifit: DTI Fitting Procedure from FSL

eddy_correct: Eddy Current Correction

fast: FSL FAST

fast.help: FAST help

flirt: Register using FLIRT

flirt_apply: Apply Warp from FLIRT

flirt.help: FLIRT help

fnirt: Register using FNIRT

fnirt.help: FNIRT help

fnirt_with_affine: Register using FNIRT, but doing Affine Registration as well

fnirt_with_affine_apply: Applies FLIRT then FNIRT transformations

fslabs: Absolute Value Image using FSL

fslabs.help: fslabs Help

fslacos: Arc Cosine Transform Image using FSL

fslacos.help: fslacos Help

fsladd: Add Images using FSL

fsladd.help: fsladd Help

fsl_anat: FSL Anatomical Processing Script

fsl_anat.help: fsl_anat help

fsl_applywarp: Apply Warp from FNIRT

fsl_applywarp.help: FSL applywarp help

fslasin: Arc Sine Transform Image using FSL

fslasin.help: fslasin Help

fslatan: Arc Tangent Transform Image using FSL

fslatan.help: fslatan Help

fsl_atlas_dir: Get FSL's Standard Data Directory

fsl_avscale: Scale Affine Matrix using 'avscale'

fslbet: Use FSL's Brain Extraction Tool (BET)

fslbet.help: Help for FSL BET

fsl_biascorrect: FSL Bias Correct

fslbin: Binarize Image using FSL

fslbin.help: fslbin Help

fsl_bin_tab: Quick Tabulation for logical images

fslbinv: Binarized Inverse Image using FSL

fslbinv.help: fslbinv Help

fslchfiletype: FSL Change file type

fslchfiletype.help: fslchfiletype help

fslcmd: FSL Command Wrapper

fslcog: Image Center of Gravity (FSL)

fslcos: Cosine Transform Image using FSL

fslcos.help: fslcos Help

fslcpgeom: FSL Copy Geometry

fslcpgeom.help: fslcpgeom help

fsl_data_dir: Get FSL's Data Directory

fsl_dice: Calculate Dice Coefficient of 2 Binary images

fsldilate: Dilate image using FSL

fsldir: Get FSL's Directory

fsldiv: Divide Images using FSL

fsldiv.help: fsldiv Help

fsledge: Edge Strength Image using FSL

fsledge.help: fsledge Help

fslentropy: Image Mean Entropy

fslerode: Erode image using FSL

fslerode.help: fslerode Help

fslexp: Exponentiate Image using FSL

fslexp.help: fslexp Help

fslfill: Fill image holes

fslfill2: Fill image holes with dilation then erosion

fslfill.help: fslfill Help

fslhd: Get NIfTI header using FSL

fslhd.help: FSLhd help

fslhd.parse: Parse FSL Header

fslhelp: Wrapper for getting fsl help

fslindex: Index Image using FSL

fslindex.help: fslindex Help

fsllog: Log Transform Image using FSL

fsllog.help: fsllog Help

fslmask: Mask image using FSL

fslmask.help: fslmask Help

fslmaths: FSL Maths

fslmaths.help: FSL Maths Help

fslmean: Image Mean

fslmerge: Merge images using FSL

fslmerge.help: FSLMerge help

fslmin_max: Get min/max of an image

fslmul: Multiply Images using FSL

fslmul.help: fslmul Help

fslnan: Replace NaNs in Image using FSL

fslnan.help: fslnan Help

fslnanm: Mask NaNs in Image using FSL

fslnanm.help: fslnanm Help

fslorient: FSL Orient

fslorienter: Wrapper for FSL Get Orientation

fslorient.help: fslorient help

fslorient_wrap: FSL Orientation Wrappers

fslrand: Add Random Uniform Noise Image using FSL

fslrand.help: fslrand Help

fslrandn: Add Random Standard Guassian Noise Image using FSL

fslrandn.help: fslrandn Help

fslrange: Get range of an image

fslrecip: Reciprocal Image using FSL

fslrecip.help: fslrecip Help

fslrem: Modulus Remainder of 2 Images using FSL

fslrem.help: fslrem Help

fslreorient2std: FSL Orient to MNI

fslreorient2std.help: fslreorient2std help

fslrobustfov: FSL Robust Field of View

fslrobustfov.help: FSL Robust Field of View Help

fslroi: FSL ROI

fslsd: Image Standard Deviation

fslsin: Sine Transform Image using FSL

fslsin.help: fslsin Help

fslslicetimer: FSL Slice Timing Correction

fslsmooth: Gaussian smooth image using FSL

fslsmooth.help: fslsmooth Help

fslsmooth_in_mask: Smooth Image Within a Mask Only

fslsplit: Split images using FSL

fslsplit.help: FSL Split help

fslsqr: Square Image using FSL

fslsqr.help: fslsqr Help

fslsqrt: Square Root Image using FSL

fslsqrt.help: fslsqrt Help

fslstats: FSL Stats

fslstats.help: FSL Stats Help

fsl_std_dir: Get FSL's Standard Data Directory

fslsub: Subtract Images using FSL

fslsub2: Subsample image by factor of 2

fslsub2.help: fslsub2 Help

fslsub.help: fslsub Help

fslsum: FSL Sum

fslswapdim: FSL Swap Dimensions

fslswapdim.help: fslswapdim help

fsltan: Tangent Transform Image using FSL

fsltan.help: fsltan Help

fslthresh: Threshold an image

fslthresh.help: fslthresh Help

fslval: Get value from FSL header

fslval.help: fslval help

fsl_version: Find FSL Version

fslview: Open image in FSLView

fslview.help: FSLView help

fslvol: FSL Volume in mL (or cubic centimeters)

fslvolume: Image Volume

getForms: Get Q and S Forms of orientation matrix

get.fsl: Create command declaring FSLDIR

get.fsloutput: Determine FSL output type

get.imgext: Determine extension of image based on FSLOUTPUTTYPE

have.fsl: Logical check if FSL is accessible

intent_code-methods: Extract Image intent_code attribute

intent_name-methods: Extract Image intent_name attribute

intent_p1-methods: Extract Image intent_p1 attribute

intent_p2-methods: Extract Image intent_p2 attribute

intent_p3-methods: Extract Image intent_p3 attribute

magic-methods: Extract Image magic attribute

mcflirt: FSL Motion Correction

mcflirt.help: MCFLIRT help

melodic: Run MELODIC ICA

melodic.help: MELODIC help

mid_sagittal_align: Mid-Sagittal Plane Alignment

mni_fname: Construct MNI Filename

mni_img: Read MNI Filename

orientation-methods: Extract NIfTI 3D Image Orientation

parse_avscale: Parse output from 'avscale'

pixdim-methods: Extract Image pixdim attribute

probtrackx: Probabilistic diffusion tractography with multiple fibre...

qform_code-methods: Extract Image qform_code attribute

readrpi: Read NIfTI file reoriented to RPI

reverse_rpi_orient: Reverse Reorientation an Image to RPI orientation

rpi_orient: Reorient an Image to RPI orientation

run_first_all: Run FIRST All

run_first_all.help: Run FIRST All Help

scl_inter-methods: Extract Image scl_inter attribute

scl_slope-methods: Extract Image scl_slope attribute

sform_code-methods: Extract Image sform_code attribute

sizeof_hdr-methods: Extract Image sizeof_hdr attribute

slice_code-methods: Extract Image slice_code attribute

slice_duration-methods: Extract Image slice_duration attribute

slice_end-methods: Extract Image slice_end attribute

slice_start-methods: Extract Image slice_start attribute

susan: FSL SUSAN noise reduction

susan.help: FSL SUSAN Help

toffset-methods: Extract Image toffset attribute

topup: topup - calling FSL topup

vox_offset-methods: Extract Image vox_offset attribute

xfibres: Bayesian Estimation of Diffusion Parameters Obtained using...


aux.file,character-method Man page
aux.file-methods Man page
avscale Man page
bedpostx Man page
bitpix,character-method Man page
bitpix-methods Man page
cal.max,character-method Man page
cal.max-methods Man page
cal.min,character-method Man page
cal.min-methods Man page
check_file Man page
checkout Man page
data_type,character-method Man page
datatype,character-method Man page
data_type-methods Man page
datatype-methods Man page
descrip,character-method Man page
descrip-methods Man page
dim_,character-method Man page
dim_-methods Man page
download_fsl Man page
dtifit Man page
eddy_correct Man page
fast Man page
fast.help Man page
flirt Man page
flirt_apply Man page
flirt_apply.help Man page
flirt.help Man page
fnirt Man page
fnirt.help Man page
fnirt_with_affine Man page
fnirt_with_affine_apply Man page
fslabs Man page
fsl_abs Man page
fslabs.help Man page
fslacos Man page
fsl_acos Man page
fslacos.help Man page
fsladd Man page
fsl_add Man page
fsladd.help Man page
fsl_anat Man page
fsl_anat.help Man page
fsl_applywarp Man page
fsl_applywarp.help Man page
fslasin Man page
fsl_asin Man page
fslasin.help Man page
fslatan Man page
fsl_atan Man page
fslatan.help Man page
fsl_atlas_dir Man page
fsl_avscale Man page
fslbet Man page
fsl_bet Man page
fslbet.help Man page
fsl_biascorrect Man page
fslbin Man page
fsl_bin Man page
fslbin.help Man page
fsl_bin_tab Man page
fslbinv Man page
fsl_binv Man page
fslbinv.help Man page
fslchfiletype Man page
fslchfiletype.help Man page
fslcmd Man page
fslcog Man page
fslcos Man page
fsl_cos Man page
fslcos.help Man page
fslcpgeom Man page
fslcpgeom.help Man page
fsl_data_dir Man page
fsl_dice Man page
fsldilate Man page
fsl_dilate Man page
fsldir Man page
fsl_dir Man page
fsldiv Man page
fsl_div Man page
fsldiv.help Man page
fsledge Man page
fsl_edge Man page
fsledge.help Man page
fslentropy Man page
fslentropy.help Man page
fslerode Man page
fsl_erode Man page
fslerode.help Man page
fslexp Man page
fsl_exp Man page
fslexp.help Man page
fslfill Man page
fsl_fill Man page
fslfill2 Man page
fslfill.help Man page
fslgetorient Man page
fslgetqform Man page
fslgetqformcode Man page
fslgetsform Man page
fslgetsformcode Man page
fslhd Man page
fslhd.help Man page
fslhd.parse Man page
fslhelp Man page
fslindex Man page
fsl_index Man page
fslindex.help Man page
fsllog Man page
fsl_log Man page
fsllog.help Man page
fslmask Man page
fsl_mask Man page
fslmask.help Man page
fslmaths Man page
fsl_maths Man page
fslmaths.help Man page
fslmax Man page
fslmean Man page
fslmean.help Man page
fslmerge Man page
fsl_merge Man page
fslmerge.help Man page
fslmin Man page
fslmul Man page
fsl_mul Man page
fslmul.help Man page
fslnan Man page
fsl_nan Man page
fslnan.help Man page
fslnanm Man page
fsl_nanm Man page
fslnanm.help Man page
fslorient Man page
fslorienter Man page
fslorient.help Man page
fslrand Man page
fsl_rand Man page
fslrand.help Man page
fslrandn Man page
fsl_randn Man page
fslrandn.help Man page
fslrange Man page
fslrange.help Man page
fslrecip Man page
fsl_recip Man page
fslrecip.help Man page
fslrem Man page
fsl_rem Man page
fslrem.help Man page
fslreorient2std Man page
fslreorient2std.help Man page
fslrobustfov Man page
fsl_robustfov Man page
fslrobustfov.help Man page
fslroi Man page
fslsd Man page
fslsd.help Man page
fslsin Man page
fslsin.help Man page
fslslicetimer Man page
fsl_slicetimer Man page
fslsmooth Man page
fsl_smooth Man page
fslsmooth.help Man page
fsl_smooth_in_mask Man page
fslsmooth_in_mask Man page
fslsplit Man page
fsl_split Man page
fslsplit.help Man page
fslsqr Man page
fsl_sqr Man page
fslsqr.help Man page
fslsqrt Man page
fsl_sqrt Man page
fslsqrt.help Man page
fslstats Man page
fslstats.help Man page
fsl_std_dir Man page
fslsub Man page
fsl_sub Man page
fslsub2 Man page
fsl_sub2 Man page
fslsub2.help Man page
fslsub.help Man page
fslsum Man page
fslswapdim Man page
fsl_swapdim Man page
fslswapdim.help Man page
fsltan Man page
fsl_tan Man page
fsltan.help Man page
fslthresh Man page
fsl_thresh Man page
fslthresh.help Man page
fsl_topup Man page
fslval Man page
fslval.help Man page
fslversion Man page
fsl_version Man page
fslview Man page
fslview.help Man page
fslvol Man page
fslvolume Man page
getForms Man page
get_fsl Man page
get.fsl Man page
get.fsloutput Man page
get.imgext Man page
have_fsl Man page
have.fsl Man page
intent_code,character-method Man page
intent_code-methods Man page
intent_name,character-method Man page
intent_name-methods Man page
intent_p1,character-method Man page
intent_p1-methods Man page
intent_p2,character-method Man page
intent_p2-methods Man page
intent_p3,character-method Man page
intent_p3-methods Man page
magic,character-method Man page
magic-methods Man page
mcflirt Man page
mcflirt.help Man page
melodic Man page
melodic.help Man page
mid_sagittal_align Man page
mni_fname Man page
mni_img Man page
parse_avscale Man page
pixdim,character-method Man page
pixdim-methods Man page
probtrackx Man page
qform,character Man page
qform,character-method Man page
qform_code,character-method Man page
qform_code-methods Man page
readrpi Man page
reverse_rpi_orient Man page
reverse_rpi_orient_file Man page
rpi_orient Man page
rpi_orient_file Man page
run_first_all Man page
run_first_all.help Man page
scl_inter,character-method Man page
scl_inter-methods Man page
scl_slope,character-method Man page
scl_slope-methods Man page
sform,character Man page
sform,character-method Man page
sform_code,character-method Man page
sform_code-methods Man page
sizeof_hdr,character-method Man page
sizeof_hdr-methods Man page
slice_code,character-method Man page
slice_code-methods Man page
slice_duration,character-method Man page
slice_duration-methods Man page
slice_end,character-method Man page
slice_end-methods Man page
slice_start,character-method Man page
slice_start-methods Man page
susan Man page
susan.help Man page
toffset,character-method Man page
toffset-methods Man page
topup Man page
vox_offset,character-method Man page
vox_offset-methods Man page
xfibres Man page


inst/doc/dti_data.R inst/doc/fslr.R
R/intent_code.R R/fslvol.R R/fslmin_max.R R/fsl_edge.R R/fslrecip.R R/scl_inter.R R/fslnanm.R R/fsl_dilate.R R/fslexp.R R/fsl_acos.R R/fslvolume.R R/fslcpgeom.R R/probtrackx.R R/fsl_recip.R R/fsl_sqrt.R R/topup.R R/fslbin.help.R R/fslsin.help.R R/fsl_dice.R R/fsl_merge.R R/fslrobustfov.R R/fslbin.R R/fsledge.R R/applywarp.R R/fslsub2.help.R R/mcflirt.R R/fsledge.help.R R/fslchfiletype.R R/fslmask.help.R R/fsl_thresh.R R/fsl_erode.R R/fsl_anat.R R/fslatan.R R/fslrandn.help.R R/fslacos.R R/susan.R R/fsl_maths.R R/fsl_rand.R R/fslnan.R R/fslsqrt.R R/fsl_index.R R/fnirt.R R/fslindex.R R/mni_fname.R R/fslmean.R R/fslasin.help.R R/fsl_randn.R R/fsl_bin.R R/fsl_bet.R R/fsl_rem.R R/fslsub.R R/fsl_cos.R R/fsldiv.R R/sizeof_hdr.R R/fsldiv.help.R R/fsl_add.R R/bitpix.R R/fslrand.help.R R/fsl_atan.R R/aux_file.R R/fslrem.help.R R/magic.R R/datatype.R R/fslfill2.R R/fsl_nanm.R R/fslhd.R R/fsladd.R R/fslentropy.R R/import_methods.R R/fslatan.help.R R/fslrandn.R R/fslcos.help.R R/fsl_sqr.R R/fslrand.R R/fslsmooth_in_mask.R R/fslsmooth.help.R R/fsltan.R R/intent_p3.R R/cal_min.R R/fslthresh.help.R R/fsl_swapdim.R R/fslsd.R R/fsl_log.R R/slice_duration.R R/intent_p1.R R/dim_.R R/sform_code.R R/fslerode.help.R R/avscale.R R/fsl_mask.R R/fslabs.R R/fsl_data_dir.R R/fslsub.help.R R/slice_end.R R/rpi_orient.R R/fsl_bin_tab.R R/fslmul.help.R R/fsl_nan.R R/fsllog.R R/xfibres.R R/fslrem.R R/slice_start.R R/readrpi.R R/intent_name.R R/eddy_correct.R R/fsl_sub.R R/fslsum.R R/data_type.R R/fsltan.help.R R/fslsplit.R R/fsl_binv.R R/fslsqrt.help.R R/fsl_slicetimer.R R/fslbinv.help.R R/fslsqr.R R/fsl_exp.R R/fsl_asin.R R/fslacos.help.R R/fslsqr.help.R R/fslgetorient.R R/fsl_tan.R R/scl_slope.R R/vox_offset.R R/fslsin.R R/fslmul.R R/qform.R R/slice_code.R R/run_first_all.R R/fsl_version.R R/fsl_sub2.R R/fslcos.R R/sform.R R/fslindex.help.R R/fslexp.help.R R/fsl_mul.R R/fslbinv.R R/toffset.R R/pixdim.R R/fsl_fill.R R/fslrecip.help.R R/mid_sagittal_align.R R/flirt_apply.R R/fslfill.help.R R/fslnanm.help.R R/fsllog.help.R R/fslasin.R R/fslroi.R R/fast.R R/dtifit.R R/fsl_smooth.R R/fsladd.help.R R/intent_p2.R R/fslabs.help.R R/cal_max.R R/fsl_abs.R R/fsl_div.R R/download_fsl.R R/qform_code.R R/descrip.R R/fsldilate.R R/fslnan.help.R
man/fslstats.help.Rd man/get.imgext.Rd man/vox_offset-methods.Rd man/fsl_anat.Rd man/melodic.Rd man/fslbet.Rd man/fslrandn.help.Rd man/dtifit.Rd man/melodic.help.Rd man/fslrem.Rd man/fslrecip.help.Rd man/fslerode.Rd man/intent_code-methods.Rd man/fslrobustfov.help.Rd man/fsl_data_dir.Rd man/fslfill.help.Rd man/fslroi.Rd man/fslatan.Rd man/fsl_avscale.Rd man/cal_min-methods.Rd man/rpi_orient.Rd man/fsl_applywarp.help.Rd man/fslreorient2std.help.Rd man/aux_file-methods.Rd man/have.fsl.Rd man/sform_code-methods.Rd man/fslsin.Rd man/fslsd.Rd man/fslbet.help.Rd man/fslorient.help.Rd man/fslcpgeom.help.Rd man/fslbin.help.Rd man/get.fsl.Rd man/fslindex.help.Rd man/fsldilate.Rd man/dim_-methods.Rd man/download_fsl.Rd man/fslmaths.Rd man/susan.Rd man/fsladd.Rd man/fslcos.Rd man/fslrecip.Rd man/fsl_anat.help.Rd man/fslasin.help.Rd man/fslacos.help.Rd man/fslerode.help.Rd man/run_first_all.help.Rd man/fsl_dice.Rd man/fslsub2.help.Rd man/fsllog.Rd man/fslsmooth.help.Rd man/fslrand.help.Rd man/reverse_rpi_orient.Rd man/fslhd.help.Rd man/eddy_correct.Rd man/fslabs.Rd man/fslsplit.Rd man/mni_img.Rd man/fslnanm.Rd man/fslsmooth.Rd man/fslsplit.help.Rd man/fslmask.Rd man/fslcos.help.Rd man/fslexp.help.Rd man/run_first_all.Rd man/fslsqrt.help.Rd man/fslsin.help.Rd man/fslbinv.help.Rd man/readrpi.Rd man/descrip-methods.Rd man/getForms.Rd man/flirt_apply.Rd man/fslbin.Rd man/fslsub2.Rd man/fslorienter.Rd man/fslexp.Rd man/sizeof_hdr-methods.Rd man/fsllog.help.Rd man/mcflirt.help.Rd man/fsladd.help.Rd man/fslatan.help.Rd man/mni_fname.Rd man/flirt.Rd man/fslsum.Rd man/datatype-methods.Rd man/scl_slope-methods.Rd man/fsl_bin_tab.Rd man/qform_code-methods.Rd man/fslstats.Rd man/fslslicetimer.Rd man/fslhelp.Rd man/slice_code-methods.Rd man/fslbinv.Rd man/fslswapdim.help.Rd man/slice_end-methods.Rd man/fslcog.Rd man/fast.Rd man/fnirt.help.Rd man/fsltan.Rd man/fslrandn.Rd man/fslview.Rd man/intent_name-methods.Rd man/fslrand.Rd man/fsl_biascorrect.Rd man/topup.Rd man/fslhd.parse.Rd man/fslindex.Rd man/fslval.help.Rd man/fsl_version.Rd man/fslsqr.help.Rd man/orientation-methods.Rd man/fslnan.Rd man/fslrem.help.Rd man/fslmaths.help.Rd man/get.fsloutput.Rd man/fsldiv.help.Rd man/fslcpgeom.Rd man/fsl_applywarp.Rd man/fslabs.help.Rd man/fsldiv.Rd man/fslmerge.Rd man/data_type-methods.Rd man/checkout.Rd man/fslthresh.help.Rd man/fast.help.Rd man/fslrobustfov.Rd man/fslvolume.Rd man/fnirt.Rd man/magic-methods.Rd man/fslacos.Rd man/fnirt_with_affine.Rd man/fslsmooth_in_mask.Rd man/cal_max-methods.Rd man/fslhd.Rd man/fslmin_max.Rd man/fslview.help.Rd man/fsl_std_dir.Rd man/fslfill.Rd man/fslcmd.Rd man/fslnanm.help.Rd man/fslnan.help.Rd man/fslsqr.Rd man/flirt.help.Rd man/fslmerge.help.Rd man/fsltan.help.Rd man/fslentropy.Rd man/fslfill2.Rd man/fslmul.help.Rd man/fnirt_with_affine_apply.Rd man/fslval.Rd man/fslsqrt.Rd man/probtrackx.Rd man/fsledge.help.Rd man/fslmul.Rd man/fslorient_wrap.Rd man/fsldir.Rd man/fslsub.Rd man/fslchfiletype.Rd man/fslsub.help.Rd man/fslmask.help.Rd man/slice_duration-methods.Rd man/fsledge.Rd man/bitpix-methods.Rd man/intent_p2-methods.Rd man/scl_inter-methods.Rd man/fsl_atlas_dir.Rd man/fslchfiletype.help.Rd man/toffset-methods.Rd man/pixdim-methods.Rd man/parse_avscale.Rd man/fslreorient2std.Rd man/intent_p3-methods.Rd man/fslswapdim.Rd man/xfibres.Rd man/susan.help.Rd man/check_file.Rd man/fslmean.Rd man/fslvol.Rd man/fslasin.Rd man/mid_sagittal_align.Rd man/intent_p1-methods.Rd man/fslorient.Rd man/fslthresh.Rd man/mcflirt.Rd man/slice_start-methods.Rd man/fslrange.Rd

Questions? Problems? Suggestions? or email at ian@mutexlabs.com.

Please suggest features or report bugs with the GitHub issue tracker.

All documentation is copyright its authors; we didn't write any of that.