gpbiometricspy 0.1.0.dev1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. gpbiometricspy/__init__.py +279 -0
  2. gpbiometricspy/_helpers.py +92 -0
  3. gpbiometricspy/_types.py +13 -0
  4. gpbiometricspy/advanced_nonlinear.py +405 -0
  5. gpbiometricspy/advanced_physiology.py +257 -0
  6. gpbiometricspy/alignment_aoi.py +197 -0
  7. gpbiometricspy/aoi_biometrics.py +136 -0
  8. gpbiometricspy/biosppy_style.py +319 -0
  9. gpbiometricspy/cluster_permutation.py +209 -0
  10. gpbiometricspy/compatibility.py +182 -0
  11. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/README.txt +18 -0
  12. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_overview.csv +2 -0
  13. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p001_all_gaze.csv +1921 -0
  14. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p002_all_gaze.csv +1921 -0
  15. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p003_all_gaze.csv +1921 -0
  16. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p004_all_gaze.csv +1921 -0
  17. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p005_all_gaze.csv +1921 -0
  18. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p006_all_gaze.csv +1921 -0
  19. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p007_all_gaze.csv +1921 -0
  20. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p008_all_gaze.csv +1921 -0
  21. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p009_all_gaze.csv +1921 -0
  22. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p010_all_gaze.csv +1921 -0
  23. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p011_all_gaze.csv +1921 -0
  24. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p012_all_gaze.csv +1921 -0
  25. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p013_all_gaze.csv +1921 -0
  26. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p014_all_gaze.csv +1921 -0
  27. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p015_all_gaze.csv +1921 -0
  28. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p016_all_gaze.csv +1921 -0
  29. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p017_all_gaze.csv +1921 -0
  30. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p018_all_gaze.csv +1921 -0
  31. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p019_all_gaze.csv +1921 -0
  32. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p020_all_gaze.csv +1921 -0
  33. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p021_all_gaze.csv +1921 -0
  34. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p022_all_gaze.csv +1921 -0
  35. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p023_all_gaze.csv +1921 -0
  36. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p024_all_gaze.csv +1921 -0
  37. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p025_all_gaze.csv +1921 -0
  38. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p026_all_gaze.csv +1921 -0
  39. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p027_all_gaze.csv +1921 -0
  40. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p028_all_gaze.csv +1921 -0
  41. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p029_all_gaze.csv +1921 -0
  42. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p030_all_gaze.csv +1921 -0
  43. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p031_all_gaze.csv +1921 -0
  44. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p032_all_gaze.csv +1921 -0
  45. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p033_all_gaze.csv +1921 -0
  46. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p034_all_gaze.csv +1921 -0
  47. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p035_all_gaze.csv +1921 -0
  48. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_p036_all_gaze.csv +1921 -0
  49. gpbiometricspy/data/gazepoint_biometrics_kiosk_demo_exports/synthetic_kiosk_trial_design.csv +145 -0
  50. gpbiometricspy/data_io_cleaning.py +392 -0
  51. gpbiometricspy/demo.py +65 -0
  52. gpbiometricspy/deterministic_extensions.py +402 -0
  53. gpbiometricspy/endgame_science.py +480 -0
  54. gpbiometricspy/event_frontdoor.py +216 -0
  55. gpbiometricspy/final_deterministic.py +460 -0
  56. gpbiometricspy/final_remaining.py +652 -0
  57. gpbiometricspy/final_science_bridges.py +359 -0
  58. gpbiometricspy/frontdoor.py +262 -0
  59. gpbiometricspy/governance_core.py +222 -0
  60. gpbiometricspy/governance_extra.py +98 -0
  61. gpbiometricspy/heartpy_style.py +566 -0
  62. gpbiometricspy/intake_alignment.py +551 -0
  63. gpbiometricspy/mne_eeg_lsl.py +230 -0
  64. gpbiometricspy/physiology_qc.py +128 -0
  65. gpbiometricspy/pspm_style.py +366 -0
  66. gpbiometricspy/pupil_gaze.py +180 -0
  67. gpbiometricspy/pupil_qc.py +135 -0
  68. gpbiometricspy/pyhrv_style.py +440 -0
  69. gpbiometricspy/qc_audits_design.py +319 -0
  70. gpbiometricspy/qc_dropouts.py +643 -0
  71. gpbiometricspy/qc_windows_standardization.py +110 -0
  72. gpbiometricspy/release_profile.py +157 -0
  73. gpbiometricspy/remaining_core.py +533 -0
  74. gpbiometricspy/reports.py +147 -0
  75. gpbiometricspy/roadmap_final_gaps.py +616 -0
  76. gpbiometricspy/roadmap_helpers.py +569 -0
  77. gpbiometricspy/schema_io.py +260 -0
  78. gpbiometricspy/scientific_qc.py +163 -0
  79. gpbiometricspy/signal_quality.py +119 -0
  80. gpbiometricspy/user_workflows.py +1101 -0
  81. gpbiometricspy/validity.py +36 -0
  82. gpbiometricspy-0.1.0.dev1.dist-info/METADATA +167 -0
  83. gpbiometricspy-0.1.0.dev1.dist-info/RECORD +86 -0
  84. gpbiometricspy-0.1.0.dev1.dist-info/WHEEL +5 -0
  85. gpbiometricspy-0.1.0.dev1.dist-info/licenses/LICENSE +21 -0
  86. gpbiometricspy-0.1.0.dev1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,279 @@
1
+ from __future__ import annotations
2
+
3
+ from ._types import ParityNotImplementedError, ReportText
4
+ from .physiology_qc import compute_gazepoint_scr_latency, compute_gazepoint_signal_lag_matrix, estimate_gazepoint_respiration_from_ppg, flag_gazepoint_hrv_segments
5
+ from .pupil_gaze import clean_gazepoint_pupil_signal, detect_gazepoint_pupil_blinks, filter_gazepoint_gaze, summarize_gazepoint_fixations
6
+ from .pupil_qc import detect_gazepoint_blinks, plot_gazepoint_missingness, smooth_gazepoint_pupil, validate_gazepoint_metadata
7
+ from .reports import create_gazepoint_audit_report_section, create_gazepoint_methods_section, create_gazepoint_qc_supplement, create_gazepoint_reproducibility_statement
8
+
9
+ from .user_workflows import (
10
+ plot_gazepoint_biometric_signals,
11
+ plot_gazepoint_biometric_quality,
12
+ plot_gazepoint_signal_activity,
13
+ plot_gazepoint_time_resets,
14
+ plot_gazepoint_biometric_report_dashboard,
15
+ plot_gazepoint_eda_decomposition,
16
+ plot_gazepoint_scr_events,
17
+ plot_gazepoint_multimodal_timeline,
18
+ plot_gazepoint_scr_specification_curve,
19
+ create_gazepoint_biometrics_feature_inventory,
20
+ format_gazepoint_biometrics_feature_inventory,
21
+ summarise_gazepoint_biometrics_feature_inventory,
22
+ summarise_gazepoint_full_biometric_windows,
23
+ prepare_gazepoint_multimodal_model_data,
24
+ prepare_gazepoint_biometrics_lme_data,
25
+ summarise_gazepoint_dial_windows,
26
+ join_gazepoint_biometrics_to_gp3tools,
27
+ run_gazepoint_biometrics_real_data_readiness,
28
+ run_gazepoint_biometrics_workflow,
29
+ diagnose_gazepoint_biometrics_workflow,
30
+ summarise_gazepoint_biometrics_workflow,
31
+ create_gazepoint_biometrics_report_tables,
32
+ write_gazepoint_biometrics_report_tables,
33
+ export_gazepoint_biometrics_report_bundle,
34
+ create_gazepoint_biometrics_report,
35
+ )
36
+ from .signal_quality import classify_gazepoint_signal_quality, compute_gazepoint_signal_quality, plot_gazepoint_signal_quality, summarize_gazepoint_signal_quality
37
+ from .aoi_biometrics import summarise_gazepoint_aoi_biometrics, prepare_gazepoint_aoi_biometrics_model_data, plot_gazepoint_aoi_biometrics
38
+ from .alignment_aoi import align_gazepoint_streams_by_events, build_gazepoint_aoi_timecourse, summarize_gazepoint_eventlocked_multimodal, create_gazepoint_quality_dashboard
39
+ from .compatibility import (
40
+ standardize_gazepoint_column_names, standardize_gazepoint_columns,
41
+ validate_gazepoint_format, interpolate_gazepoint_pupil_blinks,
42
+ clean_gazepoint_pupil, respiration_from_ppg, prepare_gazepoint_mixed_model_data,
43
+ )
44
+ from .schema_io import (
45
+ import_gazepoint_data_summary, standardise_gazepoint_biometric_names,
46
+ detect_gazepoint_time_columns, detect_gazepoint_biometric_timebase,
47
+ detect_gazepoint_biometric_schema,
48
+ )
49
+ from .frontdoor import (
50
+ import_gazepoint_biometrics, import_gazepoint_biometric_folder,
51
+ check_gazepoint_biometric_columns, detect_active_biometric_channels,
52
+ validate_gazepoint_biometrics, audit_gazepoint_biometric_missingness,
53
+ )
54
+ from .intake_alignment import (
55
+ extract_gazepoint_ttl_events, align_gazepoint_biometrics_to_ttl,
56
+ sync_gazepoint_biometrics_with_gaze, join_gazepoint_biometrics_to_master,
57
+ chunk_gazepoint_biometrics,
58
+ )
59
+ from .data_io_cleaning import import_gazepoint_data, impute_gazepoint_missing
60
+ from .qc_dropouts import (audit_gazepoint_time_resets, audit_gazepoint_signal_activity, flag_gazepoint_biometric_dropouts, detect_gazepoint_nonwear, summarize_gazepoint_nonwear, filter_gazepoint_signal, upsample_gazepoint_data)
61
+ from .event_frontdoor import (epoch_gazepoint_scr, normalize_gazepoint_scr, flag_gazepoint_rr_outliers, compute_gazepoint_engagement_index, summarize_gazepoint_missingness, detrend_gazepoint_signal, audit_gazepoint_biometrics_file)
62
+ from .validity import summarise_gazepoint_biometric_validity
63
+ from .qc_windows_standardization import (standardise_gazepoint_zscore, standardize_gazepoint_zscore, standardise_gazepoint_range_correction, standardize_gazepoint_range_correction, audit_gazepoint_gsr_quality, audit_gazepoint_hr_quality, audit_gazepoint_engagement_dial, summarise_gazepoint_gsr_windows, summarise_gazepoint_hr_windows, summarise_gazepoint_engagement_windows, summarise_gazepoint_multimodal_windows)
64
+ from .governance_extra import (create_gazepoint_preregistration_checklist, audit_gazepoint_preregistration_consistency, summarize_gazepoint_preregistration_readiness, gazepoint_interoperability_manifest, audit_gazepoint_interoperability_versions, write_gazepoint_interoperability_audit)
65
+ from .governance_core import (create_gazepoint_analysis_decision_log, add_gazepoint_decision, summarise_gazepoint_decision_log, write_gazepoint_decision_log, create_gazepoint_pipeline_map, audit_gazepoint_pipeline_steps, export_gazepoint_pipeline_dot, create_gazepoint_audit_index, summarize_gazepoint_audit_trail, export_gazepoint_audit_trail_markdown, summarize_gazepoint_export_inventory, audit_gazepoint_dataset_structure, create_gazepoint_sidecar_template)
66
+ from .release_profile import (audit_gazepoint_release_readiness, summarize_gazepoint_feature_coverage, create_gazepoint_release_checklist, profile_gazepoint_export_folder, compare_gazepoint_export_profiles, write_gazepoint_export_profile, plot_gazepoint_export_profile)
67
+ from .qc_audits_design import (audit_gazepoint_beats, correct_gazepoint_beats, summarize_gazepoint_beat_corrections, compute_gazepoint_quality_index, audit_gazepoint_session_comparability, summarize_gazepoint_qc_overview, audit_gazepoint_experiment_design, audit_gazepoint_event_coverage, audit_gazepoint_condition_balance, plot_gazepoint_design_coverage)
68
+
69
+
70
+
71
+ from .final_remaining import (
72
+ assign_gazepoint_aoi, audit_gazepoint_smoke_privacy, check_gazepoint_bids,
73
+ create_gazepoint_preregistration_template, create_gazepoint_trial_regressors,
74
+ denoise_gazepoint_eda_autoencoder, denoise_gazepoint_ppg_autoencoder,
75
+ detect_gazepoint_fixations, detect_gazepoint_saccades, export_gazepoint_to_bids,
76
+ flag_gazepoint_artifacts_svm, model_gazepoint_eda_point_process, model_gazepoint_hr_point_process,
77
+ pipeline_comparison_dashboard, prepare_gazepoint_artifact_svm_features,
78
+ prepare_gazepoint_eyetrackingr_input, prepare_gazepoint_gazer_input, prepare_gazepoint_pupillometryr_input,
79
+ preprocess_gazepoint_all, report_gazepoint_data_quality, run_gazepoint_real_data_smoke,
80
+ run_gpbiometrics_shiny, run_gpbiometrics_shiny_annotator, write_gazepoint_real_data_smoke,
81
+ )
82
+
83
+ from .final_science_bridges import (
84
+ analyze_gazepoint_ac_susceptance, run_gazepoint_automated_statistics,
85
+ analyze_gazepoint_cardiorespiratory_causality, compare_gazepoint_conditions_bootstrap,
86
+ prepare_gazepoint_ctsi_input, optimize_gazepoint_cvxeda_tau,
87
+ create_gazepoint_eda_analysis_pipeline, run_gazepoint_eda_analysis_pipeline,
88
+ import_gazepoint_lsl_xdf, run_gazepoint_online_design_optimization,
89
+ prepare_gazepoint_pspm_dcm_input, run_gazepoint_scr_multiverse,
90
+ )
91
+
92
+ from .final_deterministic import (
93
+ standardise_gazepoint_adaptive_ema, standardize_gazepoint_adaptive_ema,
94
+ audit_gazepoint_gsr_units, downsample_gazepoint_data,
95
+ audit_gazepoint_biometric_sampling, summarise_gazepoint_hrv_features,
96
+ summarise_gazepoint_ibi_hrv_windows, recommend_gazepoint_biometric_exclusions,
97
+ baseline_correct_gazepoint_pupil, plot_gazepoint_saccade_main_sequence,
98
+ simulate_gazepoint_eye_data, simulate_gazepoint_biometrics,
99
+ )
100
+
101
+ from .remaining_core import (
102
+ simulate_gazepoint_artifact, generate_gazepoint_manifest, create_gazepoint_dictionary, anonymize_gazepoint_data,
103
+ baseline_correct_gazepoint_gsr, baseline_correct_gazepoint_hr, smooth_gazepoint_biometrics,
104
+ filter_gazepoint_ibi_implausible, compare_gazepoint_hr_ibi_consistency, extract_gazepoint_hrv_features,
105
+ )
106
+
107
+ from .roadmap_helpers import (
108
+ compute_gazepoint_scr_habituation, summarize_gazepoint_scr_recovery,
109
+ summarize_gazepoint_pupil_events, summarize_gazepoint_tracking,
110
+ audit_gazepoint_pupil_luminance, extract_gazepoint_ppg_morphology,
111
+ flag_gazepoint_ppg_quality, import_gazepoint_event_log,
112
+ match_gazepoint_events_to_biometrics, assert_gazepoint_columns,
113
+ gpbiometrics_info, audit_gazepoint_export_schema,
114
+ simulate_gazepoint_multimodal_data, assess_gazepoint_sampling_irregularity,
115
+ diagnose_gazepoint_sync_drift, summarize_gazepoint_aoi_dwell,
116
+ summarize_gazepoint_scanpath_metrics, create_gazepoint_analysis_manifest,
117
+ compute_gazepoint_ppg_template_similarity, compute_gazepoint_hrv_wavelet_psd,
118
+ )
119
+
120
+ from .roadmap_final_gaps import (
121
+ validate_gazepoint_gaze, summarise_gazepoint_fixations_by_aoi,
122
+ summarize_gazepoint_fixations_by_aoi, prepare_gazepoint_bids_eye,
123
+ prepare_gazepoint_bids_physio, write_gazepoint_mne_fif,
124
+ estimate_gazepoint_lsl_clock_offsets,
125
+ )
126
+
127
+ from .advanced_physiology import (
128
+ correct_gazepoint_eda_temperature, extract_gazepoint_beats_kmeans,
129
+ audit_gazepoint_stabilization_period, regress_gazepoint_pupil_luminance,
130
+ model_gazepoint_hrv_ipfm, prepare_gazepoint_ledalab_input,
131
+ prepare_gazepoint_pspm_input, prepare_gazepoint_cvxeda_input,
132
+ classify_gazepoint_eda_response_pattern, extract_gazepoint_bilateral_eda_asymmetry,
133
+ denoise_gazepoint_quantization_noise, extract_gazepoint_edr_pca,
134
+ analyze_gazepoint_skin_potential,
135
+ )
136
+ from .pspm_style import (
137
+ extract_gazepoint_markerinfo_pspm_style, combine_gazepoint_marker_channels_pspm_style,
138
+ trim_gazepoint_biometrics_pspm_style, split_gazepoint_sessions_pspm_style,
139
+ merge_gazepoint_recordings_pspm_style, preprocess_gazepoint_scr_pspm_style,
140
+ extract_gazepoint_segments_pspm_style, create_gazepoint_pspm_glm_design,
141
+ fit_gazepoint_convolution_glm, export_gazepoint_pspm_model_estimates,
142
+ )
143
+
144
+ from .biosppy_style import (
145
+ prepare_gazepoint_biosppy_input, extract_gazepoint_eda_events_biosppy_style,
146
+ estimate_gazepoint_eda_recovery_times, run_gazepoint_biosppy_eda,
147
+ detect_gazepoint_ppg_onsets, extract_gazepoint_ppg_templates, run_gazepoint_biosppy_ppg,
148
+ detrend_gazepoint_rri_window, correct_gazepoint_rri_artifacts_local,
149
+ compute_gazepoint_signal_power_spectrum, compute_gazepoint_signal_band_power,
150
+ compute_gazepoint_signal_phase_locking, compute_gazepoint_signal_correlation,
151
+ )
152
+
153
+ from .cluster_permutation import (
154
+ prepare_gazepoint_timecourse_test_data, run_gazepoint_cluster_permutation,
155
+ summarize_gazepoint_time_clusters, plot_gazepoint_cluster_permutation,
156
+ audit_gazepoint_timecourse_grid, diagnose_gazepoint_cluster_design,
157
+ plot_gazepoint_cluster_null_distribution, report_gazepoint_cluster_permutation,
158
+ run_gazepoint_cluster_threshold_sensitivity, simulate_gazepoint_cluster_timecourse_data,
159
+ export_gazepoint_cluster_results, run_gazepoint_cluster_permutation_anova,
160
+ run_gazepoint_cluster_permutation_lmer, run_gazepoint_tfce,
161
+ run_gazepoint_multidimensional_cluster_permutation, estimate_gazepoint_cluster_onset,
162
+ estimate_gazepoint_cluster_offset, run_gazepoint_cluster_permutation_covariate_adjusted,
163
+ run_gazepoint_cluster_permutation_parallel, export_gazepoint_mne_cluster_input,
164
+ export_gazepoint_permuco_cluster_input, export_gazepoint_permutes_cluster_input,
165
+ )
166
+
167
+ from .mne_eeg_lsl import (
168
+ prepare_gazepoint_mne_events, prepare_gazepoint_mne_input, align_gazepoint_to_eeg,
169
+ create_gazepoint_eye_methods_text, session_info_gazepoint, sync_gazepoint_signals_via_lsl,
170
+ )
171
+
172
+ from .pyhrv_style import (
173
+ prepare_gazepoint_pyhrv_input, extract_gazepoint_pyhrv_nn_intervals,
174
+ compute_gazepoint_pyhrv_nn_diff, compute_gazepoint_pyhrv_heart_rate,
175
+ create_gazepoint_pyhrv_time_vector, check_gazepoint_pyhrv_interval,
176
+ segment_gazepoint_pyhrv_nni, compute_gazepoint_pyhrv_nni_parameters,
177
+ compute_gazepoint_pyhrv_nni_differences_parameters, compute_gazepoint_pyhrv_hr_parameters,
178
+ compute_gazepoint_pyhrv_sdnn, compute_gazepoint_pyhrv_sdnn_index,
179
+ compute_gazepoint_pyhrv_sdann, compute_gazepoint_pyhrv_rmssd,
180
+ compute_gazepoint_pyhrv_sdsd, compute_gazepoint_pyhrv_nnxx,
181
+ compute_gazepoint_pyhrv_nn50, compute_gazepoint_pyhrv_nn20,
182
+ compute_gazepoint_pyhrv_triangular_index, compute_gazepoint_pyhrv_tinn,
183
+ compute_gazepoint_pyhrv_time_domain, compute_gazepoint_pyhrv_welch_psd,
184
+ compute_gazepoint_pyhrv_lomb_psd, compute_gazepoint_pyhrv_ar_psd,
185
+ compute_gazepoint_pyhrv_frequency_domain, compare_gazepoint_pyhrv_psd_methods,
186
+ compute_gazepoint_pyhrv_psd_waterfall, compute_gazepoint_pyhrv_poincare,
187
+ compute_gazepoint_pyhrv_sample_entropy, compute_gazepoint_pyhrv_dfa,
188
+ compute_gazepoint_pyhrv_nonlinear, plot_gazepoint_pyhrv_tachogram,
189
+ plot_gazepoint_pyhrv_hr_heatplot, plot_gazepoint_pyhrv_radar_chart,
190
+ export_gazepoint_pyhrv_results, import_gazepoint_pyhrv_results,
191
+ run_gazepoint_pyhrv_style,
192
+ )
193
+
194
+ from .heartpy_style import (
195
+ prepare_gazepoint_heartpy_input, export_gazepoint_heartpy_input,
196
+ reconstruct_gazepoint_ppg_clipping, enhance_gazepoint_ppg_peaks,
197
+ filter_gazepoint_ppg_butterworth, correct_gazepoint_ppg_hampel,
198
+ detect_gazepoint_ppg_peaks, reject_gazepoint_ppg_peaks,
199
+ compute_gazepoint_ppg_measures, estimate_gazepoint_breathing_rate_from_ibi,
200
+ plot_gazepoint_ppg_peak_detection, create_gazepoint_heartpy_report,
201
+ run_gazepoint_heartpy_crosscheck, estimate_gazepoint_samplerate_mstimer,
202
+ estimate_gazepoint_samplerate_datetime, scale_gazepoint_ppg_signal,
203
+ scale_gazepoint_ppg_sections, flip_gazepoint_ppg_signal,
204
+ remove_gazepoint_ppg_baseline_wander, smooth_gazepoint_ppg_signal,
205
+ filter_gazepoint_ppg_signal, clean_gazepoint_rr_intervals,
206
+ compute_gazepoint_ppg_frequency_measures, process_gazepoint_ppg_heartpy_style,
207
+ process_gazepoint_ppg_segmentwise, plot_gazepoint_ppg_segmentwise,
208
+ plot_gazepoint_ppg_poincare, plot_gazepoint_ppg_breathing,
209
+ check_gazepoint_ppg_binary_quality,
210
+ )
211
+
212
+ from .scientific_qc import (
213
+ audit_gazepoint_ibi_quality, summarise_gazepoint_ibi_windows,
214
+ classify_gazepoint_scr_intervals, flag_kleckner_eda_artifacts,
215
+ convert_gazepoint_gsr_to_conductance, summarise_gazepoint_gsr_tonic_phasic,
216
+ )
217
+
218
+ R_EXPORTS = ['add_gazepoint_decision', 'align_gazepoint_biometrics_to_ttl', 'align_gazepoint_streams_by_events', 'align_gazepoint_to_eeg', 'analyze_gazepoint_ac_susceptance', 'analyze_gazepoint_cardiorespiratory_causality', 'analyze_gazepoint_skin_potential', 'anonymize_gazepoint_data', 'assert_gazepoint_columns', 'assess_gazepoint_hrp_waveform_quality', 'assess_gazepoint_sampling_irregularity', 'assign_gazepoint_aoi', 'audit_gazepoint_beats', 'audit_gazepoint_biometric_missingness', 'audit_gazepoint_biometric_sampling', 'audit_gazepoint_biometric_sync_drift', 'audit_gazepoint_biometrics_file', 'audit_gazepoint_condition_balance', 'audit_gazepoint_dataset_structure', 'audit_gazepoint_distributional_drift', 'audit_gazepoint_eda_artifacts', 'audit_gazepoint_engagement_dial', 'audit_gazepoint_event_coverage', 'audit_gazepoint_experiment_design', 'audit_gazepoint_export_schema', 'audit_gazepoint_gsr_quality', 'audit_gazepoint_gsr_units', 'audit_gazepoint_hr_quality', 'audit_gazepoint_ibi_quality', 'audit_gazepoint_interoperability_versions', 'audit_gazepoint_pipeline_steps', 'audit_gazepoint_preregistration_consistency', 'audit_gazepoint_pupil_luminance', 'audit_gazepoint_release_readiness', 'audit_gazepoint_session_comparability', 'audit_gazepoint_signal_activity', 'audit_gazepoint_smoke_privacy', 'audit_gazepoint_stabilization_period', 'audit_gazepoint_time_resets', 'audit_gazepoint_timecourse_grid', 'baseline_correct_gazepoint_gsr', 'baseline_correct_gazepoint_hr', 'baseline_correct_gazepoint_pupil', 'build_gazepoint_aoi_timecourse', 'calculate_gazepoint_rsa', 'check_gazepoint_bids', 'check_gazepoint_biometric_columns', 'check_gazepoint_plot_contract', 'check_gazepoint_ppg_binary_quality', 'check_gazepoint_pyhrv_interval', 'chunk_gazepoint_biometrics', 'classify_gazepoint_eda_response_pattern', 'classify_gazepoint_scr_intervals', 'classify_gazepoint_signal_quality', 'clean_gazepoint_pupil', 'clean_gazepoint_pupil_signal', 'clean_gazepoint_rr_intervals', 'combine_gazepoint_marker_channels_pspm_style', 'compare_gazepoint_conditions_bootstrap', 'compare_gazepoint_export_profiles', 'compare_gazepoint_hr_ibi_consistency', 'compare_gazepoint_pyhrv_psd_methods', 'compute_gazepoint_engagement_index', 'compute_gazepoint_hrv_wavelet_psd', 'compute_gazepoint_ppg_frequency_measures', 'compute_gazepoint_ppg_measures', 'compute_gazepoint_ppg_template_similarity', 'compute_gazepoint_pyhrv_ar_psd', 'compute_gazepoint_pyhrv_dfa', 'compute_gazepoint_pyhrv_frequency_domain', 'compute_gazepoint_pyhrv_heart_rate', 'compute_gazepoint_pyhrv_hr_parameters', 'compute_gazepoint_pyhrv_lomb_psd', 'compute_gazepoint_pyhrv_nn20', 'compute_gazepoint_pyhrv_nn50', 'compute_gazepoint_pyhrv_nn_diff', 'compute_gazepoint_pyhrv_nni_differences_parameters', 'compute_gazepoint_pyhrv_nni_parameters', 'compute_gazepoint_pyhrv_nnxx', 'compute_gazepoint_pyhrv_nonlinear', 'compute_gazepoint_pyhrv_poincare', 'compute_gazepoint_pyhrv_psd_waterfall', 'compute_gazepoint_pyhrv_rmssd', 'compute_gazepoint_pyhrv_sample_entropy', 'compute_gazepoint_pyhrv_sdann', 'compute_gazepoint_pyhrv_sdnn', 'compute_gazepoint_pyhrv_sdnn_index', 'compute_gazepoint_pyhrv_sdsd', 'compute_gazepoint_pyhrv_time_domain', 'compute_gazepoint_pyhrv_tinn', 'compute_gazepoint_pyhrv_triangular_index', 'compute_gazepoint_pyhrv_welch_psd', 'compute_gazepoint_quality_index', 'compute_gazepoint_scr_habituation', 'compute_gazepoint_scr_latency', 'compute_gazepoint_signal_band_power', 'compute_gazepoint_signal_correlation', 'compute_gazepoint_signal_lag_matrix', 'compute_gazepoint_signal_phase_locking', 'compute_gazepoint_signal_power_spectrum', 'compute_gazepoint_signal_quality', 'convert_gazepoint_gsr_to_conductance', 'correct_gazepoint_beats', 'correct_gazepoint_eda_temperature', 'correct_gazepoint_ppg_hampel', 'correct_gazepoint_rri_artifacts_local', 'create_gazepoint_analysis_decision_log', 'create_gazepoint_analysis_manifest', 'create_gazepoint_audit_index', 'create_gazepoint_audit_report_section', 'create_gazepoint_biometrics_checklist', 'create_gazepoint_biometrics_feature_inventory', 'create_gazepoint_biometrics_methods_text', 'create_gazepoint_biometrics_report', 'create_gazepoint_biometrics_report_tables', 'create_gazepoint_dictionary', 'create_gazepoint_eda_analysis_pipeline', 'create_gazepoint_eye_methods_text', 'create_gazepoint_heartpy_report', 'create_gazepoint_methods_section', 'create_gazepoint_pipeline_map', 'create_gazepoint_preregistration_checklist', 'create_gazepoint_preregistration_template', 'create_gazepoint_pspm_glm_design', 'create_gazepoint_pyhrv_time_vector', 'create_gazepoint_qc_supplement', 'create_gazepoint_quality_dashboard', 'create_gazepoint_release_checklist', 'create_gazepoint_reproducibility_statement', 'create_gazepoint_sidecar_template', 'create_gazepoint_trial_regressors', 'decompose_gazepoint_eda', 'denoise_gazepoint_eda_autoencoder', 'denoise_gazepoint_eda_wavelet', 'denoise_gazepoint_ppg_autoencoder', 'denoise_gazepoint_quantization_noise', 'detect_active_biometric_channels', 'detect_gazepoint_biometric_schema', 'detect_gazepoint_biometric_timebase', 'detect_gazepoint_blinks', 'detect_gazepoint_doubly_stochastic_changepoints', 'detect_gazepoint_fixations', 'detect_gazepoint_nonwear', 'detect_gazepoint_ppg_onsets', 'detect_gazepoint_ppg_peaks', 'detect_gazepoint_pupil_blinks', 'detect_gazepoint_saccades', 'detect_gazepoint_scr_events', 'detect_gazepoint_scr_peaks', 'detect_gazepoint_time_columns', 'detrend_gazepoint_rri_window', 'detrend_gazepoint_signal', 'diagnose_gazepoint_biometrics_workflow', 'diagnose_gazepoint_cluster_design', 'diagnose_gazepoint_sync_drift', 'downsample_gazepoint_data', 'enhance_gazepoint_ppg_peaks', 'epoch_gazepoint_scr', 'estimate_gazepoint_breathing_rate_from_ibi', 'estimate_gazepoint_cluster_offset', 'estimate_gazepoint_cluster_onset', 'estimate_gazepoint_eda_recovery_times', 'estimate_gazepoint_lsl_clock_offsets', 'estimate_gazepoint_respiration_from_ppg', 'estimate_gazepoint_samplerate_datetime', 'estimate_gazepoint_samplerate_mstimer', 'estimate_gazepoint_signal_lag', 'export_gazepoint_audit_trail_markdown', 'export_gazepoint_biometrics_report_bundle', 'export_gazepoint_cluster_results', 'export_gazepoint_heartpy_input', 'export_gazepoint_mne_cluster_input', 'export_gazepoint_permuco_cluster_input', 'export_gazepoint_permutes_cluster_input', 'export_gazepoint_pipeline_dot', 'export_gazepoint_pspm_model_estimates', 'export_gazepoint_pyhrv_results', 'export_gazepoint_rhrv_input', 'export_gazepoint_to_bids', 'extract_gazepoint_beats_kmeans', 'extract_gazepoint_bilateral_eda_asymmetry', 'extract_gazepoint_eda_complexity', 'extract_gazepoint_eda_events_biosppy_style', 'extract_gazepoint_eda_spectral_power', 'extract_gazepoint_eda_tvsymp', 'extract_gazepoint_edr_pca', 'extract_gazepoint_hrv_asymmetry', 'extract_gazepoint_hrv_features', 'extract_gazepoint_hrv_fragmentation', 'extract_gazepoint_hrv_fuzzy_csi', 'extract_gazepoint_hrv_geometric', 'extract_gazepoint_hrv_nonlinear', 'extract_gazepoint_hrv_rcmse', 'extract_gazepoint_hrv_rqa', 'extract_gazepoint_markerinfo_pspm_style', 'extract_gazepoint_pdr_signals', 'extract_gazepoint_ppg_morphology', 'extract_gazepoint_ppg_templates', 'extract_gazepoint_pyhrv_nn_intervals', 'extract_gazepoint_respiration_ceemdan', 'extract_gazepoint_scr_recovery_times', 'extract_gazepoint_segments_pspm_style', 'extract_gazepoint_ttl_events', 'filter_gazepoint_gaze', 'filter_gazepoint_ibi_implausible', 'filter_gazepoint_ppg_butterworth', 'filter_gazepoint_ppg_signal', 'filter_gazepoint_signal', 'fit_gazepoint_convolution_glm', 'flag_gazepoint_artifacts_svm', 'flag_gazepoint_biometric_dropouts', 'flag_gazepoint_hrv_segments', 'flag_gazepoint_mad_artifacts', 'flag_gazepoint_ppg_quality', 'flag_gazepoint_rr_outliers', 'flag_kleckner_eda_artifacts', 'flip_gazepoint_ppg_signal', 'format_gazepoint_biometrics_feature_inventory', 'fuse_gazepoint_respiration_kalman', 'gazepoint_interoperability_manifest', 'generate_gazepoint_manifest', 'get_gazepoint_plot_data', 'get_gazepoint_plot_settings', 'gpbiometrics_info', 'import_gazepoint_biometric_folder', 'import_gazepoint_biometrics', 'import_gazepoint_data', 'import_gazepoint_data_summary', 'import_gazepoint_event_log', 'import_gazepoint_lsl_xdf', 'import_gazepoint_pyhrv_results', 'impute_gazepoint_missing', 'interpolate_gazepoint_pupil_blinks', 'join_gazepoint_biometrics_to_gp3tools', 'join_gazepoint_biometrics_to_master', 'match_gazepoint_events_to_biometrics', 'merge_gazepoint_recordings_pspm_style', 'model_gazepoint_eda_point_process', 'model_gazepoint_hr_point_process', 'model_gazepoint_hrv_ipfm', 'normalize_gazepoint_scr', 'optimize_gazepoint_cvxeda_tau', 'pipeline_comparison_dashboard', 'plot_gazepoint_aoi_biometrics', 'plot_gazepoint_biometric_quality', 'plot_gazepoint_biometric_report_dashboard', 'plot_gazepoint_biometric_signals', 'plot_gazepoint_cluster_null_distribution', 'plot_gazepoint_cluster_permutation', 'plot_gazepoint_design_coverage', 'plot_gazepoint_eda_decomposition', 'plot_gazepoint_eda_gram', 'plot_gazepoint_export_profile', 'plot_gazepoint_missingness', 'plot_gazepoint_multimodal_timeline', 'plot_gazepoint_ppg_breathing', 'plot_gazepoint_ppg_peak_detection', 'plot_gazepoint_ppg_poincare', 'plot_gazepoint_ppg_segmentwise', 'plot_gazepoint_pyhrv_hr_heatplot', 'plot_gazepoint_pyhrv_radar_chart', 'plot_gazepoint_pyhrv_tachogram', 'plot_gazepoint_saccade_main_sequence', 'plot_gazepoint_scr_events', 'plot_gazepoint_scr_specification_curve', 'plot_gazepoint_signal_activity', 'plot_gazepoint_signal_quality', 'plot_gazepoint_time_resets', 'prepare_gazepoint_aoi_biometrics_model_data', 'prepare_gazepoint_artifact_svm_features', 'prepare_gazepoint_bids_eye', 'prepare_gazepoint_bids_physio', 'prepare_gazepoint_biometrics_lme_data', 'prepare_gazepoint_biosppy_input', 'prepare_gazepoint_ctsi_input', 'prepare_gazepoint_cvxeda_input', 'prepare_gazepoint_eyetrackingr_input', 'prepare_gazepoint_gazer_input', 'prepare_gazepoint_heartpy_input', 'prepare_gazepoint_ledalab_input', 'prepare_gazepoint_mixed_model_data', 'prepare_gazepoint_mne_events', 'prepare_gazepoint_mne_input', 'prepare_gazepoint_multimodal_model_data', 'prepare_gazepoint_neurokit_eda_input', 'prepare_gazepoint_pspm_dcm_input', 'prepare_gazepoint_pspm_input', 'prepare_gazepoint_pupillometryr_input', 'prepare_gazepoint_pyhrv_input', 'prepare_gazepoint_pyppg_input', 'prepare_gazepoint_rhrv_input', 'prepare_gazepoint_scr_hurdle_model_data', 'prepare_gazepoint_timecourse_test_data', 'preprocess_gazepoint_all', 'preprocess_gazepoint_scr_pspm_style', 'process_gazepoint_ppg_heartpy_style', 'process_gazepoint_ppg_segmentwise', 'profile_gazepoint_export_folder', 'recommend_gazepoint_biometric_exclusions', 'reconstruct_gazepoint_ppg_clipping', 'regress_gazepoint_pupil_luminance', 'reject_gazepoint_ppg_peaks', 'remove_gazepoint_ppg_baseline_wander', 'report_gazepoint_cluster_permutation', 'report_gazepoint_data_quality', 'respiration_from_ppg', 'run_gazepoint_automated_statistics', 'run_gazepoint_biometrics_real_data_readiness', 'run_gazepoint_biometrics_workflow', 'run_gazepoint_biosppy_eda', 'run_gazepoint_biosppy_ppg', 'run_gazepoint_cluster_permutation', 'run_gazepoint_cluster_permutation_anova', 'run_gazepoint_cluster_permutation_covariate_adjusted', 'run_gazepoint_cluster_permutation_lmer', 'run_gazepoint_cluster_permutation_parallel', 'run_gazepoint_cluster_threshold_sensitivity', 'run_gazepoint_eda_analysis_pipeline', 'run_gazepoint_heartpy_crosscheck', 'run_gazepoint_multidimensional_cluster_permutation', 'run_gazepoint_neurokit_eda_crosscheck', 'run_gazepoint_online_design_optimization', 'run_gazepoint_pyhrv_style', 'run_gazepoint_real_data_smoke', 'run_gazepoint_scr_multiverse', 'run_gazepoint_scr_threshold_sensitivity', 'run_gazepoint_tfce', 'run_gpbiometrics_shiny', 'run_gpbiometrics_shiny_annotator', 'scale_gazepoint_ppg_sections', 'scale_gazepoint_ppg_signal', 'screen_gazepoint_eda_nonresponders', 'segment_gazepoint_pyhrv_nni', 'session_info_gazepoint', 'simulate_gazepoint_artifact', 'simulate_gazepoint_biometrics', 'simulate_gazepoint_cluster_timecourse_data', 'simulate_gazepoint_eye_data', 'simulate_gazepoint_multimodal_data', 'smooth_gazepoint_biometrics', 'smooth_gazepoint_ppg_signal', 'smooth_gazepoint_pupil', 'split_gazepoint_sessions_pspm_style', 'standardise_gazepoint_adaptive_ema', 'standardise_gazepoint_biometric_names', 'standardise_gazepoint_biometrics_within_unit', 'standardise_gazepoint_plot_contract', 'standardise_gazepoint_range_correction', 'standardise_gazepoint_zscore', 'standardize_gazepoint_adaptive_ema', 'standardize_gazepoint_biometrics_within_unit', 'standardize_gazepoint_column_names', 'standardize_gazepoint_columns', 'standardize_gazepoint_plot_contracts', 'standardize_gazepoint_range_correction', 'standardize_gazepoint_zscore', 'summarise_gazepoint_aoi_biometrics', 'summarise_gazepoint_biometric_validity', 'summarise_gazepoint_biometrics_feature_inventory', 'summarise_gazepoint_biometrics_workflow', 'summarise_gazepoint_decision_log', 'summarise_gazepoint_dial_windows', 'summarise_gazepoint_engagement_windows', 'summarise_gazepoint_fixations_by_aoi', 'summarise_gazepoint_full_biometric_windows', 'summarise_gazepoint_gsr_tonic_phasic', 'summarise_gazepoint_gsr_windows', 'summarise_gazepoint_hr_windows', 'summarise_gazepoint_hrv_features', 'summarise_gazepoint_ibi_hrv_windows', 'summarise_gazepoint_ibi_windows', 'summarise_gazepoint_multimodal_windows', 'summarise_gazepoint_scr_event_windows', 'summarize_gazepoint_aoi_dwell', 'summarize_gazepoint_audit_trail', 'summarize_gazepoint_beat_corrections', 'summarize_gazepoint_eventlocked_multimodal', 'summarize_gazepoint_export_inventory', 'summarize_gazepoint_feature_coverage', 'summarize_gazepoint_fixations', 'summarize_gazepoint_fixations_by_aoi', 'summarize_gazepoint_missingness', 'summarize_gazepoint_nonwear', 'summarize_gazepoint_preregistration_readiness', 'summarize_gazepoint_pupil_events', 'summarize_gazepoint_qc_overview', 'summarize_gazepoint_scanpath_metrics', 'summarize_gazepoint_scr_recovery', 'summarize_gazepoint_signal_quality', 'summarize_gazepoint_time_clusters', 'summarize_gazepoint_tracking', 'sync_gazepoint_biometrics_with_gaze', 'sync_gazepoint_signals_via_lsl', 'test_gazepoint_hrv_nonlinearity', 'trim_gazepoint_biometrics_pspm_style', 'upsample_gazepoint_data', 'validate_gazepoint_biometrics', 'validate_gazepoint_format', 'validate_gazepoint_gaze', 'validate_gazepoint_metadata', 'write_gazepoint_biometrics_report_tables', 'write_gazepoint_decision_log', 'write_gazepoint_export_profile', 'write_gazepoint_interoperability_audit', 'write_gazepoint_mne_fif', 'write_gazepoint_real_data_smoke']
219
+
220
+ from .advanced_nonlinear import (
221
+ extract_gazepoint_hrv_nonlinear, extract_gazepoint_eda_complexity,
222
+ extract_gazepoint_hrv_fragmentation, extract_gazepoint_hrv_asymmetry,
223
+ extract_gazepoint_hrv_rqa, extract_gazepoint_hrv_geometric,
224
+ extract_gazepoint_pdr_signals, calculate_gazepoint_rsa,
225
+ )
226
+
227
+ from .deterministic_extensions import (
228
+ standardise_gazepoint_plot_contract, check_gazepoint_plot_contract, get_gazepoint_plot_data,
229
+ get_gazepoint_plot_settings, standardize_gazepoint_plot_contracts, export_gazepoint_rhrv_input,
230
+ prepare_gazepoint_rhrv_input, prepare_gazepoint_neurokit_eda_input, run_gazepoint_neurokit_eda_crosscheck,
231
+ standardize_gazepoint_biometrics_within_unit, standardise_gazepoint_biometrics_within_unit,
232
+ estimate_gazepoint_signal_lag, audit_gazepoint_biometric_sync_drift, prepare_gazepoint_pyppg_input,
233
+ assess_gazepoint_hrp_waveform_quality, decompose_gazepoint_eda, detect_gazepoint_scr_events,
234
+ create_gazepoint_biometrics_checklist, create_gazepoint_biometrics_methods_text,
235
+ )
236
+ from .endgame_science import (
237
+ audit_gazepoint_eda_artifacts, detect_gazepoint_scr_peaks,
238
+ summarise_gazepoint_scr_event_windows, screen_gazepoint_eda_nonresponders,
239
+ prepare_gazepoint_scr_hurdle_model_data, run_gazepoint_scr_threshold_sensitivity,
240
+ extract_gazepoint_eda_spectral_power, denoise_gazepoint_eda_wavelet,
241
+ extract_gazepoint_eda_tvsymp, plot_gazepoint_eda_gram,
242
+ extract_gazepoint_hrv_fuzzy_csi, extract_gazepoint_hrv_rcmse,
243
+ test_gazepoint_hrv_nonlinearity, extract_gazepoint_respiration_ceemdan,
244
+ fuse_gazepoint_respiration_kalman, flag_gazepoint_mad_artifacts,
245
+ audit_gazepoint_distributional_drift, detect_gazepoint_doubly_stochastic_changepoints,
246
+ extract_gazepoint_scr_recovery_times,
247
+ )
248
+
249
+ IMPLEMENTED_EXPORTS = ['add_gazepoint_decision', 'align_gazepoint_biometrics_to_ttl', 'align_gazepoint_streams_by_events', 'analyze_gazepoint_skin_potential', 'anonymize_gazepoint_data', 'assert_gazepoint_columns', 'assess_gazepoint_sampling_irregularity', 'audit_gazepoint_beats', 'audit_gazepoint_biometric_missingness', 'audit_gazepoint_biometrics_file', 'audit_gazepoint_condition_balance', 'audit_gazepoint_dataset_structure', 'audit_gazepoint_engagement_dial', 'audit_gazepoint_event_coverage', 'audit_gazepoint_experiment_design', 'audit_gazepoint_export_schema', 'audit_gazepoint_gsr_quality', 'audit_gazepoint_hr_quality', 'audit_gazepoint_interoperability_versions', 'audit_gazepoint_pipeline_steps', 'audit_gazepoint_preregistration_consistency', 'audit_gazepoint_pupil_luminance', 'audit_gazepoint_release_readiness', 'audit_gazepoint_session_comparability', 'audit_gazepoint_signal_activity', 'audit_gazepoint_stabilization_period', 'audit_gazepoint_time_resets', 'baseline_correct_gazepoint_gsr', 'baseline_correct_gazepoint_hr', 'build_gazepoint_aoi_timecourse', 'check_gazepoint_biometric_columns', 'chunk_gazepoint_biometrics', 'classify_gazepoint_eda_response_pattern', 'classify_gazepoint_signal_quality', 'clean_gazepoint_pupil', 'clean_gazepoint_pupil_signal', 'compare_gazepoint_export_profiles', 'compare_gazepoint_hr_ibi_consistency', 'compute_gazepoint_engagement_index', 'compute_gazepoint_hrv_wavelet_psd', 'compute_gazepoint_ppg_template_similarity', 'compute_gazepoint_quality_index', 'compute_gazepoint_scr_habituation', 'compute_gazepoint_scr_latency', 'compute_gazepoint_signal_lag_matrix', 'compute_gazepoint_signal_quality', 'correct_gazepoint_beats', 'correct_gazepoint_eda_temperature', 'create_gazepoint_analysis_decision_log', 'create_gazepoint_analysis_manifest', 'create_gazepoint_audit_index', 'create_gazepoint_audit_report_section', 'create_gazepoint_dictionary', 'create_gazepoint_methods_section', 'create_gazepoint_pipeline_map', 'create_gazepoint_preregistration_checklist', 'create_gazepoint_qc_supplement', 'create_gazepoint_quality_dashboard', 'create_gazepoint_release_checklist', 'create_gazepoint_reproducibility_statement', 'create_gazepoint_sidecar_template', 'denoise_gazepoint_quantization_noise', 'detect_active_biometric_channels', 'detect_gazepoint_biometric_schema', 'detect_gazepoint_biometric_timebase', 'detect_gazepoint_blinks', 'detect_gazepoint_nonwear', 'detect_gazepoint_pupil_blinks', 'detect_gazepoint_time_columns', 'detrend_gazepoint_signal', 'diagnose_gazepoint_sync_drift', 'epoch_gazepoint_scr', 'estimate_gazepoint_lsl_clock_offsets', 'estimate_gazepoint_respiration_from_ppg', 'export_gazepoint_audit_trail_markdown', 'export_gazepoint_pipeline_dot', 'extract_gazepoint_beats_kmeans', 'extract_gazepoint_bilateral_eda_asymmetry', 'extract_gazepoint_edr_pca', 'extract_gazepoint_hrv_features', 'extract_gazepoint_ppg_morphology', 'extract_gazepoint_ttl_events', 'filter_gazepoint_gaze', 'filter_gazepoint_ibi_implausible', 'filter_gazepoint_signal', 'flag_gazepoint_biometric_dropouts', 'flag_gazepoint_hrv_segments', 'flag_gazepoint_ppg_quality', 'flag_gazepoint_rr_outliers', 'gazepoint_interoperability_manifest', 'generate_gazepoint_manifest', 'gpbiometrics_info', 'import_gazepoint_biometric_folder', 'import_gazepoint_biometrics', 'import_gazepoint_data', 'import_gazepoint_data_summary', 'import_gazepoint_event_log', 'impute_gazepoint_missing', 'interpolate_gazepoint_pupil_blinks', 'join_gazepoint_biometrics_to_master', 'match_gazepoint_events_to_biometrics', 'model_gazepoint_hrv_ipfm', 'normalize_gazepoint_scr', 'plot_gazepoint_aoi_biometrics', 'plot_gazepoint_design_coverage', 'plot_gazepoint_export_profile', 'plot_gazepoint_missingness', 'plot_gazepoint_signal_quality', 'prepare_gazepoint_aoi_biometrics_model_data', 'prepare_gazepoint_bids_eye', 'prepare_gazepoint_bids_physio', 'prepare_gazepoint_cvxeda_input', 'prepare_gazepoint_ledalab_input', 'prepare_gazepoint_mixed_model_data', 'prepare_gazepoint_pspm_input', 'profile_gazepoint_export_folder', 'regress_gazepoint_pupil_luminance', 'respiration_from_ppg', 'simulate_gazepoint_artifact', 'simulate_gazepoint_multimodal_data', 'smooth_gazepoint_biometrics', 'smooth_gazepoint_pupil', 'standardise_gazepoint_biometric_names', 'standardise_gazepoint_range_correction', 'standardise_gazepoint_zscore', 'standardize_gazepoint_column_names', 'standardize_gazepoint_columns', 'standardize_gazepoint_range_correction', 'standardize_gazepoint_zscore', 'summarise_gazepoint_aoi_biometrics', 'summarise_gazepoint_biometric_validity', 'summarise_gazepoint_decision_log', 'summarise_gazepoint_engagement_windows', 'summarise_gazepoint_fixations_by_aoi', 'summarise_gazepoint_gsr_windows', 'summarise_gazepoint_hr_windows', 'summarise_gazepoint_multimodal_windows', 'summarize_gazepoint_aoi_dwell', 'summarize_gazepoint_audit_trail', 'summarize_gazepoint_beat_corrections', 'summarize_gazepoint_eventlocked_multimodal', 'summarize_gazepoint_export_inventory', 'summarize_gazepoint_feature_coverage', 'summarize_gazepoint_fixations', 'summarize_gazepoint_fixations_by_aoi', 'summarize_gazepoint_missingness', 'summarize_gazepoint_nonwear', 'summarize_gazepoint_preregistration_readiness', 'summarize_gazepoint_pupil_events', 'summarize_gazepoint_qc_overview', 'summarize_gazepoint_scanpath_metrics', 'summarize_gazepoint_scr_recovery', 'summarize_gazepoint_signal_quality', 'summarize_gazepoint_tracking', 'sync_gazepoint_biometrics_with_gaze', 'upsample_gazepoint_data', 'validate_gazepoint_biometrics', 'validate_gazepoint_format', 'validate_gazepoint_gaze', 'validate_gazepoint_metadata', 'write_gazepoint_decision_log', 'write_gazepoint_export_profile', 'write_gazepoint_interoperability_audit', 'write_gazepoint_mne_fif']
250
+ IMPLEMENTED_EXPORTS = list(dict.fromkeys([*IMPLEMENTED_EXPORTS, *['extract_gazepoint_markerinfo_pspm_style', 'combine_gazepoint_marker_channels_pspm_style', 'trim_gazepoint_biometrics_pspm_style', 'split_gazepoint_sessions_pspm_style', 'merge_gazepoint_recordings_pspm_style', 'preprocess_gazepoint_scr_pspm_style', 'extract_gazepoint_segments_pspm_style', 'create_gazepoint_pspm_glm_design', 'fit_gazepoint_convolution_glm', 'export_gazepoint_pspm_model_estimates']]))
251
+ IMPLEMENTED_EXPORTS = list(dict.fromkeys([*IMPLEMENTED_EXPORTS, *['prepare_gazepoint_biosppy_input', 'extract_gazepoint_eda_events_biosppy_style', 'estimate_gazepoint_eda_recovery_times', 'run_gazepoint_biosppy_eda', 'detect_gazepoint_ppg_onsets', 'extract_gazepoint_ppg_templates', 'run_gazepoint_biosppy_ppg', 'detrend_gazepoint_rri_window', 'correct_gazepoint_rri_artifacts_local', 'compute_gazepoint_signal_power_spectrum', 'compute_gazepoint_signal_band_power', 'compute_gazepoint_signal_phase_locking', 'compute_gazepoint_signal_correlation']]))
252
+ IMPLEMENTED_EXPORTS = list(dict.fromkeys([*IMPLEMENTED_EXPORTS, *['prepare_gazepoint_timecourse_test_data', 'run_gazepoint_cluster_permutation', 'summarize_gazepoint_time_clusters', 'plot_gazepoint_cluster_permutation', 'audit_gazepoint_timecourse_grid', 'diagnose_gazepoint_cluster_design', 'plot_gazepoint_cluster_null_distribution', 'report_gazepoint_cluster_permutation', 'run_gazepoint_cluster_threshold_sensitivity', 'simulate_gazepoint_cluster_timecourse_data', 'export_gazepoint_cluster_results', 'run_gazepoint_cluster_permutation_anova', 'run_gazepoint_cluster_permutation_lmer', 'run_gazepoint_tfce', 'run_gazepoint_multidimensional_cluster_permutation', 'estimate_gazepoint_cluster_onset', 'estimate_gazepoint_cluster_offset', 'run_gazepoint_cluster_permutation_covariate_adjusted', 'run_gazepoint_cluster_permutation_parallel', 'export_gazepoint_mne_cluster_input', 'export_gazepoint_permuco_cluster_input', 'export_gazepoint_permutes_cluster_input']]))
253
+ IMPLEMENTED_EXPORTS = list(dict.fromkeys([*IMPLEMENTED_EXPORTS, *['prepare_gazepoint_mne_events', 'prepare_gazepoint_mne_input', 'align_gazepoint_to_eeg', 'create_gazepoint_eye_methods_text', 'session_info_gazepoint', 'sync_gazepoint_signals_via_lsl']]))
254
+ IMPLEMENTED_EXPORTS = list(dict.fromkeys([*IMPLEMENTED_EXPORTS, *['prepare_gazepoint_pyhrv_input', 'extract_gazepoint_pyhrv_nn_intervals', 'compute_gazepoint_pyhrv_nn_diff', 'compute_gazepoint_pyhrv_heart_rate', 'create_gazepoint_pyhrv_time_vector', 'check_gazepoint_pyhrv_interval', 'segment_gazepoint_pyhrv_nni', 'compute_gazepoint_pyhrv_nni_parameters', 'compute_gazepoint_pyhrv_nni_differences_parameters', 'compute_gazepoint_pyhrv_hr_parameters', 'compute_gazepoint_pyhrv_sdnn', 'compute_gazepoint_pyhrv_sdnn_index', 'compute_gazepoint_pyhrv_sdann', 'compute_gazepoint_pyhrv_rmssd', 'compute_gazepoint_pyhrv_sdsd', 'compute_gazepoint_pyhrv_nnxx', 'compute_gazepoint_pyhrv_nn50', 'compute_gazepoint_pyhrv_nn20', 'compute_gazepoint_pyhrv_triangular_index', 'compute_gazepoint_pyhrv_tinn', 'compute_gazepoint_pyhrv_time_domain', 'compute_gazepoint_pyhrv_welch_psd', 'compute_gazepoint_pyhrv_lomb_psd', 'compute_gazepoint_pyhrv_ar_psd', 'compute_gazepoint_pyhrv_frequency_domain', 'compare_gazepoint_pyhrv_psd_methods', 'compute_gazepoint_pyhrv_psd_waterfall', 'compute_gazepoint_pyhrv_poincare', 'compute_gazepoint_pyhrv_sample_entropy', 'compute_gazepoint_pyhrv_dfa', 'compute_gazepoint_pyhrv_nonlinear', 'plot_gazepoint_pyhrv_tachogram', 'plot_gazepoint_pyhrv_hr_heatplot', 'plot_gazepoint_pyhrv_radar_chart', 'export_gazepoint_pyhrv_results', 'import_gazepoint_pyhrv_results', 'run_gazepoint_pyhrv_style']]))
255
+ IMPLEMENTED_EXPORTS = list(dict.fromkeys([*IMPLEMENTED_EXPORTS, *['prepare_gazepoint_heartpy_input', 'export_gazepoint_heartpy_input', 'reconstruct_gazepoint_ppg_clipping', 'enhance_gazepoint_ppg_peaks', 'filter_gazepoint_ppg_butterworth', 'correct_gazepoint_ppg_hampel', 'detect_gazepoint_ppg_peaks', 'reject_gazepoint_ppg_peaks', 'compute_gazepoint_ppg_measures', 'estimate_gazepoint_breathing_rate_from_ibi', 'plot_gazepoint_ppg_peak_detection', 'create_gazepoint_heartpy_report', 'run_gazepoint_heartpy_crosscheck', 'estimate_gazepoint_samplerate_mstimer', 'estimate_gazepoint_samplerate_datetime', 'scale_gazepoint_ppg_signal', 'scale_gazepoint_ppg_sections', 'flip_gazepoint_ppg_signal', 'remove_gazepoint_ppg_baseline_wander', 'smooth_gazepoint_ppg_signal', 'filter_gazepoint_ppg_signal', 'clean_gazepoint_rr_intervals', 'compute_gazepoint_ppg_frequency_measures', 'process_gazepoint_ppg_heartpy_style', 'process_gazepoint_ppg_segmentwise', 'plot_gazepoint_ppg_segmentwise', 'plot_gazepoint_ppg_poincare', 'plot_gazepoint_ppg_breathing', 'check_gazepoint_ppg_binary_quality']]))
256
+ IMPLEMENTED_EXPORTS = list(dict.fromkeys([*IMPLEMENTED_EXPORTS, *['audit_gazepoint_ibi_quality', 'summarise_gazepoint_ibi_windows', 'classify_gazepoint_scr_intervals', 'flag_kleckner_eda_artifacts', 'convert_gazepoint_gsr_to_conductance', 'summarise_gazepoint_gsr_tonic_phasic']]))
257
+ IMPLEMENTED_EXPORTS = list(dict.fromkeys([*IMPLEMENTED_EXPORTS, *['extract_gazepoint_hrv_nonlinear', 'extract_gazepoint_eda_complexity', 'extract_gazepoint_hrv_fragmentation', 'extract_gazepoint_hrv_asymmetry', 'extract_gazepoint_hrv_rqa', 'extract_gazepoint_hrv_geometric', 'extract_gazepoint_pdr_signals', 'calculate_gazepoint_rsa']]))
258
+ IMPLEMENTED_EXPORTS = list(dict.fromkeys([*IMPLEMENTED_EXPORTS, *['standardise_gazepoint_plot_contract', 'check_gazepoint_plot_contract', 'get_gazepoint_plot_data', 'get_gazepoint_plot_settings', 'prepare_gazepoint_rhrv_input', 'standardize_gazepoint_plot_contracts', 'create_gazepoint_biometrics_checklist', 'create_gazepoint_biometrics_methods_text', 'standardize_gazepoint_biometrics_within_unit', 'standardise_gazepoint_biometrics_within_unit', 'export_gazepoint_rhrv_input', 'prepare_gazepoint_neurokit_eda_input', 'run_gazepoint_neurokit_eda_crosscheck', 'estimate_gazepoint_signal_lag', 'audit_gazepoint_biometric_sync_drift', 'prepare_gazepoint_pyppg_input', 'assess_gazepoint_hrp_waveform_quality', 'decompose_gazepoint_eda', 'detect_gazepoint_scr_events']]))
259
+ IMPLEMENTED_EXPORTS = list(dict.fromkeys([*IMPLEMENTED_EXPORTS, *['plot_gazepoint_biometric_signals', 'plot_gazepoint_biometric_quality', 'plot_gazepoint_signal_activity', 'plot_gazepoint_time_resets', 'plot_gazepoint_biometric_report_dashboard', 'plot_gazepoint_eda_decomposition', 'plot_gazepoint_scr_events', 'plot_gazepoint_multimodal_timeline', 'plot_gazepoint_scr_specification_curve', 'create_gazepoint_biometrics_feature_inventory', 'format_gazepoint_biometrics_feature_inventory', 'summarise_gazepoint_biometrics_feature_inventory', 'summarise_gazepoint_full_biometric_windows', 'prepare_gazepoint_multimodal_model_data', 'prepare_gazepoint_biometrics_lme_data', 'summarise_gazepoint_dial_windows', 'join_gazepoint_biometrics_to_gp3tools', 'run_gazepoint_biometrics_real_data_readiness', 'run_gazepoint_biometrics_workflow', 'diagnose_gazepoint_biometrics_workflow', 'summarise_gazepoint_biometrics_workflow', 'create_gazepoint_biometrics_report_tables', 'write_gazepoint_biometrics_report_tables', 'export_gazepoint_biometrics_report_bundle', 'create_gazepoint_biometrics_report']]))
260
+ IMPLEMENTED_EXPORTS = list(dict.fromkeys([*IMPLEMENTED_EXPORTS, *['standardise_gazepoint_adaptive_ema', 'standardize_gazepoint_adaptive_ema', 'audit_gazepoint_gsr_units', 'downsample_gazepoint_data', 'audit_gazepoint_biometric_sampling', 'summarise_gazepoint_hrv_features', 'summarise_gazepoint_ibi_hrv_windows', 'recommend_gazepoint_biometric_exclusions', 'baseline_correct_gazepoint_pupil', 'plot_gazepoint_saccade_main_sequence', 'simulate_gazepoint_eye_data', 'simulate_gazepoint_biometrics']]))
261
+ IMPLEMENTED_EXPORTS = list(dict.fromkeys([*IMPLEMENTED_EXPORTS, *['audit_gazepoint_eda_artifacts', 'detect_gazepoint_scr_peaks', 'summarise_gazepoint_scr_event_windows', 'screen_gazepoint_eda_nonresponders', 'prepare_gazepoint_scr_hurdle_model_data', 'run_gazepoint_scr_threshold_sensitivity', 'extract_gazepoint_eda_spectral_power', 'denoise_gazepoint_eda_wavelet', 'extract_gazepoint_eda_tvsymp', 'plot_gazepoint_eda_gram', 'extract_gazepoint_hrv_fuzzy_csi', 'extract_gazepoint_hrv_rcmse', 'test_gazepoint_hrv_nonlinearity', 'extract_gazepoint_respiration_ceemdan', 'fuse_gazepoint_respiration_kalman', 'flag_gazepoint_mad_artifacts', 'audit_gazepoint_distributional_drift', 'detect_gazepoint_doubly_stochastic_changepoints', 'extract_gazepoint_scr_recovery_times']]))
262
+ IMPLEMENTED_EXPORTS = list(dict.fromkeys([*IMPLEMENTED_EXPORTS, *['analyze_gazepoint_ac_susceptance', 'run_gazepoint_automated_statistics', 'analyze_gazepoint_cardiorespiratory_causality', 'compare_gazepoint_conditions_bootstrap', 'prepare_gazepoint_ctsi_input', 'optimize_gazepoint_cvxeda_tau', 'create_gazepoint_eda_analysis_pipeline', 'run_gazepoint_eda_analysis_pipeline', 'import_gazepoint_lsl_xdf', 'run_gazepoint_online_design_optimization', 'prepare_gazepoint_pspm_dcm_input', 'run_gazepoint_scr_multiverse']]))
263
+ IMPLEMENTED_EXPORTS = list(dict.fromkeys([*IMPLEMENTED_EXPORTS, *['assign_gazepoint_aoi', 'audit_gazepoint_smoke_privacy', 'check_gazepoint_bids', 'create_gazepoint_preregistration_template', 'create_gazepoint_trial_regressors', 'denoise_gazepoint_eda_autoencoder', 'denoise_gazepoint_ppg_autoencoder', 'detect_gazepoint_fixations', 'detect_gazepoint_saccades', 'export_gazepoint_to_bids', 'flag_gazepoint_artifacts_svm', 'model_gazepoint_eda_point_process', 'model_gazepoint_hr_point_process', 'pipeline_comparison_dashboard', 'prepare_gazepoint_artifact_svm_features', 'prepare_gazepoint_eyetrackingr_input', 'prepare_gazepoint_gazer_input', 'prepare_gazepoint_pupillometryr_input', 'preprocess_gazepoint_all', 'report_gazepoint_data_quality', 'run_gazepoint_real_data_smoke', 'run_gpbiometrics_shiny', 'run_gpbiometrics_shiny_annotator', 'write_gazepoint_real_data_smoke']]))
264
+ PENDING_EXPORTS = [name for name in R_EXPORTS if name not in IMPLEMENTED_EXPORTS]
265
+
266
+ def _placeholder(name):
267
+ def f(*args, **kwargs):
268
+ raise ParityNotImplementedError(f"{name} is registered from gpbiometrics 2.0.0 but is not implemented in this reconstructed tranche.")
269
+ f.__name__ = name
270
+ return f
271
+
272
+ for _name in PENDING_EXPORTS:
273
+ globals()[_name] = _placeholder(_name)
274
+
275
+ __version__ = "0.1.0.dev1"
276
+ __all__ = [*R_EXPORTS, "R_EXPORTS", "IMPLEMENTED_EXPORTS", "PENDING_EXPORTS", "ParityNotImplementedError", "ReportText", "kiosk_demo_files", "kiosk_demo_overview", "kiosk_demo_path", "kiosk_demo_trial_design", "load_kiosk_demo"]
277
+
278
+ # Python-native convenience helpers; intentionally not members of the frozen R_EXPORTS contract.
279
+ from .demo import kiosk_demo_files, kiosk_demo_overview, kiosk_demo_path, kiosk_demo_trial_design, load_kiosk_demo
@@ -0,0 +1,92 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Iterable
4
+ import math
5
+ import numpy as np
6
+ import pandas as pd
7
+
8
+
9
+ def ensure_df(data, name="data") -> pd.DataFrame:
10
+ if not isinstance(data, pd.DataFrame):
11
+ raise TypeError(f"`{name}` must be a data frame.")
12
+ if data.empty:
13
+ raise ValueError(f"`{name}` has no rows.")
14
+ return data
15
+
16
+
17
+ def as_list(x):
18
+ if x is None:
19
+ return []
20
+ if isinstance(x, str):
21
+ return [x]
22
+ return list(x)
23
+
24
+
25
+ def guess_col(df: pd.DataFrame, candidates, label, required=True):
26
+ lower = {str(c).lower(): c for c in df.columns}
27
+ for cand in candidates:
28
+ if str(cand).lower() in lower:
29
+ return lower[str(cand).lower()]
30
+ if required:
31
+ raise ValueError(f"Could not identify {label} column. Supply it explicitly.")
32
+ return None
33
+
34
+
35
+ def require_cols(df, cols, what="columns"):
36
+ cols = as_list(cols)
37
+ missing = [c for c in cols if c not in df.columns]
38
+ if missing:
39
+ raise ValueError(f"{what} not found: {', '.join(map(str, missing))}")
40
+ return cols
41
+
42
+
43
+ def group_indices(df: pd.DataFrame, group_cols=None):
44
+ cols = as_list(group_cols)
45
+ if not cols:
46
+ return [("all", np.arange(len(df), dtype=int))]
47
+ require_cols(df, cols, "grouping columns")
48
+ out=[]
49
+ for key, block in df.groupby(cols, sort=False, dropna=False):
50
+ if not isinstance(key, tuple): key=(key,)
51
+ label=" | ".join(map(str,key))
52
+ out.append((label, block.index.to_numpy()))
53
+ return out
54
+
55
+
56
+ def time_seconds(values):
57
+ arr=pd.to_numeric(pd.Series(values), errors="coerce").to_numpy(float)
58
+ finite=arr[np.isfinite(arr)]
59
+ if finite.size < 2:
60
+ return arr
61
+ d=np.diff(finite); d=d[np.isfinite(d)&(d>0)]
62
+ if d.size and np.median(d)>5:
63
+ return arr/1000.0
64
+ return arr
65
+
66
+
67
+ def mad(x, scale=1.0):
68
+ a=np.asarray(x,dtype=float); a=a[np.isfinite(a)]
69
+ if not a.size: return np.nan
70
+ return float(np.median(np.abs(a-np.median(a)))*scale)
71
+
72
+
73
+ def max_run(flag):
74
+ a=np.asarray(flag,dtype=bool)
75
+ if not a.size or not a.any(): return 0
76
+ best=cur=0
77
+ for v in a:
78
+ cur=cur+1 if v else 0; best=max(best,cur)
79
+ return int(best)
80
+
81
+
82
+ def r_sd(x):
83
+ a=np.asarray(x,dtype=float); a=a[np.isfinite(a)]
84
+ return float(np.std(a,ddof=1)) if a.size>1 else np.nan
85
+
86
+
87
+ def trapz(time, value):
88
+ t=np.asarray(time,float); v=np.asarray(value,float)
89
+ ok=np.isfinite(t)&np.isfinite(v)
90
+ if ok.sum()<2: return np.nan
91
+ order=np.argsort(t[ok]); t=t[ok][order]; v=v[ok][order]
92
+ return float(np.sum(np.diff(t)*(v[:-1]+v[1:])/2))
@@ -0,0 +1,13 @@
1
+ from __future__ import annotations
2
+
3
+ class ParityNotImplementedError(NotImplementedError):
4
+ """Raised when an R export is registered but not yet semantically ported."""
5
+
6
+ class ReportText(list):
7
+ """Character-vector-like report text with a template marker."""
8
+ def __init__(self, lines, template: str):
9
+ super().__init__(str(x) for x in lines)
10
+ self.template = template
11
+
12
+ def __str__(self) -> str:
13
+ return "\n".join(self)