Analysis
The Analysis class is designed to facilitate statistical analysis and data visualization.
Parameters
| Name | Type | Description |
|---|---|---|
| data | list, np.ndarray, pd.DataFrame | Data to be analyzed |
Methods
lmer
Perform linear mixed-effects model (lmer) or linear model (lm) comparisons using R's `lme4`, `emmeans` and `nlme` packages.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| control_group | str | 'HC' | The control group to be used for comparisons |
| data_col | str | 'Y' | The name of the data column to be analyzed |
| other_col | list | ['ID', 'Group', 'Epoch', 'Sensor'] | The names of other columns to include in the analysis |
| data_index | int | -1 | The index of the data column to be analyzed (-1 for entire column) |
| models | dict | None | Dictionary of model formulas (keys are model names) |
| bic_models | list | None | List of models to evaluate using BIC |
| anova_tests | dict | None | Dictionary specifying models for ANOVA tests |
| specs | string | None | Specifications for emmeans function in R |
Returns
dict: A dictionary containing analysis results (keys are group comparison names, values are DataFrames)
cohend
Compute Cohen's d for all pairwise group comparisons across sensors.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| control_group | str | 'HC' | The control group to be used for comparisons |
| data_col | str | 'Y' | The name of the data column to be analyzed |
| data_index | int | -1 | The index of the data column to be analyzed (-1 for entire column) |
Returns
dict: A dictionary containing Cohen's d values (keys are group comparison names, values are DataFrames)
EEG_topographic_plot
Generate a topographical plot of EEG data using the 10-20 electrode placement system.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| radius | float | 0.6 | Radius of the head circumference |
| pos | float | 0.0 | Position of the head on the x-axis |
| electrode_size | float | 0.9 | Size of the electrodes |
| label | bool | True | Show the colorbar label |
| ax | matplotlib Axes | None | Axes object to plot the data |
| fig | matplotlib Figure | None | Figure object to plot the data |
| vmin | float | None | Min value used for plotting |
| vmax | float | None | Max value used for plotting |
Features
Class for computing features from electrophysiological data recordings.
Constructor
__init__
Initialize the Features class with specified computation method.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| method | str | 'catch22' | Feature computation method ('catch22', 'power_spectrum_parameterization', 'fEI', 'DFA', or 'hctsa') |
| params | dict | None | Parameters for feature computation |
Methods
catch22
Compute the catch22 features from a time-series sample.
Parameters
| Name | Type | Description |
|---|---|---|
| sample | np.array | Sample data |
Returns
np.array: Array with the catch22 feature values
power_spectrum_parameterization
Power spectrum parameterization of a time-series sample using the FOOOF algorithm.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| sample | np.array | Time-series sample | |
| fs | float | Sampling frequency | |
| fmin | float | Minimum frequency for power spectrum fit | |
| fmax | float | Maximum frequency for power spectrum fit | |
| fooof_setup | dict | Parameters for FOOOF algorithm | |
| r_squared_th | float | 0.9 | Threshold for r_squared value |
| freq_range | list | [30., 200.] | Frequency range for peak search |
| nperseg | int | -1 | Length of each segment for power spectrum |
| compute_knee | bool | False | Whether to compute knee parameter |
Returns
np.array: Array with aperiodic components, peak parameters, and mean power
fEI
Calculates fEI (on a set window size) for a signal.
Parameters
| Name | Type | Description |
|---|---|---|
| signal | array | Amplitude envelope for all channels |
| sampling_frequency | int | Sampling frequency |
| window_size_sec | float | Window size in seconds |
| window_overlap | float | Fraction of overlap between windows (0-1) |
| DFA_array | array | Array of DFA values for thresholding |
| bad_idxes | array | Channels to ignore from computation |
Returns
tuple: (fEI_outliers_removed, fEI_val, num_outliers, wAmp, wDNF)
DFA
Calculates DFA (Detrended Fluctuation Analysis) of a signal.
Parameters
| Name | Type | Description |
|---|---|---|
| signal | array | Amplitude envelope for all channels |
| sampling_frequency | int | Sampling frequency |
| fit_interval | list | Interval (seconds) for DFA exponent fit |
| compute_interval | list | Interval (seconds) for DFA computation |
| overlap | bool | Whether to use 50% window overlap |
| bad_idxes | array | Channels to ignore from computation |
Returns
tuple: (dfa_array, window_sizes, fluctuations, dfa_intercept)
hctsa
Compute hctsa (Highly Comparative Time-Series Analysis) features.
Parameters
| Name | Type | Description |
|---|---|---|
| samples | ndarray/list | Time-series samples |
| hctsa_folder | str | Folder where hctsa is installed |
| workers | int | Number of MATLAB workers |
Returns
list: hctsa features (n_samples × n_features)
compute_features
Compute features from the data using the specified method.
Parameters
| Name | Type | Description |
|---|---|---|
| data | pd.DataFrame | Data containing time-series samples in 'Data' column |
| hctsa_folder | str | Folder where hctsa is installed (if method is 'hctsa') |
Returns
pd.DataFrame: Original data with features appended
FieldPotential
Class for simulating and analyzing field potentials (e.g., LFP, EEG).
Constructor
__init__
Initialize the FieldPotential object.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| kernel | bool | True | Choose to compute kernels. |
| nyhead | bool | False | Use the NYHeadModel for computing EEG. |
| MEEG | str | None | Prepare data structures for computing EEG or MEG signals. Options are 'EEG' or 'MEG'. |
| CDM_shape | int | 15500 | Number of time points in the CDM. |
Methods
create_kernel
Create kernels from multicompartment neuron network descriptions.
Parameters
| Name | Type | Description |
|---|---|---|
| MC_folder | str | Path to the folder containing the multicompartment neuron network descriptions. |
| output_path | str | Path to the output folder. |
| params | module | Network parameters module. |
| biophys | list | List of biophysical membrane properties. |
| dt | float | Time step. |
| tstop | float | Simulation time. |
| electrodeParameters | dict | Electrode parameters. If None, no LFP is computed. |
| CDM | bool | Compute the current dipole moment. |
Returns
dict: Dictionary containing the kernels.
compute_MEEG
Compute EEG/MEG from a current dipole moment using the NYHeadModel or a homogeneous volume conductor model.
Parameters
| Name | Type | Description |
|---|---|---|
| CDM | np.array | Current dipole moment. |
| location | np.array | Location of the dipole moment. |
| cMEG | bool | Compute MEG instead of EEG. |
Returns
list: MEEG at the electrode/sensor locations.
compute_proxy
Compute a proxy for the extracellular signal by combining variables directly measured from network simulations.
Parameters
| Name | Type | Description |
|---|---|---|
| method | str | Method to compute the proxy (e.g., 'FR', 'AMPA', 'GABA'). |
| sim_data | dict | Dictionary containing the simulation data. |
| sim_step | float | Simulation time step in ms. |
Returns
np.array: Proxy for the extracellular signal.
Inference
General-purpose class for inferring parameters from simulated or observed features using either Bayesian inference (with SBI) or regression (with sklearn).
Constructor
__init__
Initialize the Inference class with the specified model and hyperparameters.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| model | str | Name of the machine-learning model to use (e.g., regression models from sklearn or NPE, NLE, NRE from SBI). | |
| hyperparams | dict | None | Dictionary of hyperparameters for the model. |
Methods
add_simulation_data
Add features and parameters to the training data.
Parameters
| Name | Type | Description |
|---|---|---|
| features | np.ndarray | Features. |
| parameters | np.ndarray | Parameters to infer. |
initialize_sbi
Initialize the SBI inference method (NPE, NLE, or NRE) using the appropriate neural estimator.
Parameters
| Name | Type | Description |
|---|---|---|
| hyperparams | dict | Dictionary of hyperparameters required to set up the inference method. |
Returns
object: Configured SBI inference object ready for appending simulations and training.
train
Train the model using either SBI or sklearn depending on configuration.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| param_grid | list | None | List of dictionaries of hyperparameters to search over. |
| n_splits | int | 10 | Number of splits for RepeatedKFold cross-validation. |
| n_repeats | int | 10 | Number of repeats for RepeatedKFold cross-validation. |
| train_params | dict | {'learning_rate': 0.0005, 'training_batch_size': 256} | Dictionary of training parameters for SBI. |
predict
Predict parameters for new input features.
Parameters
| Name | Type | Description |
|---|---|---|
| features | np.ndarray | Features to predict parameters for. |
Returns
list: List of predictions.
sample_posterior
Sample from the posterior distribution for a given observation.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
| x | np.ndarray | Observed feature vector (1D array). | |
| num_samples | int | 10000 | Number of posterior samples to draw. |
Returns
np.ndarray: Array of posterior samples.
Simulation
Class for managing and running simulation scripts with specified parameters and output folders.
Constructor
__init__
Initialize the Simulation class with folder paths for parameters, Python scripts, and output.
Parameters
| Name | Type | Description |
|---|---|---|
| param_folder | str | Path to the folder containing parameter files. |
| python_folder | str | Path to the folder containing Python scripts. |
| output_folder | str | Path to the folder where the output files will be saved. |
Methods
network
Run a network simulation script with the specified parameters.
Parameters
| Name | Type | Description |
|---|---|---|
| script_path | str | Name of the Python script to run (relative to python_folder). |
| param_path | str | Name of the parameter file to use (relative to param_folder). |
simulate
Run a simulation script with the specified parameters.
Parameters
| Name | Type | Description |
|---|---|---|
| script_path | str | Name of the Python script to run (relative to python_folder). |
| param_path | str | Name of the parameter file to use (relative to param_folder). |
analysis
Run an analysis script with the specified parameters.
Parameters
| Name | Type | Description |
|---|---|---|
| script_path | str | Name of the Python script to run (relative to python_folder). |
| param_path | str | Name of the parameter file to use (relative to param_folder). |