gpbiometrics provides reproducible tools for importing,
checking, preprocessing, summarising, modelling, and reporting Gazepoint
Biometrics and Gazepoint GP3 biometric exports. It is designed for
researchers working with electrodermal activity, pulse/heart-rate
channels, interbeat intervals, TTL markers, stimulus/event timing, and
multimodal Gazepoint workflows.
The package focuses on transparent preprocessing, quality control, analysis-ready tables, reporting outputs, and conservative physiological interpretation. It does not infer emotion, stress, cognition, preference, health status, or diagnosis directly from biometric signals.
Use gpbiometrics when you need to:
# Install from the local package folder during development
# install.packages("devtools")
devtools::load_all()After release, installation can use the package source or repository location selected by the maintainer.
library(gpbiometrics)
folder <- "path/to/gazepoint_exports"
dat <- import_gazepoint_biometric_folder(folder)
readiness <- run_gazepoint_biometrics_real_data_readiness(dat)
workflow <- run_gazepoint_biometrics_workflow(
path = folder,
include_all_gaze = TRUE,
include_fixations = FALSE,
include_other_csv = FALSE,
expected_sampling_rate_hz = 60
)
summary <- summarise_gazepoint_biometrics_workflow(workflow)
summaryFor private real data, keep source exports and generated smoke-test outputs outside the package repository.
gpbiometrics includes a public, fully synthetic
Gazepoint-like demo dataset for examples, vignettes, and reproducible
workflow checks. The dataset simulates a public-service touchscreen
kiosk task and is not derived from real participants.
The synthetic design contains 36 participants, four kiosk tasks per
participant, 60 Hz sampling, and 69,120 rows. The task design crosses
interface complexity (simple vs. dense) with
feedback clarity (clear vs. ambiguous). The
exports include gaze, AOI labels, pupil diameter, GSR/EDA, HR, IBI,
pulse waveform, engagement dial, TTL markers, and task metadata.
demo_dir <- system.file(
"extdata",
"gazepoint_biometrics_kiosk_demo_exports",
package = "gpbiometrics"
)
workflow <- run_gazepoint_biometrics_workflow(
path = demo_dir,
include_all_gaze = TRUE,
include_fixations = FALSE,
include_other_csv = FALSE,
expected_sampling_rate_hz = 60
)
summarise_gazepoint_biometrics_workflow(workflow)The synthetic kiosk data are intended for package demonstration only. They should not be interpreted as real physiology, emotion, stress, cognition, health status, or diagnosis.
A typical workflow is:
Import exports
-> inspect schema and signal availability
-> audit quality, timing, TTL markers, and missingness
-> preprocess EDA / pulse / IBI / pupil channels
-> extract SCR, HRV, respiration, AOI, or multimodal features
-> create analysis-ready windows or model tables
-> export tables, plots, and report bundles
The package is intentionally modular: users can run the full workflow or call individual helpers for a specific signal, window, or quality-control task.
| Task | Main helpers |
|---|---|
| Import Gazepoint biometric files | import_gazepoint_biometrics(),
import_gazepoint_biometric_folder(),
import_gazepoint_data_summary() |
| Diagnose workflow readiness | diagnose_gazepoint_biometrics_workflow(),
run_gazepoint_biometrics_real_data_readiness() |
| Run full workflow | run_gazepoint_biometrics_workflow(),
summarise_gazepoint_biometrics_workflow() |
| Export report outputs | create_gazepoint_biometrics_report(),
export_gazepoint_biometrics_report_bundle() |
| Inspect package coverage | create_gazepoint_biometrics_feature_inventory(),
gpbiometrics_feature_inventory_table() |
| Plot report dashboard | plot_gazepoint_biometric_report_dashboard() |
gpbiometrics includes tools for EDA/GSR preprocessing,
artifact checks, SCR detection, threshold sensitivity, baseline
correction, response windows, multiverse checks, and report-ready
summaries.
Representative helpers include:
audit_gazepoint_gsr_units()
standardise_gazepoint_adaptive_ema()
classify_gazepoint_scr_intervals()
flag_kleckner_eda_artifacts()
run_gazepoint_scr_multiverse()
extract_gazepoint_scr_recovery_times()
correct_gazepoint_eda_temperature()Specialised EDA helpers are also available for bilateral EDA asymmetry, skin-potential recordings, AC EDA admittance/susceptance, EDA-gram-style visualisation, cvxEDA/PsPM/Ledalab/cvxEDA-style bridges, and CTSI input preparation. These are optional method-specific helpers and should only be used when the required signal type is actually present.
The package supports pulse and heartbeat workflows, including IBI/HR summaries, HRV features, nonlinear descriptors, respiration proxies, point-process summaries, and advanced signal-processing bridges.
Representative helpers include:
extract_gazepoint_hrv_features()
summarise_gazepoint_hrv_features()
prepare_gazepoint_rhrv_input()
extract_gazepoint_hrv_nonlinear()
extract_gazepoint_hrv_rqa()
extract_gazepoint_hrv_geometric()
extract_gazepoint_hrv_rcmse()
extract_gazepoint_hrv_fuzzy_csi()
model_gazepoint_hrv_ipfm()
extract_gazepoint_beats_kmeans()Respiration-related helpers include PPG-derived respiration, ECG-derived respiration PCA bridges, CEEMDAN-style respiration extraction, RSA proxies, and Kalman fusion of multiple respiration proxy streams. These outputs are signal-derived respiratory proxies, not replacements for direct respiratory-belt recordings unless externally validated.
Gazepoint biometric exports are often used together with stimulus
timing, TTL markers, AOIs, and event windows. gpbiometrics
provides tools for alignment, chunking, and model-ready table
creation.
extract_gazepoint_ttl_events()
align_gazepoint_biometrics_to_ttl()
chunk_gazepoint_biometrics()
prepare_gazepoint_biometrics_lme_data()
plot_gazepoint_multimodal_timeline()The package emphasises explicit quality-control outputs rather than silent deletion or hidden preprocessing. Readiness checks and report bundles help users document what was inspected, what was retained, and what requires caution.
run_gazepoint_biometrics_real_data_readiness()
export_gazepoint_biometrics_report_bundle()
create_gazepoint_biometrics_report_tables()
plot_gazepoint_biometric_report_dashboard()
create_gazepoint_preregistration_template()Advanced helpers are included for specialised workflows such as:
These tools are intended for advanced users who understand the data requirements and assumptions of each method. Several functions are interoperability bridges or dependency-light approximations, not complete reimplementations of external modelling frameworks.
Biometric signals require conservative interpretation.
The package includes a programmatic inventory of available functions.
inventory <- create_gazepoint_biometrics_feature_inventory()
formatted_inventory <- format_gazepoint_biometrics_feature_inventory(inventory)
inventory_summary <- summarise_gazepoint_biometrics_feature_inventory(formatted_inventory)
inventory$overview
inventory_summary$domain_summary
head(formatted_inventory)This is useful for checking which workflows are available and for documenting package coverage in reports or manuscripts.
For private Gazepoint exports, keep raw data outside the package repository.
private_folder <- "path/to/private_gazepoint_exports"
private_output <- file.path(tempdir(), "gpbiometrics_real_check")
workflow <- run_gazepoint_biometrics_workflow(
path = private_folder,
include_all_gaze = TRUE,
include_fixations = FALSE,
include_other_csv = FALSE,
expected_sampling_rate_hz = 60
)
summarise_gazepoint_biometrics_workflow(workflow)
export_gazepoint_biometrics_report_bundle(
workflow,
output_dir = private_output
)Do not commit private Gazepoint exports or private smoke-test outputs.
Current local validation after the advanced development branches:
devtools::test()
# FAIL 0 | WARN 0 | SKIP 0 | PASS 1649
devtools::check()
# 0 errors | 0 warnings | 0 notes
The recurring Quarto/TMPDIR message can appear during local checks.
It is treated as harmless only when the final R CMD check
summary reports 0 errors, 0 warnings, and 0 notes.
If you use gpbiometrics, cite the package version,
repository or archive DOI if available, and the specific Gazepoint
hardware/software context used in your study. Also cite the original
methodological sources for specialised analyses such as cvxEDA, Ledalab,
PsPM, RHRV, entropy, point-process, or signal-decomposition methods when
those helpers are used.
If you use gpbiometrics, please cite the package
with:
citation("gpbiometrics")The archived software release is available at DOI:
10.5281/zenodo.20836725.