Behavioral Data

Behavioral measurements collected during the LAION-fMRI scanning sessions.

Overview

Behavioral data includes participant responses, reaction times, and task performance metrics collected during fMRI acquisition.

Response Data

Data Collection

Behavioral responses were recorded using:

  • Input device: MRI-compatible button box

  • Response mapping: Documented in task description

  • Recording software: Synchronized with stimulus presentation

  • Sampling rate: Millisecond precision

Response Metrics

Collected Measures:

  • Reaction time (RT): Time from stimulus onset to response

  • Accuracy: Correct vs. incorrect responses

  • Response type: Which button was pressed

  • Miss rate: Trials with no response

  • False alarms: Responses on non-target trials (if applicable)

File Organization

Behavioral data is stored alongside functional data:

sub-01/
└── func/
    ├── sub-01_task-nback_run-01_events.tsv
    ├── sub-01_task-nback_run-01_events.json
    ├── sub-01_task-nback_run-01_beh.json
    └── sub-01_task-nback_run-01_beh.tsv

File Formats

Events File (*_events.tsv):

Contains trial-by-trial information including onset times, durations, and conditions.

Behavioral Data File (*_beh.tsv):

Contains detailed response information:

trial    onset    stimulus_id    trial_type    response    RT    correct
1        2.0      stim_0001      face          1           823   1
2        6.5      stim_0045      scene         2           912   1
3        11.2     stim_0123      object        0           0     0
4        15.8     stim_0002      face          1           756   1

Metadata File (*_beh.json):

{
    "TaskName": "visual_categorization",
    "Instructions": "Press button 1 for faces, button 2 for other categories",
    "ResponseDevice": "Current Designs 932 Button Box",
    "ResponseMapping": {
        "1": "face",
        "2": "non-face"
    }
}

Loading Behavioral Data

Using the Python Package

The laion-fmri-dataloader package provides convenient functions for loading and analyzing behavioral data:

from laion_fmri_dataloader import LAIONfMRIDataset
import matplotlib.pyplot as plt

# Initialize dataset
dataset = LAIONfMRIDataset(data_dir='./laion-fmri-data')

# Load behavioral data for a specific subject and run
beh_data = dataset.load_behavioral(
    subject='sub-01',
    task='nback',
    run=1
)

print(f"Total trials: {len(beh_data)}")
print(f"Columns: {beh_data.columns.tolist()}")

Eye Tracking Data

If Available

Some sessions may include eye tracking data:

sub-01/
└── func/
    ├── sub-01_task-nback_run-01_recording-eyetrack_physio.tsv.gz
    └── sub-01_task-nback_run-01_recording-eyetrack_physio.json

Eye Tracking Metrics

When available, eye tracking data includes:

  • Gaze position: X, Y coordinates

  • Pupil size: Diameter in arbitrary units

  • Blinks: Blink events and duration

  • Fixations: Fixation locations and durations

  • Saccades: Saccade metrics

Summary Statistics

Aggregating Across Runs

Combine data from multiple runs:

import glob

# Load all runs for a subject
beh_files = glob.glob('sub-01/func/*_beh.tsv')
all_runs = pd.concat([pd.read_csv(f, sep='\t') for f in beh_files])

# Overall statistics
print(f"Total trials: {len(all_runs)}")
print(f"Overall accuracy: {all_runs['correct'].mean():.2%}")
print(f"Overall mean RT: {all_runs[all_runs['RT'] > 0]['RT'].mean():.0f} ms")