Usage

HyperIT uses a Class/OOP framework, allowing multiple instances of HyperIT objects (instantiated with different data). MI, TE, and $Phitext{ID}$ atoms can be computed by calling the following functions:

from hyperit import HyperIT

# Only needs to be called once, pass file location of local infodynamics.jar
HyperIT.setup_JVM(jarLocation)

# Gather your data here ...

# Create instance
it = HyperIT(data1, data2, channel_names, sfreq, freq_bands, verbose)

# ROIs can be specified and then reset back to default
it.roi(roi_list)
it.reset_roi()

# Calculate Mutual Information and Transfer Entropy
mi = it.compute_mi(estimator_type='kernel', include_intra=True, calc_sigstats=True, vis=True, plot_epochs=[1,6])
te = it.compute_te(estimator_type='gaussian', include_intra=False, calc_sigstats=True, vis=True, plot_epochs=[-1])

# Calculate Integrated Information Decomposition
atoms = it.compute_atoms(tau=5, redundancy='mmi', include_intra=True)