Source code for biobss.imutools.acc_correlation

import itertools

import numpy as np
from scipy.stats import pearsonr


[docs]def acc_corr_features(signals: list, signal_names: list, sampling_rate: float) -> dict: """Calculates correlation features for ACC signals. For example: accx_accy_corr: correlation coefficient for x and y axes accx_accz_corr: correlation coefficient for x and z axes accy_accz_corr: correlation coefficient for y and z axes Args: signals (list): List of input signals. signal_names (list): List of signal names. It must have the same order with signal array. sampling_rate (float): Sampling rate of the ACC signal(s) (Hz). Returns: dict: Dictionary of correlation features. """ if np.ndim(signals) == 1: signals = [signals] if isinstance(signal_names, str): signal_names = [signal_names] data = dict(zip(signal_names, signals)) comb = list(itertools.combinations(signal_names, 2)) corr_list = {} for i in comb: try: corr_list["_".join(i) + "_corr"] = pearsonr(data[i[0]], data[i[1]])[0] except: corr_list["_".join(i) + "_corr"] = np.nan return corr_list