longitudinal_ecg_analysis package
Subpackages
- longitudinal_ecg_analysis.dataset_curators package
- longitudinal_ecg_analysis.feature_extractors package
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:
objectRepresents 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)