
Complete Gazepoint Downstream Workflow
Source:vignettes/gazepoint-downstream-workflow.Rmd
gazepoint-downstream-workflow.RmdPurpose
run_gazepoint_workflow() executes the full research-data
workflow from a real Gazepoint Analysis folder:
- canonical
eye_datasetimport; - file-pair, timebase, coordinate, sampling-rate, and signal-quality audits;
- contiguous media-run reconstruction as person-by-item-by-trial intervals;
- vendor-fixation and AOI summaries;
- short-gap pupil interpolation, optional filtering, and blink detection;
- valid-only biometric summaries while preserving native values;
- gaze, pupil, biometric, AOI, and QC plots;
- one-row-per-person-item-trial process tables;
- response templates and IRT-ready long/matrix structures;
- canonical exports, provenance, source fingerprints, and reproducible reports.
The workflow does not manufacture response scores. When no observed
responses are supplied, the result is marked
process_ready_response_pending.
Minimal workflow
library(eyeprocess)
source_dir <- "path/to/eyeprocess-validation-corpus/cases/gazepoint-analysis-v7.2.0-demo"
output_dir <- "path/to/eyeprocess-downstream-output"
result <- run_gazepoint_workflow(
source_dir,
output_dir = output_dir,
overwrite = TRUE
)
result
validate_gazepoint_workflow(result)Explicit specification
Pupil baseline correction is deliberately disabled by default. The first samples after media onset are not automatically equivalent to a pre-stimulus baseline.
spec <- gazepoint_workflow_spec(
expected_sampling_rate = 60,
minimum_valid_gaze = 0.80,
minimum_valid_pupil = 0.70,
pupil_interpolation = "linear",
pupil_max_gap_ms = 150,
pupil_filter = "median",
pupil_window = 5,
pupil_baseline = "none",
create_plots = TRUE,
create_html_report = TRUE,
retain_raw = TRUE
)Item labels and conditions
By default, item_id equals Gazepoint
MEDIA_ID. A study-specific mapping can supply meaningful
item and condition labels.
item_map <- data.frame(
stimulus_id = c("0", "1"),
item_id = c("item_control", "item_treatment"),
condition_id = c("control", "treatment")
)
result <- run_gazepoint_workflow(
source_dir,
output_dir,
item_map = item_map,
spec = spec,
overwrite = TRUE
)Adding observed responses
Responses may be supplied now or joined later using the generated
irt/response-template.csv file.
responses <- data.frame(
participant_id = c("User 3", "User 3"),
item_id = c("item_control", "item_treatment"),
response = c("yes", "no"),
score = c(1, 1),
response_time = c(6.1, 7.4)
)
result <- run_gazepoint_workflow(
source_dir,
output_dir,
responses = responses,
item_map = item_map,
spec = spec,
overwrite = TRUE
)The workflow creates response and response-time matrices only when the relevant observations are available. It does not fit IRT automatically; model adequacy, sample size, item count, dimensionality, and process-covariate assumptions must be evaluated first.
Output structure
eyeprocess-downstream-output/
├── canonical-dataset/
├── qc/
├── tables/
├── irt/
├── plots/
│ ├── summary/
│ ├── gaze/
│ ├── fixations/
│ ├── pupil/
│ └── biometrics/
├── gazepoint-workflow-report.md
├── gazepoint-workflow-report.html
├── workflow-result.rds
├── workflow-spec.rds
├── source-fingerprint.csv
├── session-info.txt
└── rerun-workflow.R
Interpretation boundaries
Fixations are not automatically attention; dwell time is not automatically difficulty; pupil dilation is not automatically cognitive load; and GSR or heart rate does not identify a specific emotion. The report preserves these interpretive safeguards alongside the analysis outputs.