longitudinal_ecg_analysis package

Subpackages

Submodules

longitudinal_ecg_analysis.compile_for_stats module

compile_for_stats.py

Compile data for statistical analysis.

longitudinal_ecg_analysis.compile_for_stats.do_compile_for_stats(dataset_root_proc_folder, analysis_name)

longitudinal_ecg_analysis.curate_analysis_dataset module

curate_analysis_dataset.py

Curates a subset of a dataset for a particular analysis.

longitudinal_ecg_analysis.curate_analysis_dataset.apply_inclusion_criteria(df, criteria)
longitudinal_ecg_analysis.curate_analysis_dataset.create_list_rel_encs(settings)

Create a list of relevant encounters to be included in the analysis.

Parameters:

settings

Returns:

rel-subjs.csv : A CSV file containing a single column listing the subject IDs for each subject included in the analysis.

Return type:

Writes the following file to disk

longitudinal_ecg_analysis.curate_analysis_dataset.curate_the_analysis_dataset(dataset_root_proc_folder, analysis_name)

Curate a subset of a dataset for a particular analysis.

Parameters:
  • dataset_root_proc_folder (str) – Path to folder containing the settings file (named “dataset_settings.json”) and in which to save the curated dataset.

  • analysis_name (str) – Name of the analysis (e.g. attempt1).

Returns:

Return type:

Writes the following curated data files to disk

longitudinal_ecg_analysis.curate_analysis_dataset.extract_subset_for_analysis(settings)

longitudinal_ecg_analysis.curate_entire_dataset module

curate_entire_dataset.py

Curates an entire dataset so that it can be analysed.

longitudinal_ecg_analysis.curate_entire_dataset.check_dataset_specific_preparation(settings)
longitudinal_ecg_analysis.curate_entire_dataset.curate_the_entire_dataset(dataset_root_proc_folder, redo_everything)

Curate an entire dataset for analysis.

Parameters:
  • dataset_root_proc_folder (str) – Path to folder containing the settings file (named “dataset_settings.json”) and in which to save the curated dataset.

  • redo_everything (bool) – Indicates whether to redo all processing steps

Returns:

Writes curated data files to disk.

longitudinal_ecg_analysis.curate_entire_dataset.derive_additional_standardised_metrics(settings)

Derive additional standardised variables from routine metrics

longitudinal_ecg_analysis.curate_entire_dataset.extract_recording_durations(settings)
longitudinal_ecg_analysis.curate_entire_dataset.obtain_dataset_specific_curation_function(settings)
longitudinal_ecg_analysis.curate_entire_dataset.perform_dataset_specific_data_curation(settings)

longitudinal_ecg_analysis.derive_signal_features module

derive_signal_features.py

Derives signal features for a particular analysis.

class longitudinal_ecg_analysis.derive_signal_features.Signal(values, fs)

Bases: object

Represents a time-series signal with sampling information.

This class stores the signal values, the sampling frequency, and automatically generates a time vector aligned with the values.

v

The signal values (e.g., amplitude samples).

Type:

array-like

fs

Sampling frequency in Hz (samples per second).

Type:

float

t

Time vector corresponding to the signal values, computed as t = np.arange(len(v)) / fs.

Type:

numpy.ndarray

_generate_time_vector()

Generate a time vector based on the signal length and sampling frequency.

longitudinal_ecg_analysis.derive_signal_features.add_prefix_to_columns(metrics, prefix)

Add a prefix to column names in a DataFrame, excluding specified columns.

This function adds the given prefix to all column names in the input DataFrame metrics, except for columns listed in columns_to_skip (which includes “EpochNo” and “subj_id”).

Parameters:
  • metrics (pandas.DataFrame) – The DataFrame whose column names should be updated with a prefix.

  • prefix (str) – The string to prepend to column names that are not excluded.

Returns:

A new DataFrame with updated column names.

Return type:

pandas.DataFrame

Notes

Columns named “EpochNo” and “subj_id” will not be modified.

longitudinal_ecg_analysis.derive_signal_features.aggregate_features_at_encounter_level(settings)
longitudinal_ecg_analysis.derive_signal_features.define_segments(sig_len, fs, settings)
longitudinal_ecg_analysis.derive_signal_features.derive_features_from_ecg(sig, preproc_filepath, feats_filepath, settings)

Derive metrics from an ECG signal

Parameters:
  • sig (a signal (in the class Signal))

  • settings (a dict of universal parameters)

Returns:

metrics

Return type:

a dataframe of metrics

longitudinal_ecg_analysis.derive_signal_features.derive_metrics_from_rec_sig(rec_filepath, filetype, sigtype_dataset, sigtype_standard, settings)
longitudinal_ecg_analysis.derive_signal_features.derive_signal_features_for_analysis(dataset_root_proc_folder, analysis_name)

Derive features from signals for a particular analysis.

Parameters:
  • dataset_root_proc_folder (str) – Path to folder containing the settings file (named “dataset_settings.json”) and in which to save the curated dataset.

  • analysis_name (str) – Name of the analysis (e.g. attempt1).

Returns:

None - results are saved to disk

longitudinal_ecg_analysis.derive_signal_features.extract_features_from_recordings(settings)
longitudinal_ecg_analysis.derive_signal_features.identify_potential_signals(settings)
longitudinal_ecg_analysis.derive_signal_features.identify_relevant_sigtype_dataset(init_sigtype_dataset, signal_labels)
longitudinal_ecg_analysis.derive_signal_features.load_info_on_signal(rec_filepath, filetype, sigtype_dataset)
longitudinal_ecg_analysis.derive_signal_features.load_sig_seg(edf_reader_or_filepath, fs, sampfrom, sampto, channel_idx, filetype)
longitudinal_ecg_analysis.derive_signal_features.perform_preprocessing_for_ecg(sig, preproc_filepath, settings)

Pre-process ECG signal

Parameters:
  • sig (a signal (in the class Signal))

  • settings (a dict of universal parameters)

Return type:

None - results are saved to disk

longitudinal_ecg_analysis.gen_analysis_settings module

gen_analysis_settings.py

Generates a JSON settings file for a given analysis. Can be run as a script or imported as a module.

longitudinal_ecg_analysis.gen_dataset_settings module

gen_dataset_settings.py

Generates a JSON settings file for a given dataset. Can be run as a script or imported as a module. The settings file includes paths to input data, output locations, and analysis parameters.

longitudinal_ecg_analysis.run_demo module

run_demo.py

Runs the key scripts in the longitudinal_ecg_analysis package Usage: python -m longitudinal_ecg_analysis.run_demo <dataset_root_raw_folder> <dataset_root_proc_folder> <dataset_name>

longitudinal_ecg_analysis.stats_analysis module

stats_analysis.py

Perform statistical analysis.

longitudinal_ecg_analysis.stats_analysis.do_stats_analysis(dataset_root_proc_folder, analysis_name)
longitudinal_ecg_analysis.stats_analysis.do_univariate_analysis(enc_vars, response_vars, predictor_vars, settings)
longitudinal_ecg_analysis.stats_analysis.make_tableone(enc_vars, var_types, settings)

longitudinal_ecg_analysis.utils module

utils.py

Common utilities

longitudinal_ecg_analysis.utils.ask_approval_to_create_dir(path)

Ask user for approval before creating a directory.

Return type:

bool

longitudinal_ecg_analysis.utils.create_signal_channel_key(rel_sigs, save_filepath)
longitudinal_ecg_analysis.utils.define_universal_signal_key()
longitudinal_ecg_analysis.utils.ensure_directories_exist(dir_paths)

Ensures each directory in dir_paths exists. If a directory does not exist, it asks for approval to create it. If approval is denied, exits early.

longitudinal_ecg_analysis.utils.function_start_end_print()
longitudinal_ecg_analysis.utils.get_recording_file_extension(filetype)
longitudinal_ecg_analysis.utils.identify_predictor_response_variables(var_list)
longitudinal_ecg_analysis.utils.identify_recs(settings, type)

Obtain details of recordings to be analysed: (i) filepath; (ii) signals in recording

longitudinal_ecg_analysis.utils.identify_req_signals(settings)
longitudinal_ecg_analysis.utils.load_analysis_settings(processing_dir, analysis_name)

Load analysis settings from file.

longitudinal_ecg_analysis.utils.load_dataset_settings(processing_dir, redo_everything=False)

Load dataset settings from file.

longitudinal_ecg_analysis.utils.load_enc_data(settings)
longitudinal_ecg_analysis.utils.load_rec_enc_subj(settings, include_filenames=False)

Load list of recordings and corresponding encounter IDs and subject IDs.

longitudinal_ecg_analysis.utils.load_recording_filepath_root(settings, type)
longitudinal_ecg_analysis.utils.load_rel_encs(settings)
longitudinal_ecg_analysis.utils.obtain_analysis_settings_file_path(dataset_root_proc_folder, analysis_name)

Obtain path of analysis settings file.

longitudinal_ecg_analysis.utils.obtain_custom_analysis_settings(dataset_root_proc_folder, dataset_name, analysis_name, do_demo)
longitudinal_ecg_analysis.utils.obtain_dataset_settings_file_path(dataset_root_proc_folder)

Obtain path of dataset settings file.

longitudinal_ecg_analysis.utils.standardise_name(init_name)

Standardise a name (e.g. of a dataset or an analysis)

longitudinal_ecg_analysis.utils.standardise_sig_name(curr_sig)

Module contents