TFA {clintools}R Documentation

Transfer function analysis of dynamic cerebral autoregulation (TFA)

Description

TFA() calculates dynamic cerebral autoregulation trough a transfer function analysis from a continuous recording. This function follows the recommendations from Claassen et al. [1] and mimicks the matlab script created by David Simpsons in 2015 (Matlab TFA function). TFA() also includes the possibility to analyse raw recordings with application of cyclic (beat-to-beat) average with the possiblity of utilizing interpolation. (see details).

Usage

TFA(df, variables,
trigger = NULL, deleter = NULL,
freq = 1000, fast = 50, raw_data = FALSE,
interpolation = 3, output = "table",
vlf = c(0.02,0.07),lf = c(0.07,0.2),
hf = c(0.2,0.5), detrend = FALSE,
spectral_smoothing = 3,
coherence2_thresholds = cbind(c(3:15),
c(0.51,0.40,0.34,0.29,0.25,0.22,0.20,0.18,
0.17,0.15,0.14,0.13,0.12)),
apply_coherence2_threshold = TRUE,
remove_negative_phase = TRUE,
remove_negative_phase_f_cutoff = 0.1,
normalize_ABP = FALSE,
normalize_CBFV = FALSE,
window_type = 'hanning',
window_length = 102.4,
overlap = 59.99,
overlap_adjust = TRUE,
na_as_mean = TRUE)

Arguments

df

Raw continuous recording with numeric data and first column has to be time in seconds. (dataframe)

variables

Definition of the type and order of recorded variables as a list. Middle cerebral artery blood velocity ('mcav') and arterial blood pressure ('abp') is currently supported. (list)

trigger

Trigger with two columns: first is start, and second is end of period to be analyzed. Every row is a period for analysis. Default is NULL, which results in analysis of the full dataframe. (dataframe)

deleter

Deleter with two columns: first is start and second is end of period with artefacts, which need to be deleted. Every row is a period with artefacts. Default is NULL. (dataframe)

freq

Frequency of recorded data, in Hz. Default is 1000. (numeric)

fast

Select if you want the data to aggregated resulting in a faster, but perhaps more imprecise run, in Hz. Default is 50 (numeric)

raw_data

Select TRUE if the data is raw and cyclic mean should be calculated. NB: this function have not been validated, why validated methods for calculating cyclic mean are preferred. Only 1 period can be analysed using raw_data. Default is FALSE (boolian)

interpolation

Select the number of beats which should be interpolated. Default is up to 3 beats and 0 results in no interpolation. (numeric)

output

Select what the output should be. 'table' results in a dataframe with values for the three frequencies defined by Claassen et al. [1]; 'long' results in a dataframe with the results in a long format; 'plot' results in a daframe which can help plot gain, phase and coherence; 'plot-peak' results in a dataframe, which can be used to validate the cyclic average, and 'raw' results in a nested list with results primarily for debugging. Default is 'table'. (string)

vlf, lf, hf, detrend, spectral_smoothing, coherence2_thresholds

See TFA-parameters

apply_coherence2_threshold, remove_negative_phase

See TFA-parameters

remove_negative_phase_f_cutoff, normalize_ABP

See TFA-parameters

normalize_CBFV, window_type, window_length, overlap

See TFA-parameters

overlap_adjust, na_as_mean

See TFA-parameters

Details

Using a continuous raw recording, TFA() calculates dynamic cerebral autoregulation trough a transfer function analysis. This function utilizes the recommendations from Claassen et al [1] and mimicks the matlab script created by David Simpsons in 2015.

View(data)
time abp mcav
7.00 78 45
7.01 78 46
... ... ...
301.82 82 70
301.83 81 69

To calculate the variables insert the data and select the relevant variables.

TFA(df=data, variables=c("abp","mcav"))

See Value for output description.

Value

TFA() returns a dataframe depending on the output selected. 'table' results in a dataframe with values for the three frequencies defined by Claassen et al. [1]; 'long' results in a dataframe with the results in a long format; 'plot' results in a daframe which can help plot gain, phase and coherence; 'plot-peak' results in a dataframe, which can be used to validate the cyclic average, and 'raw' results in a nested list with results primarily for debugging.

Some generic variables are listed below:

output = 'table'

Wide format output table with period, VLF, LF, and HF as columns, and the TFA-variables as rows.

period variable vlf lf hf
1 abp_power 6.25 1.56 0.21
1 cbfv_power 3.22 2.25 0.30
... ... ... ... ...
3 gain_normal 1.04 1.48 1.85
3 phase 53.0 25.4 9.38

output = 'long'

Long format output table which can be manipulated depending on the intended use, with period, interval, variables and values as columns.

period interval variable values
1 hf abp_power 6.25
1 hf cbfv_power 3.22
... ... ... ...
2 vlf gain_norm 1.85
2 vlf phase 9.38

output = 'plot'

Plot format output table which can be used to draw figures with gain, phase and coherence depending on frequency.

period freq gain phase coherence
1 0.00 0.16 0.00 0.04
1 0.01 0.29 4.22 0.29
... ... ... ... ...
2 1.55 1.15 -43.2 0.64
2 1.56 1.16 -41.1 0.42

TFA-paramters

A series of parameters that control TFA analysis (window-length, frequency bands …). If this is not provided, default values, corresponding to those recommended in the white paper, will be used. These default values are given below for each parameter.

References

  1. Claassen et al. (2016) J Cereb Blood Flow Metab. 2016 Apr;36(4):665-80. (PubMed)

Examples

data(tfa_sample_data)
TFA(tfa_sample_data[,c(1:3)], variables=c("abp","mcav"), freq=10)


[Package clintools version 0.9.10.1 Index]