diff --git a/.envrc b/.envrc index 572e3ce..c110c5e 100644 --- a/.envrc +++ b/.envrc @@ -1,2 +1,2 @@ use flake # uses the flake -source_env_if_exists .envrc.local # uses a local envrc file if it exists +source_env_if_exists .env.local # uses a local envrc file if it exists diff --git a/AGENTS.md b/AGENTS.md index 319440f..9a7d2f8 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -10,7 +10,7 @@ ## Build, Test, and Development Commands - `python -m venv .venv && source .venv/bin/activate` – create a local env (Python 3.11). - `pip install -r act/requirements.txt` – install runtime deps; add extras here only when they are runtime-critical. -- `python -m code.main 1 "$BOOST_TOKEN" vosslnx` – run the ingest + GGIR pipeline; system flag may be `vosslnxft`, `local`, or `argon`. +- `python -m act.main 1 "$BOOST_TOKEN" vosslnx` – run the ingest + GGIR pipeline; system flag may be `vosslnxft`, `local`, or `argon`. - `python act/tests/gt3x/plots.py` – regenerate GT3X diagnostic plots and CSV summaries; confirm paths before running. - `bash cron.sh` – mirrors production cron behaviour; ensure credentials and git remotes are safe before invoking. diff --git a/README.md b/README.md index e4ce131..7e3a467 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,8 @@ An automation stack for synchronizing raw actigraphy exports, routing them throu - [Prerequisites](#prerequisites) - [Quick Start](#quick-start) - [Running the Pipeline](#running-the-pipeline) + - [Rebuild Manifest Only](#rebuild-manifest-only) + - [Operator Runbook](#operator-runbook) - [Configuration](#configuration) - [Testing \& QA](#testing--qa) - [Automation \& Cron Support](#automation--cron-support) @@ -63,10 +65,10 @@ conda activate act-newer ## Running the Pipeline ```bash export BOOST_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -python -m code.main $BOOST_TOKEN +python -m act.main --daysago 1 --token "$BOOST_TOKEN" --system vosslnx ``` -- `daysago` filters RDSS files by acquisition date; use `1` for “yesterday’s drops”. -- `system` controls filesystem roots: `vosslnx` (default), `vosslnxft`, `local`, or `argon`. +- `--daysago` filters RDSS files by acquisition date; use `1` for “yesterday’s drops”. +- `--system` controls filesystem roots: `vosslnx`, `vosslnxft`, `local`, or `argon`. - The run will: 1. Create fresh symlinks under `../mnt` (see `utils.mnt`). 2. Match REDCap IDs to RDSS filenames (`utils.comparison_utils`). @@ -74,6 +76,45 @@ python -m code.main $BOOST_TOKEN 4. Call GGIR through `core/acc_new.R` and execute QC/plotting (`utils.qc`, `utils.group`). 5. Write a subject manifest to `act/res/data.json`. +### Rebuild Manifest Only +Use this mode to rebuild `res/data.json` from current LSS session folders without ingest copy, GGIR, or plotting: + +```bash +python -m act.main --daysago 1 --token "$BOOST_TOKEN" --system vosslnx --rebuild-manifest-only +``` + +Behavior in `--rebuild-manifest-only` mode: +- Source of truth is LSS layout (`sub-*/accel/ses-*/*_accel.csv`). +- Run is derived directly from folder name (`ses-# -> run=#`). +- RedCap resolves `subject_id -> labID` and RDSS enriches `filename`, `labID`, `date`. +- Manifest writes are atomic (`temp -> fsync -> replace`) and preserve prior `res/data.json` on failure. + +Strict failure conditions (non-zero exit): +- Multiple candidate accel CSVs in one session folder. +- Missing RedCap mapping for any discovered subject. +- Missing RDSS metadata (`filename`, `labID`, `date`) for any discovered session. + +### Operator Runbook +Generic Linux (venv): + +```bash +python -m venv .venv +source .venv/bin/activate +pip install -r act/requirements.txt +export BOOST_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +python -m act.main --daysago 1 --token "$BOOST_TOKEN" --system local --rebuild-manifest-only +``` + +NixOS / nix shell: + +```bash +nix develop +export BOOST_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +python -m act.main --daysago 1 --token "$BOOST_TOKEN" --system vosslnx --rebuild-manifest-only +``` + +For routine ingest + GGIR runs, omit `--rebuild-manifest-only`. + For ad-hoc diagnostics, re-run plot generation with `python act/tests/gt3x/plots.py` (requires adjusting the hard-coded file path). ## Configuration @@ -99,7 +140,7 @@ For ad-hoc diagnostics, re-run plot generation with `python act/tests/gt3x/plots - Review git staging before enabling cron on a new host to avoid committing large raw exports. ## Troubleshooting Tips -- **Missing symlinks:** run `python -c "from code.utils.mnt import create_symlinks; create_symlinks('../mnt', system='argon')"` (swap `system` as needed) and confirm mount availability. +- **Missing symlinks:** run `python -c "from act.utils.mnt import create_symlinks; create_symlinks('../mnt', system='argon')"` (swap `system` as needed) and confirm mount availability. - **GGIR failures:** check the console output and logs under `act/core/` or R’s stderr; ensure the conda env includes GGIR dependencies. - **REDCap mismatches:** `utils.comparison_utils.ID_COMPARISONS` logs duplicate IDs; review its stdout and `AGENTS.md` for remediation steps. - **Permission errors:** verify the executing user can read RDSS and write to the LSS target directories. diff --git a/act/__init__.py b/act/__init__.py index ef04200..e69de29 100644 --- a/act/__init__.py +++ b/act/__init__.py @@ -1,40 +0,0 @@ -""" -Project package namespace that also exposes the stdlib `code` helpers so modules -like `pdb` continue to work when this package shadows Python's builtin `code`. -""" - -from __future__ import annotations - -import importlib.util -import sys -import sysconfig -from pathlib import Path - - -def _load_stdlib_code() -> object: - """Load the standard-library `code` module without triggering recursive imports.""" - stdlib_dir = Path(sysconfig.get_path("stdlib")) - stdlib_code = stdlib_dir / "code.py" - if not stdlib_code.exists(): - raise RuntimeError(f"Unable to locate stdlib code.py at {stdlib_code}") - - spec = importlib.util.spec_from_file_location("_stdlib_code", stdlib_code) - module = importlib.util.module_from_spec(spec) - assert spec.loader is not None - spec.loader.exec_module(module) - return module - - -_STDLIB_CODE = _load_stdlib_code() - -# Register the stdlib module under an internal name so it can be reused. -sys.modules.setdefault("_stdlib_code", _STDLIB_CODE) - -# Re-export stdlib attributes that our package doesn't define so callers such -# as pdb can access InteractiveConsole, compile_command, etc. -for _attr in dir(_STDLIB_CODE): - if _attr.startswith("_") or _attr in globals(): - continue - globals()[_attr] = getattr(_STDLIB_CODE, _attr) - -del _attr diff --git a/act/core/gg.py b/act/core/gg.py index 999ce08..24274d4 100644 --- a/act/core/gg.py +++ b/act/core/gg.py @@ -30,7 +30,7 @@ def run_gg(self): After each GGIR run, invoke the QC pipeline for that project. """ # Assume QC is available at this import path - from code.utils.qc import QC + from act.utils.qc import QC for project_dir in [self.INTDIR, self.OBSDIR]: command = f"Rscript act/core/acc_new.R --project_dir {project_dir} --deriv_dir {self.DERIVATIVES}" diff --git a/act/docs/TESTING.md b/act/docs/TESTING.md index 3a8f580..116b4a4 100644 --- a/act/docs/TESTING.md +++ b/act/docs/TESTING.md @@ -58,6 +58,62 @@ When adding save logic tests: - destination paths include expected `accel/ses-#` structure - For error paths, mock file operations (for example `shutil.copy`) and assert graceful continuation or expected failure semantics. +## Manifest Reindex Testing +Manifest-only session reindex tests live in: +- `act/tests/test_save_manifest_reindex.py` +- `act/tests/test_save_edge_cases.py` + +Use these focused commands during development: + +```bash +pytest --collect-only -q act/tests/test_save_manifest_reindex.py +pytest -q act/tests/test_save_manifest_reindex.py act/tests/test_save_edge_cases.py +``` + +Expected behaviors covered by this suite: +- append: incoming session later than existing history receives the next dense run. +- backfill: incoming earlier session inserts chronologically and shifts later runs. +- tie-date skip: same-date subject conflicts are skipped with no manifest/filesystem mutation. +- duplicate noop: repeat ingest of the same `(labID, date, filename)` does not drift runs. + +## Operator Guidance +- `res/data.json` is the canonical source of truth for session run ordering. +- Current design assumes single-writer ingest semantics for `res/data.json`. +- Manual edits to `res/data.json` can force session reindex/rename behavior on the next run. +- If manual edits are necessary, run the manifest-focused tests above before production ingest. + +### Manifest Rebuild-Only Operations +- CLI mode: `--rebuild-manifest-only`. +- Rebuild mode skips ingest copy/rename, GGIR, and plotting. +- Rebuild mode still requires a valid RedCap token because subject→lab mapping is enforced. +- Rebuild exits non-zero on strict failures: + - multi-candidate session CSVs in a single `ses-*` folder, + - missing RedCap subject mapping, + - missing RDSS metadata for any discovered LSS session. + +Linux (venv) example: + +```bash +python -m venv .venv +source .venv/bin/activate +pip install -r act/requirements.txt +python -m act.main --daysago 1 --token "$BOOST_TOKEN" --system local --rebuild-manifest-only +``` + +NixOS example: + +```bash +nix develop +python -m act.main --daysago 1 --token "$BOOST_TOKEN" --system vosslnx --rebuild-manifest-only +``` + +Checkpoint-8 validation commands: + +```bash +pytest --collect-only -q act/tests/test_manifest_rebuild_from_lss.py +pytest -q act/tests/test_manifest_rebuild_from_lss.py act/tests/test_pipeline_smoke.py +``` + ## Smoke E2E Constraints - Smoke tests must stay Python-only and fast. - Mock external boundaries: diff --git a/act/main.py b/act/main.py index 297f3bd..957005e 100644 --- a/act/main.py +++ b/act/main.py @@ -1,8 +1,9 @@ +import argparse import logging import os -import sys -from code.utils.group import Group -from code.utils.pipe import Pipe + + +DEFAULT_SYSTEMS = ("vosslnx", "vosslnxft", "argon", "local") def _configure_logging() -> None: @@ -27,45 +28,95 @@ def _configure_logging() -> None: ) -if __name__ == "__main__": +def _daysago_type(value: str) -> int: + try: + parsed = int(value) + except ValueError as exc: + raise argparse.ArgumentTypeError("daysago must be an integer") from exc + + if parsed < 0: + raise argparse.ArgumentTypeError("daysago must be non-negative") + return parsed + + +def _token_type(value: str) -> str: + if not value.strip(): + raise argparse.ArgumentTypeError("token must be a non-empty string") + return value + + +def _available_systems() -> tuple[str, ...]: + try: + from act.utils.pipe import Pipe + + available = getattr(Pipe, "available_systems", None) + if callable(available): + return tuple(available()) + except Exception: + pass + + return DEFAULT_SYSTEMS + + +def build_parser() -> argparse.ArgumentParser: + parser = argparse.ArgumentParser( + prog="python -m act.main", + description=( + "Run BOOST ingest pipeline using explicit typed arguments. " + "Use --rebuild-manifest-only to rebuild manifest and skip GGIR/plotting." + ), + ) + parser.add_argument( + "--token", + type=_token_type, + required=True, + help="RedCap API token (required, non-empty)", + ) + parser.add_argument( + "--daysago", + type=_daysago_type, + required=True, + help="Lookback window in days (required, integer >= 0)", + ) + parser.add_argument( + "--system", + choices=_available_systems(), + required=True, + help="Target system path profile", + ) + parser.add_argument( + "--rebuild-manifest-only", + action="store_true", + help="Rebuild manifest-only mode (skips GGIR and plotting)", + ) + return parser + + +def main(argv: list[str] | None = None) -> int: + from act.utils.group import Group + from act.utils.pipe import Pipe + _configure_logging() - # Expect at least 2 arguments: daysago (integer) and token (string) - if len(sys.argv) < 3: - print("Usage: python main.py [system]") - print(" must be an integer, must be a non-empty string.") - print( - " [system] optional values: 'vosslnx', 'vosslnxft', 'argon', 'local' (default 'vosslnx')." - ) - sys.exit(1) - - # Parse daysago + args = build_parser().parse_args(argv) + + p = Pipe( + token=args.token, + daysago=args.daysago, + system=args.system, + rebuild_manifest_only=args.rebuild_manifest_only, + ) + try: - daysago = int(sys.argv[1]) - except ValueError: - print("Error: must be an integer.") - sys.exit(1) - - # Parse token - token = sys.argv[2] - if not token: - print("Error: cannot be empty.") - sys.exit(1) - - # Parse system - if len(sys.argv) > 3: - system = sys.argv[3] - else: - system = None - if not system: - print("System not specified, defaulting to 'vosslnx'.") - elif system not in ["vosslnx", "vosslnxft", "argon", "local"]: - print( - "Error: must be one of 'vosslnx', 'vosslnxft', 'argon', or 'local'." - ) - sys.exit(1) - - p = Pipe(token, daysago, system) - p.run_pipe() - - Group(system).plot_person() - Group(system).plot_session() + p.run_pipe() + except ValueError as exc: + logging.error("%s", exc) + return 1 + + if not args.rebuild_manifest_only: + Group(args.system).plot_person() + Group(args.system).plot_session() + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/act/res/data.json b/act/res/data.json index fa2087a..84a3170 100644 --- a/act/res/data.json +++ b/act/res/data.json @@ -1,199 +1,200 @@ { -} "8064": "[{'filename': '781 (2024-08-15)RAW.csv', 'labID': '781', 'date': Timestamp('2024-08-15 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8064/accel/ses-1/sub-8064_ses-1_accel.csv'}]", - "8022": "[{'filename': '1023 (2025-02-07)RAW.csv', 'labID': '1023', 'date': Timestamp('2025-02-07 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8022/accel/ses-1/sub-8022_ses-1_accel.csv'}, {'filename': '1023 (2025-04-17)RAW.csv', 'labID': '1023', 'date': Timestamp('2025-04-17 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8022/accel/ses-2/sub-8022_ses-2_accel.csv'}]", - "7183": "[{'filename': '1040 (2025-08-09)RAW.csv', 'labID': '1040', 'date': Timestamp('2025-08-09 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7183/accel/ses-1/sub-7183_ses-1_accel.csv'}]", - "7062": "[{'filename': '1043 (2025-02-22)RAW.csv', 'labID': '1043', 'date': Timestamp('2025-02-22 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7062/accel/ses-1/sub-7062_ses-1_accel.csv'}]", - "7146": "[{'filename': '1051 (2025-05-05)RAW.csv', 'labID': '1051', 'date': Timestamp('2025-05-05 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7146/accel/ses-1/sub-7146_ses-1_accel.csv'}]", - "6011": "[{'filename': '1093 (2024-08-09)RAW.csv', 'labID': '1093', 'date': Timestamp('2024-08-09 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-6011/accel/ses-1/sub-6011_ses-1_accel.csv'}]", - "6013": "[{'filename': '1098 (2024-08-14)RAW.csv', 'labID': '1098', 'date': Timestamp('2024-08-14 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-6013/accel/ses-1/sub-6013_ses-1_accel.csv'}]", - "7001": "[{'filename': '1111 (2024-09-05)RAW.csv', 'labID': '1111', 'date': Timestamp('2024-09-05 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7001/accel/ses-1/sub-7001_ses-1_accel.csv'}]", - "7002": "[{'filename': '1112 (2024-08-07)RAW.csv', 'labID': '1112', 'date': Timestamp('2024-08-07 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7002/accel/ses-1/sub-7002_ses-1_accel.csv'}]", - "7003": "[{'filename': '1113 (2024-08-20)RAW.csv', 'labID': '1113', 'date': Timestamp('2024-08-20 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7003/accel/ses-1/sub-7003_ses-1_accel.csv'}]", - "7004": "[{'filename': '1114 (2024-09-04)RAW.csv', 'labID': '1114', 'date': Timestamp('2024-09-04 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7004/accel/ses-1/sub-7004_ses-1_accel.csv'}]", - "7006": "[{'filename': '1115 (2024-08-05)RAW.csv', 'labID': '1115', 'date': Timestamp('2024-08-05 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7006/accel/ses-1/sub-7006_ses-1_accel.csv'}]", - "7012": "[{'filename': '1116 (2024-08-29)RAW.csv', 'labID': '1116', 'date': Timestamp('2024-08-29 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7012/accel/ses-1/sub-7012_ses-1_accel.csv'}]", - "7009": "[{'filename': '1117 (2024-08-07)RAW.csv', 'labID': '1117', 'date': Timestamp('2024-08-07 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7009/accel/ses-1/sub-7009_ses-1_accel.csv'}]", - "7010": "[{'filename': '1118 (2024-08-09)RAW.csv', 'labID': '1118', 'date': Timestamp('2024-08-09 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7010/accel/ses-1/sub-7010_ses-1_accel.csv'}]", - "7015": "[{'filename': '1120 (2024-08-13)RAW.csv', 'labID': '1120', 'date': Timestamp('2024-08-13 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7015/accel/ses-1/sub-7015_ses-1_accel.csv'}]", - "7016": "[{'filename': '1121 (2024-09-03)RAW.csv', 'labID': '1121', 'date': Timestamp('2024-09-03 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7016/accel/ses-1/sub-7016_ses-1_accel.csv'}]", - "7017": "[{'filename': '1122 (2024-08-22)RAW.csv', 'labID': '1122', 'date': Timestamp('2024-08-22 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7017/accel/ses-1/sub-7017_ses-1_accel.csv'}]", - "8001": "[{'filename': '1123 (2024-09-20)RAW.csv', 'labID': '1123', 'date': Timestamp('2024-09-20 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8001/accel/ses-1/sub-8001_ses-1_accel.csv'}]", - "8002": "[{'filename': '1124 (2024-09-13)RAW.csv', 'labID': '1124', 'date': Timestamp('2024-09-13 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8002/accel/ses-1/sub-8002_ses-1_accel.csv'}, {'filename': '1124 (2024-11-07)RAW.csv', 'labID': '1124', 'date': Timestamp('2024-11-07 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8002/accel/ses-2/sub-8002_ses-2_accel.csv'}, {'filename': '1124 (2025-02-26)RAW.csv', 'labID': '1124', 'date': Timestamp('2025-02-26 00:00:00'), 'run': 3, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8002/accel/ses-3/sub-8002_ses-3_accel.csv'}, {'filename': '1124 (2025-05-05)RAW.csv', 'labID': '1124', 'date': Timestamp('2025-05-05 00:00:00'), 'run': 4, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8002/accel/ses-4/sub-8002_ses-4_accel.csv'}]", - "8003": "[{'filename': '1125 (2024-10-04)RAW.csv', 'labID': '1125', 'date': Timestamp('2024-10-04 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8003/accel/ses-1/sub-8003_ses-1_accel.csv'}, {'filename': '1125 (2025-02-01)RAW.csv', 'labID': '1125', 'date': Timestamp('2025-02-01 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8003/accel/ses-2/sub-8003_ses-2_accel.csv'}, {'filename': '1125 (2025-05-31)RAW.csv', 'labID': '1125', 'date': Timestamp('2025-05-31 00:00:00'), 'run': 3, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8003/accel/ses-3/sub-8003_ses-3_accel.csv'}, {'filename': '1125 (2025-07-24)RAW.csv', 'labID': '1125', 'date': Timestamp('2025-07-24 00:00:00'), 'run': 4, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8003/accel/ses-4/sub-8003_ses-4_accel.csv'}]", - "8004": "[{'filename': '1126 (2024-09-25)RAW.csv', 'labID': '1126', 'date': Timestamp('2024-09-25 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8004/accel/ses-1/sub-8004_ses-1_accel.csv'}, {'filename': '1126 (2024-11-22)RAW.csv', 'labID': '1126', 'date': Timestamp('2024-11-22 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8004/accel/ses-2/sub-8004_ses-2_accel.csv'}, {'filename': '1126 (2025-03-12)RAW.csv', 'labID': '1126', 'date': Timestamp('2025-03-12 00:00:00'), 'run': 3, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8004/accel/ses-3/sub-8004_ses-3_accel.csv'}, {'filename': '1126 (2025-04-30)RAW.csv', 'labID': '1126', 'date': Timestamp('2025-04-30 00:00:00'), 'run': 4, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8004/accel/ses-4/sub-8004_ses-4_accel.csv'}]", - "8006": "[{'filename': '1129 (2024-09-20)RAW.csv', 'labID': '1129', 'date': Timestamp('2024-09-20 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8006/accel/ses-1/sub-8006_ses-1_accel.csv'}, {'filename': '1129 (2024-12-12)RAW.csv', 'labID': '1129', 'date': Timestamp('2024-12-12 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8006/accel/ses-2/sub-8006_ses-2_accel.csv'}, {'filename': '1129 (2025-04-16)RAW.csv', 'labID': '1129', 'date': Timestamp('2025-04-16 00:00:00'), 'run': 3, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8006/accel/ses-3/sub-8006_ses-3_accel.csv'}, {'filename': '1129 (2025-05-14)RAW.csv', 'labID': '1129', 'date': Timestamp('2025-05-14 00:00:00'), 'run': 4, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8006/accel/ses-4/sub-8006_ses-4_accel.csv'}]", - "7019": "[{'filename': '1130 (2024-09-24)RAW.csv', 'labID': '1130', 'date': Timestamp('2024-09-24 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7019/accel/ses-1/sub-7019_ses-1_accel.csv'}]", - "7020": "[{'filename': '1131 (2024-10-08)RAW.csv', 'labID': '1131', 'date': Timestamp('2024-10-08 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7020/accel/ses-1/sub-7020_ses-1_accel.csv'}]", - "7021": "[{'filename': '1132 (2024-10-02)RAW.csv', 'labID': '1132', 'date': Timestamp('2024-10-02 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7021/accel/ses-1/sub-7021_ses-1_accel.csv'}]", - "7022": "[{'filename': '1133 (2024-10-01)RAW.csv', 'labID': '1133', 'date': Timestamp('2024-10-01 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7022/accel/ses-1/sub-7022_ses-1_accel.csv'}]", - "8005": "[{'filename': '1134 (2024-10-30)RAW.csv', 'labID': '1134', 'date': Timestamp('2024-10-30 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8005/accel/ses-1/sub-8005_ses-1_accel.csv'}, {'filename': '1134 (2025-01-15)RAW.csv', 'labID': '1134', 'date': Timestamp('2025-01-15 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8005/accel/ses-2/sub-8005_ses-2_accel.csv'}, {'filename': '1134 (2025-05-22)RAW.csv', 'labID': '1134', 'date': Timestamp('2025-05-22 00:00:00'), 'run': 3, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8005/accel/ses-3/sub-8005_ses-3_accel.csv'}, {'filename': '1134 (2025-06-26)RAW.csv', 'labID': '1134', 'date': Timestamp('2025-06-26 00:00:00'), 'run': 4, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8005/accel/ses-4/sub-8005_ses-4_accel.csv'}, {'filename': '1134 (2025-07-18)RAW.csv', 'labID': '1134', 'date': Timestamp('2025-07-18 00:00:00'), 'run': 5, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8005/accel/ses-5/sub-8005_ses-5_accel.csv'}]", - "7024": "[{'filename': '1136 (2024-10-11)RAW.csv', 'labID': '1136', 'date': Timestamp('2024-10-11 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7024/accel/ses-1/sub-7024_ses-1_accel.csv'}]", - "7025": "[{'filename': '1137 (2024-10-11)RAW.csv', 'labID': '1137', 'date': Timestamp('2024-10-11 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7025/accel/ses-1/sub-7025_ses-1_accel.csv'}]", - "7026": "[{'filename': '1138 (2024-10-24)RAW.csv', 'labID': '1138', 'date': Timestamp('2024-10-24 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7026/accel/ses-1/sub-7026_ses-1_accel.csv'}]", - "7027": "[{'filename': '1139 (2024-11-08)RAW.csv', 'labID': '1139', 'date': Timestamp('2024-11-08 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7027/accel/ses-1/sub-7027_ses-1_accel.csv'}]", - "7028": "[{'filename': '1140 (2024-10-28)RAW.csv', 'labID': '1140', 'date': Timestamp('2024-10-28 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7028/accel/ses-1/sub-7028_ses-1_accel.csv'}]", - "7029": "[{'filename': '1141 (2024-11-05)RAW.csv', 'labID': '1141', 'date': Timestamp('2024-11-05 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7029/accel/ses-1/sub-7029_ses-1_accel.csv'}]", - "7030": "[{'filename': '1142 (2024-10-24)RAW.csv', 'labID': '1142', 'date': Timestamp('2024-10-24 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7030/accel/ses-1/sub-7030_ses-1_accel.csv'}]", - "7032": "[{'filename': '1144 (2024-11-12)RAW.csv', 'labID': '1144', 'date': Timestamp('2024-11-12 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7032/accel/ses-1/sub-7032_ses-1_accel.csv'}]", - "7033": "[{'filename': '1145 (2024-11-06)RAW.csv', 'labID': '1145', 'date': Timestamp('2024-11-06 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7033/accel/ses-1/sub-7033_ses-1_accel.csv'}]", - "8008": "[{'filename': '1146 (2024-11-04)RAW.csv', 'labID': '1146', 'date': Timestamp('2024-11-04 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8008/accel/ses-1/sub-8008_ses-1_accel.csv'}, {'filename': '1146 (2025-01-09)RAW.csv', 'labID': '1146', 'date': Timestamp('2025-01-09 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8008/accel/ses-2/sub-8008_ses-2_accel.csv'}, {'filename': '1146 (2025-03-19)RAW.csv', 'labID': '1146', 'date': Timestamp('2025-03-19 00:00:00'), 'run': 3, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8008/accel/ses-3/sub-8008_ses-3_accel.csv'}]", - "7034": "[{'filename': '1147 (2024-11-14)RAW.csv', 'labID': '1147', 'date': Timestamp('2024-11-14 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7034/accel/ses-1/sub-7034_ses-1_accel.csv'}]", - "7035": "[{'filename': '1148 (2024-11-04)RAW.csv', 'labID': '1148', 'date': Timestamp('2024-11-04 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7035/accel/ses-1/sub-7035_ses-1_accel.csv'}]", - "8009": "[{'filename': '1149 (2025-08-15)RAW.csv', 'labID': '1149', 'date': Timestamp('2025-08-15 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8009/accel/ses-1/sub-8009_ses-1_accel.csv'}]", - "8011": "[{'filename': '1151 (2024-12-06)RAW.csv', 'labID': '1151', 'date': Timestamp('2024-12-06 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8011/accel/ses-1/sub-8011_ses-1_accel.csv'}, {'filename': '1151 (2025-02-20)RAW.csv', 'labID': '1151', 'date': Timestamp('2025-02-20 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8011/accel/ses-2/sub-8011_ses-2_accel.csv'}]", - "7031": "[{'filename': '1155 (2024-12-18)RAW.csv', 'labID': '1155', 'date': Timestamp('2024-12-18 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7031/accel/ses-1/sub-7031_ses-1_accel.csv'}]", - "8012": "[{'filename': '1158 (2025-01-09)RAW.csv', 'labID': '1158', 'date': Timestamp('2025-01-09 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8012/accel/ses-1/sub-8012_ses-1_accel.csv'}, {'filename': '1158 (2025-05-09)RAW.csv', 'labID': '1158', 'date': Timestamp('2025-05-09 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8012/accel/ses-2/sub-8012_ses-2_accel.csv'}]", - "8014": "[{'filename': '1160 (2025-01-15)RAW.csv', 'labID': '1160', 'date': Timestamp('2025-01-15 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8014/accel/ses-1/sub-8014_ses-1_accel.csv'}, {'filename': '1160 (2025-05-03)RAW.csv', 'labID': '1160', 'date': Timestamp('2025-05-03 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8014/accel/ses-2/sub-8014_ses-2_accel.csv'}]", - "7037": "[{'filename': '1161 (2025-01-18)RAW.csv', 'labID': '1161', 'date': Timestamp('2025-01-18 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7037/accel/ses-1/sub-7037_ses-1_accel.csv'}]", - "8015": "[{'filename': '1162 (2025-01-29)RAW.csv', 'labID': '1162', 'date': Timestamp('2025-01-29 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8015/accel/ses-1/sub-8015_ses-1_accel.csv'}]", - "8016": "[{'filename': '1163 (2025-02-19)RAW.csv', 'labID': '1163', 'date': Timestamp('2025-02-19 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8016/accel/ses-1/sub-8016_ses-1_accel.csv'}, {'filename': '1163 (2025-04-07)RAW.csv', 'labID': '1163', 'date': Timestamp('2025-04-07 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8016/accel/ses-2/sub-8016_ses-2_accel.csv'}]", - "8017": "[{'filename': '1165 (2025-04-09)RAW.csv', 'labID': '1165', 'date': Timestamp('2025-04-09 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8017/accel/ses-1/sub-8017_ses-1_accel.csv'}]", - "7039": "[{'filename': '1166 (2025-01-21)RAW.csv', 'labID': '1166', 'date': Timestamp('2025-01-21 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7039/accel/ses-1/sub-7039_ses-1_accel.csv'}]", - "8018": "[{'filename': '1167 (2025-01-21)RAW.csv', 'labID': '1167', 'date': Timestamp('2025-01-21 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8018/accel/ses-1/sub-8018_ses-1_accel.csv'}, {'filename': '1167 (2025-01-22)RAW.csv', 'labID': '1167', 'date': Timestamp('2025-01-22 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8018/accel/ses-2/sub-8018_ses-2_accel.csv'}, {'filename': '1167 (2025-05-21)RAW.csv', 'labID': '1167', 'date': Timestamp('2025-05-21 00:00:00'), 'run': 3, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8018/accel/ses-3/sub-8018_ses-3_accel.csv'}]", - "8019": "[{'filename': '1168 (2025-01-28)RAW.csv', 'labID': '1168', 'date': Timestamp('2025-01-28 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8019/accel/ses-1/sub-8019_ses-1_accel.csv'}, {'filename': '1168 (2025-04-23)RAW.csv', 'labID': '1168', 'date': Timestamp('2025-04-23 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8019/accel/ses-2/sub-8019_ses-2_accel.csv'}]", - "8020": "[{'filename': '1169 (2025-01-30)RAW.csv', 'labID': '1169', 'date': Timestamp('2025-01-30 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8020/accel/ses-1/sub-8020_ses-1_accel.csv'}, {'filename': '1169 (2025-04-09)RAW.csv', 'labID': '1169', 'date': Timestamp('2025-04-09 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8020/accel/ses-2/sub-8020_ses-2_accel.csv'}, {'filename': '1169 (2025-07-31)RAW.csv', 'labID': '1169', 'date': Timestamp('2025-07-31 00:00:00'), 'run': 3, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8020/accel/ses-3/sub-8020_ses-3_accel.csv'}]", - "8021": "[{'filename': '1170 (2025-01-29)RAW.csv', 'labID': '1170', 'date': Timestamp('2025-01-29 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8021/accel/ses-1/sub-8021_ses-1_accel.csv'}, {'filename': '1170 (2025-05-24)RAW.csv', 'labID': '1170', 'date': Timestamp('2025-05-24 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8021/accel/ses-2/sub-8021_ses-2_accel.csv'}]", - "7040": "[{'filename': '1171 (2025-02-08)RAW.csv', 'labID': '1171', 'date': Timestamp('2025-02-08 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7040/accel/ses-1/sub-7040_ses-1_accel.csv'}]", - "7041": "[{'filename': '1172 (2025-01-28)RAW.csv', 'labID': '1172', 'date': Timestamp('2025-01-28 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7041/accel/ses-1/sub-7041_ses-1_accel.csv'}, {'filename': '1172 (2025-05-29)RAW.csv', 'labID': '1172', 'date': Timestamp('2025-05-29 00:00:00'), 'run': 2, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7041/accel/ses-2/sub-7041_ses-2_accel.csv'}]", - "7042": "[{'filename': '1173 (2025-03-01)RAW.csv', 'labID': '1173', 'date': Timestamp('2025-03-01 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7042/accel/ses-1/sub-7042_ses-1_accel.csv'}]", - "7043": "[{'filename': '1174 (2025-01-27)RAW.csv', 'labID': '1174', 'date': Timestamp('2025-01-27 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7043/accel/ses-1/sub-7043_ses-1_accel.csv'}, {'filename': '1174 (2025-01-28)RAW.csv', 'labID': '1174', 'date': Timestamp('2025-01-28 00:00:00'), 'run': 2, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7043/accel/ses-2/sub-7043_ses-2_accel.csv'}]", - "7047": "[{'filename': '1178 (2025-02-12)RAW.csv', 'labID': '1178', 'date': Timestamp('2025-02-12 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7047/accel/ses-1/sub-7047_ses-1_accel.csv'}]", - "7048": "[{'filename': '1179 (2025-03-11)RAW.csv', 'labID': '1179', 'date': Timestamp('2025-03-11 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7048/accel/ses-1/sub-7048_ses-1_accel.csv'}]", - "7049": "[{'filename': '1180 (2025-02-18)RAW.csv', 'labID': '1180', 'date': Timestamp('2025-02-18 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7049/accel/ses-1/sub-7049_ses-1_accel.csv'}]", - "7050": "[{'filename': '1181 (2025-02-21)RAW.csv', 'labID': '1181', 'date': Timestamp('2025-02-21 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7050/accel/ses-1/sub-7050_ses-1_accel.csv'}]", - "7052": "[{'filename': '1183 (2025-02-13)RAW.csv', 'labID': '1183', 'date': Timestamp('2025-02-13 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7052/accel/ses-1/sub-7052_ses-1_accel.csv'}]", - "8023": "[{'filename': '1185 (2025-04-10)RAW.csv', 'labID': '1185', 'date': Timestamp('2025-04-10 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8023/accel/ses-1/sub-8023_ses-1_accel.csv'}, {'filename': '1185 (2025-06-23)RAW.csv', 'labID': '1185', 'date': Timestamp('2025-06-23 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8023/accel/ses-2/sub-8023_ses-2_accel.csv'}]", - "8024": "[{'filename': '1186 (2025-03-08)RAW.csv', 'labID': '1186', 'date': Timestamp('2025-03-08 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8024/accel/ses-1/sub-8024_ses-1_accel.csv'}, {'filename': '1186 (2025-05-30)RAW.csv', 'labID': '1186', 'date': Timestamp('2025-05-30 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8024/accel/ses-2/sub-8024_ses-2_accel.csv'}]", - "7054": "[{'filename': '1187 (2025-02-11)RAW.csv', 'labID': '1187', 'date': Timestamp('2025-02-11 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7054/accel/ses-1/sub-7054_ses-1_accel.csv'}]", - "7055": "[{'filename': '1189 (2025-08-15)RAW.csv', 'labID': '1189', 'date': Timestamp('2025-08-15 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7055/accel/ses-1/sub-7055_ses-1_accel.csv'}]", - "7056": "[{'filename': '1190 (2025-02-22)RAW.csv', 'labID': '1190', 'date': Timestamp('2025-02-22 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7056/accel/ses-1/sub-7056_ses-1_accel.csv'}]", - "7057": "[{'filename': '1191 (2025-02-15)RAW.csv', 'labID': '1191', 'date': Timestamp('2025-02-15 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7057/accel/ses-1/sub-7057_ses-1_accel.csv'}]", - "7058": "[{'filename': '1192 (2025-02-21)RAW.csv', 'labID': '1192', 'date': Timestamp('2025-02-21 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7058/accel/ses-1/sub-7058_ses-1_accel.csv'}]", - "7059": "[{'filename': '1193 (2025-02-25)RAW.csv', 'labID': '1193', 'date': Timestamp('2025-02-25 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7059/accel/ses-1/sub-7059_ses-1_accel.csv'}]", - "8026": "[{'filename': '1194 (2025-02-04)RAW.csv', 'labID': '1194', 'date': Timestamp('2025-02-04 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8026/accel/ses-1/sub-8026_ses-1_accel.csv'}, {'filename': '1194 (2025-05-23)RAW.csv', 'labID': '1194', 'date': Timestamp('2025-05-23 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8026/accel/ses-2/sub-8026_ses-2_accel.csv'}]", - "7061": "[{'filename': '1196 (2025-02-15)RAW.csv', 'labID': '1196', 'date': Timestamp('2025-02-15 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7061/accel/ses-1/sub-7061_ses-1_accel.csv'}]", - "7063": "[{'filename': '1197 (2025-02-25)RAW.csv', 'labID': '1197', 'date': Timestamp('2025-02-25 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7063/accel/ses-1/sub-7063_ses-1_accel.csv'}]", - "8030": "[{'filename': '1200 (2025-05-10)RAW.csv', 'labID': '1200', 'date': Timestamp('2025-05-10 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8030/accel/ses-1/sub-8030_ses-1_accel.csv'}]", - "7064": "[{'filename': '1202 (2025-03-01)RAW.csv', 'labID': '1202', 'date': Timestamp('2025-03-01 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7064/accel/ses-1/sub-7064_ses-1_accel.csv'}]", - "7067": "[{'filename': '1205 (2025-02-21)RAW.csv', 'labID': '1205', 'date': Timestamp('2025-02-21 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7067/accel/ses-1/sub-7067_ses-1_accel.csv'}]", - "7068": "[{'filename': '1206 (2025-02-27)RAW.csv', 'labID': '1206', 'date': Timestamp('2025-02-27 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7068/accel/ses-1/sub-7068_ses-1_accel.csv'}]", - "7069": "[{'filename': '1207 (2025-03-01)RAW.csv', 'labID': '1207', 'date': Timestamp('2025-03-01 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7069/accel/ses-1/sub-7069_ses-1_accel.csv'}]", - "7072": "[{'filename': '1210 (2025-03-01)RAW.csv', 'labID': '1210', 'date': Timestamp('2025-03-01 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7072/accel/ses-1/sub-7072_ses-1_accel.csv'}]", - "7073": "[{'filename': '1211 (2025-03-01)RAW.csv', 'labID': '1211', 'date': Timestamp('2025-03-01 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7073/accel/ses-1/sub-7073_ses-1_accel.csv'}]", - "7075": "[{'filename': '1213 (2025-03-04)RAW.csv', 'labID': '1213', 'date': Timestamp('2025-03-04 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7075/accel/ses-1/sub-7075_ses-1_accel.csv'}]", - "7076": "[{'filename': '1214 (2025-03-11)RAW.csv', 'labID': '1214', 'date': Timestamp('2025-03-11 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7076/accel/ses-1/sub-7076_ses-1_accel.csv'}]", - "7077": "[{'filename': '1215 (2025-03-14)RAW.csv', 'labID': '1215', 'date': Timestamp('2025-03-14 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7077/accel/ses-1/sub-7077_ses-1_accel.csv'}]", - "7078": "[{'filename': '1216 (2025-03-08)RAW.csv', 'labID': '1216', 'date': Timestamp('2025-03-08 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7078/accel/ses-1/sub-7078_ses-1_accel.csv'}]", - "7079": "[{'filename': '1217 (2025-03-13)RAW.csv', 'labID': '1217', 'date': Timestamp('2025-03-13 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7079/accel/ses-1/sub-7079_ses-1_accel.csv'}]", - "7080": "[{'filename': '1218 (2025-03-07)RAW.csv', 'labID': '1218', 'date': Timestamp('2025-03-07 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7080/accel/ses-1/sub-7080_ses-1_accel.csv'}]", - "7082": "[{'filename': '1220 (2025-03-19)RAW.csv', 'labID': '1220', 'date': Timestamp('2025-03-19 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7082/accel/ses-1/sub-7082_ses-1_accel.csv'}]", - "8032": "[{'filename': '1221 (2025-05-22)RAW.csv', 'labID': '1221', 'date': Timestamp('2025-05-22 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8032/accel/ses-1/sub-8032_ses-1_accel.csv'}, {'filename': '1221 (2025-08-04)RAW.csv', 'labID': '1221', 'date': Timestamp('2025-08-04 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8032/accel/ses-2/sub-8032_ses-2_accel.csv'}]", - "7083": "[{'filename': '1222 (2025-03-06)RAW.csv', 'labID': '1222', 'date': Timestamp('2025-03-06 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7083/accel/ses-1/sub-7083_ses-1_accel.csv'}]", - "7084": "[{'filename': '1223 (2025-03-29)RAW.csv', 'labID': '1223', 'date': Timestamp('2025-03-29 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7084/accel/ses-1/sub-7084_ses-1_accel.csv'}]", - "7085": "[{'filename': '1224 (2025-03-18)RAW.csv', 'labID': '1224', 'date': Timestamp('2025-03-18 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7085/accel/ses-1/sub-7085_ses-1_accel.csv'}]", - "7086": "[{'filename': '1225 (2025-03-06)RAW.csv', 'labID': '1225', 'date': Timestamp('2025-03-06 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7086/accel/ses-1/sub-7086_ses-1_accel.csv'}]", - "7087": "[{'filename': '1226 (2025-03-06)RAW.csv', 'labID': '1226', 'date': Timestamp('2025-03-06 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7087/accel/ses-1/sub-7087_ses-1_accel.csv'}]", - "7088": "[{'filename': '1227 (2025-04-03)RAW.csv', 'labID': '1227', 'date': Timestamp('2025-04-03 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7088/accel/ses-1/sub-7088_ses-1_accel.csv'}]", - "7089": "[{'filename': '1228 (2025-03-20)RAW.csv', 'labID': '1228', 'date': Timestamp('2025-03-20 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7089/accel/ses-1/sub-7089_ses-1_accel.csv'}]", - "7093": "[{'filename': '1232 (2025-03-12)RAW.csv', 'labID': '1232', 'date': Timestamp('2025-03-12 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7093/accel/ses-1/sub-7093_ses-1_accel.csv'}]", - "7094": "[{'filename': '1233 (2025-03-27)RAW.csv', 'labID': '1233', 'date': Timestamp('2025-03-27 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7094/accel/ses-1/sub-7094_ses-1_accel.csv'}]", - "7065": "[{'filename': '1234 (2025-03-20)RAW.csv', 'labID': '1234', 'date': Timestamp('2025-03-20 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7065/accel/ses-1/sub-7065_ses-1_accel.csv'}]", - "7096": "[{'filename': '1236 (2025-03-29)RAW.csv', 'labID': '1236', 'date': Timestamp('2025-03-29 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7096/accel/ses-1/sub-7096_ses-1_accel.csv'}]", - "7098": "[{'filename': '1239 (2025-04-05)RAW.csv', 'labID': '1239', 'date': Timestamp('2025-04-05 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7098/accel/ses-1/sub-7098_ses-1_accel.csv'}]", - "7099": "[{'filename': '1240 (2025-03-08)RAW.csv', 'labID': '1240', 'date': Timestamp('2025-03-08 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7099/accel/ses-1/sub-7099_ses-1_accel.csv'}]", - "7102": "[{'filename': '1242 (2025-03-28)RAW.csv', 'labID': '1242', 'date': Timestamp('2025-03-28 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7102/accel/ses-1/sub-7102_ses-1_accel.csv'}]", - "7045": "[{'filename': '1243 (2025-03-20)RAW.csv', 'labID': '1243', 'date': Timestamp('2025-03-20 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7045/accel/ses-1/sub-7045_ses-1_accel.csv'}]", - "7103": "[{'filename': '1244 (2025-04-03)RAW.csv', 'labID': '1244', 'date': Timestamp('2025-04-03 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7103/accel/ses-1/sub-7103_ses-1_accel.csv'}]", - "7104": "[{'filename': '1245 (2025-04-03)RAW.csv', 'labID': '1245', 'date': Timestamp('2025-04-03 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7104/accel/ses-1/sub-7104_ses-1_accel.csv'}]", - "7105": "[{'filename': '1246 (2025-03-14)RAW.csv', 'labID': '1246', 'date': Timestamp('2025-03-14 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7105/accel/ses-1/sub-7105_ses-1_accel.csv'}]", - "8035": "[{'filename': '1249 (2025-03-19)RAW.csv', 'labID': '1249', 'date': Timestamp('2025-03-19 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8035/accel/ses-1/sub-8035_ses-1_accel.csv'}, {'filename': '1249 (2025-05-31)RAW.csv', 'labID': '1249', 'date': Timestamp('2025-05-31 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8035/accel/ses-2/sub-8035_ses-2_accel.csv'}]", - "7091": "[{'filename': '1250 (2025-03-27)RAW.csv', 'labID': '1250', 'date': Timestamp('2025-03-27 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7091/accel/ses-1/sub-7091_ses-1_accel.csv'}]", - "7070": "[{'filename': '1251 (2025-04-05)RAW.csv', 'labID': '1251', 'date': Timestamp('2025-04-05 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7070/accel/ses-1/sub-7070_ses-1_accel.csv'}]", - "7106": "[{'filename': '1252 (2025-03-28)RAW.csv', 'labID': '1252', 'date': Timestamp('2025-03-28 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7106/accel/ses-1/sub-7106_ses-1_accel.csv'}]", - "7107": "[{'filename': '1254 (2025-04-12)RAW.csv', 'labID': '1254', 'date': Timestamp('2025-04-12 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7107/accel/ses-1/sub-7107_ses-1_accel.csv'}]", - "7108": "[{'filename': '1255 (2025-03-14)RAW.csv', 'labID': '1255', 'date': Timestamp('2025-03-14 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7108/accel/ses-1/sub-7108_ses-1_accel.csv'}]", - "7110": "[{'filename': '1257 (2025-04-04)RAW.csv', 'labID': '1257', 'date': Timestamp('2025-04-04 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7110/accel/ses-1/sub-7110_ses-1_accel.csv'}]", - "7092": "[{'filename': '1260 (2025-03-28)RAW.csv', 'labID': '1260', 'date': Timestamp('2025-03-28 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7092/accel/ses-1/sub-7092_ses-1_accel.csv'}]", - "7090": "[{'filename': '1261 (2025-04-11)RAW.csv', 'labID': '1261', 'date': Timestamp('2025-04-11 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7090/accel/ses-1/sub-7090_ses-1_accel.csv'}]", - "7113": "[{'filename': '1262 (2025-04-04)RAW.csv', 'labID': '1262', 'date': Timestamp('2025-04-04 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7113/accel/ses-1/sub-7113_ses-1_accel.csv'}]", - "7114": "[{'filename': '1263 (2025-03-29)RAW.csv', 'labID': '1263', 'date': Timestamp('2025-03-29 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7114/accel/ses-1/sub-7114_ses-1_accel.csv'}]", - "7097": "[{'filename': '1264 (2025-04-05)RAW.csv', 'labID': '1264', 'date': Timestamp('2025-04-05 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7097/accel/ses-1/sub-7097_ses-1_accel.csv'}]", - "7115": "[{'filename': '1265 (2025-04-02)RAW.csv', 'labID': '1265', 'date': Timestamp('2025-04-02 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7115/accel/ses-1/sub-7115_ses-1_accel.csv'}]", - "7116": "[{'filename': '1266 (2025-04-03)RAW.csv', 'labID': '1266', 'date': Timestamp('2025-04-03 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7116/accel/ses-1/sub-7116_ses-1_accel.csv'}]", - "7117": "[{'filename': '1267 (2025-03-22)RAW.csv', 'labID': '1267', 'date': Timestamp('2025-03-22 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7117/accel/ses-1/sub-7117_ses-1_accel.csv'}]", - "7118": "[{'filename': '1268 (2025-04-08)RAW.csv', 'labID': '1268', 'date': Timestamp('2025-04-08 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7118/accel/ses-1/sub-7118_ses-1_accel.csv'}]", - "7120": "[{'filename': '1270 (2025-04-12)RAW.csv', 'labID': '1270', 'date': Timestamp('2025-04-12 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7120/accel/ses-1/sub-7120_ses-1_accel.csv'}]", - "7122": "[{'filename': '1272 (2025-04-05)RAW.csv', 'labID': '1272', 'date': Timestamp('2025-04-05 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7122/accel/ses-1/sub-7122_ses-1_accel.csv'}]", - "8036": "[{'filename': '1273 (2025-03-25)RAW.csv', 'labID': '1273', 'date': Timestamp('2025-03-25 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8036/accel/ses-1/sub-8036_ses-1_accel.csv'}, {'filename': '1273 (2025-08-16)RAW.csv', 'labID': '1273', 'date': Timestamp('2025-08-16 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8036/accel/ses-2/sub-8036_ses-2_accel.csv'}]", - "8037": "[{'filename': '1276 (2025-04-04)RAW.csv', 'labID': '1276', 'date': Timestamp('2025-04-04 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8037/accel/ses-1/sub-8037_ses-1_accel.csv'}]", - "7124": "[{'filename': '1290 (2025-04-10)RAW.csv', 'labID': '1290', 'date': Timestamp('2025-04-10 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7124/accel/ses-1/sub-7124_ses-1_accel.csv'}]", - "7125": "[{'filename': '1291 (2025-04-10)RAW.csv', 'labID': '1291', 'date': Timestamp('2025-04-10 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7125/accel/ses-1/sub-7125_ses-1_accel.csv'}]", - "7128": "[{'filename': '1298 (2025-04-18)RAW.csv', 'labID': '1298', 'date': Timestamp('2025-04-18 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7128/accel/ses-1/sub-7128_ses-1_accel.csv'}]", - "7129": "[{'filename': '1299 (2025-04-19)RAW.csv', 'labID': '1299', 'date': Timestamp('2025-04-19 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7129/accel/ses-1/sub-7129_ses-1_accel.csv'}]", - "8038": "[{'filename': '1302 (2025-04-26)RAW.csv', 'labID': '1302', 'date': Timestamp('2025-04-26 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8038/accel/ses-1/sub-8038_ses-1_accel.csv'}, {'filename': '1302 (2025-07-19)RAW.csv', 'labID': '1302', 'date': Timestamp('2025-07-19 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8038/accel/ses-2/sub-8038_ses-2_accel.csv'}]", - "7133": "[{'filename': '1304 (2025-04-29)RAW.csv', 'labID': '1304', 'date': Timestamp('2025-04-29 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7133/accel/ses-1/sub-7133_ses-1_accel.csv'}]", - "7134": "[{'filename': '1311 (2025-05-01)RAW.csv', 'labID': '1311', 'date': Timestamp('2025-05-01 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7134/accel/ses-1/sub-7134_ses-1_accel.csv'}]", - "7136": "[{'filename': '1313 (2025-06-03)RAW.csv', 'labID': '1313', 'date': Timestamp('2025-06-03 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7136/accel/ses-1/sub-7136_ses-1_accel.csv'}]", - "8039": "[{'filename': '1314 (2025-05-20)RAW.csv', 'labID': '1314', 'date': Timestamp('2025-05-20 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8039/accel/ses-1/sub-8039_ses-1_accel.csv'}, {'filename': '1314 (2025-07-15)RAW.csv', 'labID': '1314', 'date': Timestamp('2025-07-15 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8039/accel/ses-2/sub-8039_ses-2_accel.csv'}]", - "7137": "[{'filename': '1315 (2025-05-05)RAW.csv', 'labID': '1315', 'date': Timestamp('2025-05-05 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7137/accel/ses-1/sub-7137_ses-1_accel.csv'}]", - "8040": "[{'filename': '1317 (2025-05-20)RAW.csv', 'labID': '1317', 'date': Timestamp('2025-05-20 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8040/accel/ses-1/sub-8040_ses-1_accel.csv'}, {'filename': '1317 (2025-08-04)RAW.csv', 'labID': '1317', 'date': Timestamp('2025-08-04 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8040/accel/ses-2/sub-8040_ses-2_accel.csv'}]", - "8042": "[{'filename': '1320 (2025-05-20)RAW.csv', 'labID': '1320', 'date': Timestamp('2025-05-20 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8042/accel/ses-1/sub-8042_ses-1_accel.csv'}]", - "7138": "[{'filename': '1321 (2025-05-17)RAW.csv', 'labID': '1321', 'date': Timestamp('2025-05-17 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7138/accel/ses-1/sub-7138_ses-1_accel.csv'}]", - "7139": "[{'filename': '1322 (2025-05-10)RAW.csv', 'labID': '1322', 'date': Timestamp('2025-05-10 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7139/accel/ses-1/sub-7139_ses-1_accel.csv'}]", - "7140": "[{'filename': '1323 (2025-05-10)RAW.csv', 'labID': '1323', 'date': Timestamp('2025-05-10 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7140/accel/ses-1/sub-7140_ses-1_accel.csv'}]", - "7141": "[{'filename': '1324 (2025-05-17)RAW.csv', 'labID': '1324', 'date': Timestamp('2025-05-17 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7141/accel/ses-1/sub-7141_ses-1_accel.csv'}]", - "7142": "[{'filename': '1325 (2025-05-21)RAW.csv', 'labID': '1325', 'date': Timestamp('2025-05-21 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7142/accel/ses-1/sub-7142_ses-1_accel.csv'}]", - "7145": "[{'filename': '1327 (2025-05-10)RAW.csv', 'labID': '1327', 'date': Timestamp('2025-05-10 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7145/accel/ses-1/sub-7145_ses-1_accel.csv'}]", - "7147": "[{'filename': '1328 (2025-06-24)RAW.csv', 'labID': '1328', 'date': Timestamp('2025-06-24 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7147/accel/ses-1/sub-7147_ses-1_accel.csv'}]", - "8046": "[{'filename': '1330 (2025-05-28)RAW.csv', 'labID': '1330', 'date': Timestamp('2025-05-28 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8046/accel/ses-1/sub-8046_ses-1_accel.csv'}, {'filename': '1330 (2025-08-01)RAW.csv', 'labID': '1330', 'date': Timestamp('2025-08-01 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8046/accel/ses-2/sub-8046_ses-2_accel.csv'}]", - "7150": "[{'filename': '1332 (2025-05-24)RAW.csv', 'labID': '1332', 'date': Timestamp('2025-05-24 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7150/accel/ses-1/sub-7150_ses-1_accel.csv'}]", - "7151": "[{'filename': '1333 (2025-05-13)RAW.csv', 'labID': '1333', 'date': Timestamp('2025-05-13 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7151/accel/ses-1/sub-7151_ses-1_accel.csv'}]", - "7152": "[{'filename': '1334 (2025-05-24)RAW.csv', 'labID': '1334', 'date': Timestamp('2025-05-24 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7152/accel/ses-1/sub-7152_ses-1_accel.csv'}]", - "8047": "[{'filename': '1335 (2025-05-14)RAW.csv', 'labID': '1335', 'date': Timestamp('2025-05-14 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8047/accel/ses-1/sub-8047_ses-1_accel.csv'}, {'filename': '1335 (2025-07-18)RAW.csv', 'labID': '1335', 'date': Timestamp('2025-07-18 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8047/accel/ses-2/sub-8047_ses-2_accel.csv'}]", - "8048": "[{'filename': '1336 (2025-06-06)RAW.csv', 'labID': '1336', 'date': Timestamp('2025-06-06 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8048/accel/ses-1/sub-8048_ses-1_accel.csv'}]", - "7153": "[{'filename': '1337 (2025-05-17)RAW.csv', 'labID': '1337', 'date': Timestamp('2025-05-17 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7153/accel/ses-1/sub-7153_ses-1_accel.csv'}]", - "7155": "[{'filename': '1340 (2025-06-03)RAW.csv', 'labID': '1340', 'date': Timestamp('2025-06-03 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7155/accel/ses-1/sub-7155_ses-1_accel.csv'}]", - "8050": "[{'filename': '1341 (2025-05-21)RAW.csv', 'labID': '1341', 'date': Timestamp('2025-05-21 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8050/accel/ses-1/sub-8050_ses-1_accel.csv'}, {'filename': '1341 (2025-08-08)RAW.csv', 'labID': '1341', 'date': Timestamp('2025-08-08 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8050/accel/ses-2/sub-8050_ses-2_accel.csv'}]", - "7156": "[{'filename': '1342 (2025-05-24)RAW.csv', 'labID': '1342', 'date': Timestamp('2025-05-24 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7156/accel/ses-1/sub-7156_ses-1_accel.csv'}]", - "8051": "[{'filename': '1343 (2025-06-20)RAW.csv', 'labID': '1343', 'date': Timestamp('2025-06-20 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8051/accel/ses-1/sub-8051_ses-1_accel.csv'}]", - "7157": "[{'filename': '1344 (2025-05-16)RAW.csv', 'labID': '1344', 'date': Timestamp('2025-05-16 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7157/accel/ses-1/sub-7157_ses-1_accel.csv'}]", - "8052": "[{'filename': '1345 (2025-05-28)RAW.csv', 'labID': '1345', 'date': Timestamp('2025-05-28 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8052/accel/ses-1/sub-8052_ses-1_accel.csv'}, {'filename': '1345 (2025-08-21)RAW.csv', 'labID': '1345', 'date': Timestamp('2025-08-21 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8052/accel/ses-2/sub-8052_ses-2_accel.csv'}]", - "8053": "[{'filename': '1346 (2025-06-04)RAW.csv', 'labID': '1346', 'date': Timestamp('2025-06-04 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8053/accel/ses-1/sub-8053_ses-1_accel.csv'}, {'filename': '1346 (2025-07-25)RAW.csv', 'labID': '1346', 'date': Timestamp('2025-07-25 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8053/accel/ses-2/sub-8053_ses-2_accel.csv'}]", - "8054": "[{'filename': '1347 (2025-05-30)RAW.csv', 'labID': '1347', 'date': Timestamp('2025-05-30 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8054/accel/ses-1/sub-8054_ses-1_accel.csv'}]", - "7158": "[{'filename': '1348 (2025-06-05)RAW.csv', 'labID': '1348', 'date': Timestamp('2025-06-05 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7158/accel/ses-1/sub-7158_ses-1_accel.csv'}]", - "7159": "[{'filename': '1349 (2025-06-05)RAW.csv', 'labID': '1349', 'date': Timestamp('2025-06-05 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7159/accel/ses-1/sub-7159_ses-1_accel.csv'}]", - "7160": "[{'filename': '1350 (2025-06-04)RAW.csv', 'labID': '1350', 'date': Timestamp('2025-06-04 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7160/accel/ses-1/sub-7160_ses-1_accel.csv'}]", - "7164": "[{'filename': '1354 (2025-06-12)RAW.csv', 'labID': '1354', 'date': Timestamp('2025-06-12 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7164/accel/ses-1/sub-7164_ses-1_accel.csv'}]", - "7165": "[{'filename': '1355 (2025-06-12)RAW.csv', 'labID': '1355', 'date': Timestamp('2025-06-12 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7165/accel/ses-1/sub-7165_ses-1_accel.csv'}]", - "7161": "[{'filename': '1356 (2025-06-10)RAW.csv', 'labID': '1356', 'date': Timestamp('2025-06-10 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7161/accel/ses-1/sub-7161_ses-1_accel.csv'}]", - "7167": "[{'filename': '1358 (2025-06-21)RAW.csv', 'labID': '1358', 'date': Timestamp('2025-06-21 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7167/accel/ses-1/sub-7167_ses-1_accel.csv'}]", - "7168": "[{'filename': '1359 (2025-06-20)RAW.csv', 'labID': '1359', 'date': Timestamp('2025-06-20 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7168/accel/ses-1/sub-7168_ses-1_accel.csv'}]", - "7170": "[{'filename': '1361 (2025-06-10)RAW.csv', 'labID': '1361', 'date': Timestamp('2025-06-10 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7170/accel/ses-1/sub-7170_ses-1_accel.csv'}]", - "7172": "[{'filename': '1363 (2025-06-18)RAW.csv', 'labID': '1363', 'date': Timestamp('2025-06-18 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7172/accel/ses-1/sub-7172_ses-1_accel.csv'}]", - "7173": "[{'filename': '1364 (2025-07-30)RAW.csv', 'labID': '1364', 'date': Timestamp('2025-07-30 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7173/accel/ses-1/sub-7173_ses-1_accel.csv'}]", - "7174": "[{'filename': '1365 (2025-06-28)RAW.csv', 'labID': '1365', 'date': Timestamp('2025-06-28 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7174/accel/ses-1/sub-7174_ses-1_accel.csv'}]", - "7175": "[{'filename': '1366 (2025-07-02)RAW.csv', 'labID': '1366', 'date': Timestamp('2025-07-02 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7175/accel/ses-1/sub-7175_ses-1_accel.csv'}]", - "7176": "[{'filename': '1367 (2025-08-26)RAW.csv', 'labID': '1367', 'date': Timestamp('2025-08-26 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7176/accel/ses-1/sub-7176_ses-1_accel.csv'}]", - "7180": "[{'filename': '1372 (2025-07-02)RAW.csv', 'labID': '1372', 'date': Timestamp('2025-07-02 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7180/accel/ses-1/sub-7180_ses-1_accel.csv'}]", - "8056": "[{'filename': '1373 (2025-07-03)RAW.csv', 'labID': '1373', 'date': Timestamp('2025-07-03 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8056/accel/ses-1/sub-8056_ses-1_accel.csv'}]", - "8060": "[{'filename': '1377 (2025-07-17)RAW.csv', 'labID': '1377', 'date': Timestamp('2025-07-17 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8060/accel/ses-1/sub-8060_ses-1_accel.csv'}]", - "7181": "[{'filename': '1378 (2025-08-13)RAW.csv', 'labID': '1378', 'date': Timestamp('2025-08-13 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7181/accel/ses-1/sub-7181_ses-1_accel.csv'}]", - "7182": "[{'filename': '1379 (2025-07-22)RAW.csv', 'labID': '1379', 'date': Timestamp('2025-07-22 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7182/accel/ses-1/sub-7182_ses-1_accel.csv'}]", - "7186": "[{'filename': '1382 (2025-07-24)RAW.csv', 'labID': '1382', 'date': Timestamp('2025-07-24 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7186/accel/ses-1/sub-7186_ses-1_accel.csv'}]", - "7187": "[{'filename': '1383 (2025-07-31)RAW.csv', 'labID': '1383', 'date': Timestamp('2025-07-31 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7187/accel/ses-1/sub-7187_ses-1_accel.csv'}]", - "7188": "[{'filename': '1384 (2025-07-31)RAW.csv', 'labID': '1384', 'date': Timestamp('2025-07-31 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7188/accel/ses-1/sub-7188_ses-1_accel.csv'}]", - "7189": "[{'filename': '1385 (2025-07-30)RAW.csv', 'labID': '1385', 'date': Timestamp('2025-07-30 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7189/accel/ses-1/sub-7189_ses-1_accel.csv'}]", - "7190": "[{'filename': '1386 (2025-08-15)RAW.csv', 'labID': '1386', 'date': Timestamp('2025-08-15 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7190/accel/ses-1/sub-7190_ses-1_accel.csv'}]", - "7192": "[{'filename': '1388 (2025-08-05)RAW.csv', 'labID': '1388', 'date': Timestamp('2025-08-05 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7192/accel/ses-1/sub-7192_ses-1_accel.csv'}]", - "7194": "[{'filename': '1390 (2025-08-13)RAW.csv', 'labID': '1390', 'date': Timestamp('2025-08-13 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7194/accel/ses-1/sub-7194_ses-1_accel.csv'}]", - "7196": "[{'filename': '1392 (2025-08-06)RAW.csv', 'labID': '1392', 'date': Timestamp('2025-08-06 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7196/accel/ses-1/sub-7196_ses-1_accel.csv'}]", - "7197": "[{'filename': '1393 (2025-08-05)RAW.csv', 'labID': '1393', 'date': Timestamp('2025-08-05 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7197/accel/ses-1/sub-7197_ses-1_accel.csv'}]", - "8061": "[{'filename': '1395 (2025-08-09)RAW.csv', 'labID': '1395', 'date': Timestamp('2025-08-09 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8061/accel/ses-1/sub-8061_ses-1_accel.csv'}]", - "7200": "[{'filename': '1397 (2025-08-15)RAW.csv', 'labID': '1397', 'date': Timestamp('2025-08-15 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7200/accel/ses-1/sub-7200_ses-1_accel.csv'}]", - "7203": "[{'filename': '1400 (2025-08-27)RAW.csv', 'labID': '1400', 'date': Timestamp('2025-08-27 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7203/accel/ses-1/sub-7203_ses-1_accel.csv'}]", - "7204": "[{'filename': '1401 (2025-08-22)RAW.csv', 'labID': '1401', 'date': Timestamp('2025-08-22 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7204/accel/ses-1/sub-7204_ses-1_accel.csv'}]", - "7208": "[{'filename': '1405 (2025-08-22)RAW.csv', 'labID': '1405', 'date': Timestamp('2025-08-22 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7208/accel/ses-1/sub-7208_ses-1_accel.csv'}]", - "7209": "[{'filename': '1406 (2025-08-21)RAW.csv', 'labID': '1406', 'date': Timestamp('2025-08-21 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7209/accel/ses-1/sub-7209_ses-1_accel.csv'}]", - "7214": "[{'filename': '1410 (2025-08-26)RAW.csv', 'labID': '1410', 'date': Timestamp('2025-08-26 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7214/accel/ses-1/sub-7214_ses-1_accel.csv'}]", - "7215": "[{'filename': '1411 (2025-08-13)RAW.csv', 'labID': '1411', 'date': Timestamp('2025-08-13 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7215/accel/ses-1/sub-7215_ses-1_accel.csv'}]", - "7218": "[{'filename': '1414 (2025-08-30)RAW.csv', 'labID': '1414', 'date': Timestamp('2025-08-30 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7218/accel/ses-1/sub-7218_ses-1_accel.csv'}]" + "8064": "[{'filename': '781 (2024-08-15)RAW.csv', 'labID': '781', 'date': Timestamp('2024-08-15 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8064/accel/ses-1/sub-8064_ses-1_accel.csv'}]", + "8022": "[{'filename': '1023 (2025-02-07)RAW.csv', 'labID': '1023', 'date': Timestamp('2025-02-07 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8022/accel/ses-1/sub-8022_ses-1_accel.csv'}, {'filename': '1023 (2025-04-17)RAW.csv', 'labID': '1023', 'date': Timestamp('2025-04-17 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8022/accel/ses-2/sub-8022_ses-2_accel.csv'}]", + "7183": "[{'filename': '1040 (2025-08-09)RAW.csv', 'labID': '1040', 'date': Timestamp('2025-08-09 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7183/accel/ses-1/sub-7183_ses-1_accel.csv'}]", + "7062": "[{'filename': '1043 (2025-02-22)RAW.csv', 'labID': '1043', 'date': Timestamp('2025-02-22 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7062/accel/ses-1/sub-7062_ses-1_accel.csv'}]", + "7146": "[{'filename': '1051 (2025-05-05)RAW.csv', 'labID': '1051', 'date': Timestamp('2025-05-05 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7146/accel/ses-1/sub-7146_ses-1_accel.csv'}]", + "6011": "[{'filename': '1093 (2024-08-09)RAW.csv', 'labID': '1093', 'date': Timestamp('2024-08-09 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-6011/accel/ses-1/sub-6011_ses-1_accel.csv'}]", + "6013": "[{'filename': '1098 (2024-08-14)RAW.csv', 'labID': '1098', 'date': Timestamp('2024-08-14 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-6013/accel/ses-1/sub-6013_ses-1_accel.csv'}]", + "7001": "[{'filename': '1111 (2024-09-05)RAW.csv', 'labID': '1111', 'date': Timestamp('2024-09-05 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7001/accel/ses-1/sub-7001_ses-1_accel.csv'}]", + "7002": "[{'filename': '1112 (2024-08-07)RAW.csv', 'labID': '1112', 'date': Timestamp('2024-08-07 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7002/accel/ses-1/sub-7002_ses-1_accel.csv'}]", + "7003": "[{'filename': '1113 (2024-08-20)RAW.csv', 'labID': '1113', 'date': Timestamp('2024-08-20 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7003/accel/ses-1/sub-7003_ses-1_accel.csv'}]", + "7004": "[{'filename': '1114 (2024-09-04)RAW.csv', 'labID': '1114', 'date': Timestamp('2024-09-04 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7004/accel/ses-1/sub-7004_ses-1_accel.csv'}]", + "7006": "[{'filename': '1115 (2024-08-05)RAW.csv', 'labID': '1115', 'date': Timestamp('2024-08-05 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7006/accel/ses-1/sub-7006_ses-1_accel.csv'}]", + "7012": "[{'filename': '1116 (2024-08-29)RAW.csv', 'labID': '1116', 'date': Timestamp('2024-08-29 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7012/accel/ses-1/sub-7012_ses-1_accel.csv'}]", + "7009": "[{'filename': '1117 (2024-08-07)RAW.csv', 'labID': '1117', 'date': Timestamp('2024-08-07 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7009/accel/ses-1/sub-7009_ses-1_accel.csv'}]", + "7010": "[{'filename': '1118 (2024-08-09)RAW.csv', 'labID': '1118', 'date': Timestamp('2024-08-09 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7010/accel/ses-1/sub-7010_ses-1_accel.csv'}]", + "7015": "[{'filename': '1120 (2024-08-13)RAW.csv', 'labID': '1120', 'date': Timestamp('2024-08-13 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7015/accel/ses-1/sub-7015_ses-1_accel.csv'}]", + "7016": "[{'filename': '1121 (2024-09-03)RAW.csv', 'labID': '1121', 'date': Timestamp('2024-09-03 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7016/accel/ses-1/sub-7016_ses-1_accel.csv'}]", + "7017": "[{'filename': '1122 (2024-08-22)RAW.csv', 'labID': '1122', 'date': Timestamp('2024-08-22 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7017/accel/ses-1/sub-7017_ses-1_accel.csv'}]", + "8001": "[{'filename': '1123 (2024-09-20)RAW.csv', 'labID': '1123', 'date': Timestamp('2024-09-20 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8001/accel/ses-1/sub-8001_ses-1_accel.csv'}]", + "8002": "[{'filename': '1124 (2024-09-13)RAW.csv', 'labID': '1124', 'date': Timestamp('2024-09-13 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8002/accel/ses-1/sub-8002_ses-1_accel.csv'}, {'filename': '1124 (2024-11-07)RAW.csv', 'labID': '1124', 'date': Timestamp('2024-11-07 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8002/accel/ses-2/sub-8002_ses-2_accel.csv'}, {'filename': '1124 (2025-02-26)RAW.csv', 'labID': '1124', 'date': Timestamp('2025-02-26 00:00:00'), 'run': 3, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8002/accel/ses-3/sub-8002_ses-3_accel.csv'}, {'filename': '1124 (2025-05-05)RAW.csv', 'labID': '1124', 'date': Timestamp('2025-05-05 00:00:00'), 'run': 4, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8002/accel/ses-4/sub-8002_ses-4_accel.csv'}]", + "8003": "[{'filename': '1125 (2024-10-04)RAW.csv', 'labID': '1125', 'date': Timestamp('2024-10-04 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8003/accel/ses-1/sub-8003_ses-1_accel.csv'}, {'filename': '1125 (2025-02-01)RAW.csv', 'labID': '1125', 'date': Timestamp('2025-02-01 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8003/accel/ses-2/sub-8003_ses-2_accel.csv'}, {'filename': '1125 (2025-05-31)RAW.csv', 'labID': '1125', 'date': Timestamp('2025-05-31 00:00:00'), 'run': 3, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8003/accel/ses-3/sub-8003_ses-3_accel.csv'}, {'filename': '1125 (2025-07-24)RAW.csv', 'labID': '1125', 'date': Timestamp('2025-07-24 00:00:00'), 'run': 4, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8003/accel/ses-4/sub-8003_ses-4_accel.csv'}]", + "8004": "[{'filename': '1126 (2024-09-25)RAW.csv', 'labID': '1126', 'date': Timestamp('2024-09-25 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8004/accel/ses-1/sub-8004_ses-1_accel.csv'}, {'filename': '1126 (2024-11-22)RAW.csv', 'labID': '1126', 'date': Timestamp('2024-11-22 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8004/accel/ses-2/sub-8004_ses-2_accel.csv'}, {'filename': '1126 (2025-03-12)RAW.csv', 'labID': '1126', 'date': Timestamp('2025-03-12 00:00:00'), 'run': 3, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8004/accel/ses-3/sub-8004_ses-3_accel.csv'}, {'filename': '1126 (2025-04-30)RAW.csv', 'labID': '1126', 'date': Timestamp('2025-04-30 00:00:00'), 'run': 4, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8004/accel/ses-4/sub-8004_ses-4_accel.csv'}]", + "8006": "[{'filename': '1129 (2024-09-20)RAW.csv', 'labID': '1129', 'date': Timestamp('2024-09-20 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8006/accel/ses-1/sub-8006_ses-1_accel.csv'}, {'filename': '1129 (2024-12-12)RAW.csv', 'labID': '1129', 'date': Timestamp('2024-12-12 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8006/accel/ses-2/sub-8006_ses-2_accel.csv'}, {'filename': '1129 (2025-04-16)RAW.csv', 'labID': '1129', 'date': Timestamp('2025-04-16 00:00:00'), 'run': 3, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8006/accel/ses-3/sub-8006_ses-3_accel.csv'}, {'filename': '1129 (2025-05-14)RAW.csv', 'labID': '1129', 'date': Timestamp('2025-05-14 00:00:00'), 'run': 4, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8006/accel/ses-4/sub-8006_ses-4_accel.csv'}]", + "7019": "[{'filename': '1130 (2024-09-24)RAW.csv', 'labID': '1130', 'date': Timestamp('2024-09-24 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7019/accel/ses-1/sub-7019_ses-1_accel.csv'}]", + "7020": "[{'filename': '1131 (2024-10-08)RAW.csv', 'labID': '1131', 'date': Timestamp('2024-10-08 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7020/accel/ses-1/sub-7020_ses-1_accel.csv'}]", + "7021": "[{'filename': '1132 (2024-10-02)RAW.csv', 'labID': '1132', 'date': Timestamp('2024-10-02 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7021/accel/ses-1/sub-7021_ses-1_accel.csv'}]", + "7022": "[{'filename': '1133 (2024-10-01)RAW.csv', 'labID': '1133', 'date': Timestamp('2024-10-01 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7022/accel/ses-1/sub-7022_ses-1_accel.csv'}]", + "8005": "[{'filename': '1134 (2024-10-30)RAW.csv', 'labID': '1134', 'date': Timestamp('2024-10-30 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8005/accel/ses-1/sub-8005_ses-1_accel.csv'}, {'filename': '1134 (2025-01-15)RAW.csv', 'labID': '1134', 'date': Timestamp('2025-01-15 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8005/accel/ses-2/sub-8005_ses-2_accel.csv'}, {'filename': '1134 (2025-05-22)RAW.csv', 'labID': '1134', 'date': Timestamp('2025-05-22 00:00:00'), 'run': 3, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8005/accel/ses-3/sub-8005_ses-3_accel.csv'}, {'filename': '1134 (2025-06-26)RAW.csv', 'labID': '1134', 'date': Timestamp('2025-06-26 00:00:00'), 'run': 4, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8005/accel/ses-4/sub-8005_ses-4_accel.csv'}, {'filename': '1134 (2025-07-18)RAW.csv', 'labID': '1134', 'date': Timestamp('2025-07-18 00:00:00'), 'run': 5, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8005/accel/ses-5/sub-8005_ses-5_accel.csv'}]", + "7024": "[{'filename': '1136 (2024-10-11)RAW.csv', 'labID': '1136', 'date': Timestamp('2024-10-11 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7024/accel/ses-1/sub-7024_ses-1_accel.csv'}]", + "7025": "[{'filename': '1137 (2024-10-11)RAW.csv', 'labID': '1137', 'date': Timestamp('2024-10-11 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7025/accel/ses-1/sub-7025_ses-1_accel.csv'}]", + "7026": "[{'filename': '1138 (2024-10-24)RAW.csv', 'labID': '1138', 'date': Timestamp('2024-10-24 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7026/accel/ses-1/sub-7026_ses-1_accel.csv'}]", + "7027": "[{'filename': '1139 (2024-11-08)RAW.csv', 'labID': '1139', 'date': Timestamp('2024-11-08 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7027/accel/ses-1/sub-7027_ses-1_accel.csv'}]", + "7028": "[{'filename': '1140 (2024-10-28)RAW.csv', 'labID': '1140', 'date': Timestamp('2024-10-28 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7028/accel/ses-1/sub-7028_ses-1_accel.csv'}]", + "7029": "[{'filename': '1141 (2024-11-05)RAW.csv', 'labID': '1141', 'date': Timestamp('2024-11-05 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7029/accel/ses-1/sub-7029_ses-1_accel.csv'}]", + "7030": "[{'filename': '1142 (2024-10-24)RAW.csv', 'labID': '1142', 'date': Timestamp('2024-10-24 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7030/accel/ses-1/sub-7030_ses-1_accel.csv'}]", + "7032": "[{'filename': '1144 (2024-11-12)RAW.csv', 'labID': '1144', 'date': Timestamp('2024-11-12 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7032/accel/ses-1/sub-7032_ses-1_accel.csv'}]", + "7033": "[{'filename': '1145 (2024-11-06)RAW.csv', 'labID': '1145', 'date': Timestamp('2024-11-06 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7033/accel/ses-1/sub-7033_ses-1_accel.csv'}]", + "8008": "[{'filename': '1146 (2024-11-04)RAW.csv', 'labID': '1146', 'date': Timestamp('2024-11-04 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8008/accel/ses-1/sub-8008_ses-1_accel.csv'}, {'filename': '1146 (2025-01-09)RAW.csv', 'labID': '1146', 'date': Timestamp('2025-01-09 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8008/accel/ses-2/sub-8008_ses-2_accel.csv'}, {'filename': '1146 (2025-03-19)RAW.csv', 'labID': '1146', 'date': Timestamp('2025-03-19 00:00:00'), 'run': 3, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8008/accel/ses-3/sub-8008_ses-3_accel.csv'}]", + "7034": "[{'filename': '1147 (2024-11-14)RAW.csv', 'labID': '1147', 'date': Timestamp('2024-11-14 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7034/accel/ses-1/sub-7034_ses-1_accel.csv'}]", + "7035": "[{'filename': '1148 (2024-11-04)RAW.csv', 'labID': '1148', 'date': Timestamp('2024-11-04 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7035/accel/ses-1/sub-7035_ses-1_accel.csv'}]", + "8009": "[{'filename': '1149 (2025-08-15)RAW.csv', 'labID': '1149', 'date': Timestamp('2025-08-15 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8009/accel/ses-1/sub-8009_ses-1_accel.csv'}]", + "8011": "[{'filename': '1151 (2024-12-06)RAW.csv', 'labID': '1151', 'date': Timestamp('2024-12-06 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8011/accel/ses-1/sub-8011_ses-1_accel.csv'}, {'filename': '1151 (2025-02-20)RAW.csv', 'labID': '1151', 'date': Timestamp('2025-02-20 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8011/accel/ses-2/sub-8011_ses-2_accel.csv'}]", + "7031": "[{'filename': '1155 (2024-12-18)RAW.csv', 'labID': '1155', 'date': Timestamp('2024-12-18 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7031/accel/ses-1/sub-7031_ses-1_accel.csv'}]", + "8012": "[{'filename': '1158 (2025-01-09)RAW.csv', 'labID': '1158', 'date': Timestamp('2025-01-09 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8012/accel/ses-1/sub-8012_ses-1_accel.csv'}, {'filename': '1158 (2025-05-09)RAW.csv', 'labID': '1158', 'date': Timestamp('2025-05-09 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8012/accel/ses-2/sub-8012_ses-2_accel.csv'}]", + "8014": "[{'filename': '1160 (2025-01-15)RAW.csv', 'labID': '1160', 'date': Timestamp('2025-01-15 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8014/accel/ses-1/sub-8014_ses-1_accel.csv'}, {'filename': '1160 (2025-05-03)RAW.csv', 'labID': '1160', 'date': Timestamp('2025-05-03 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8014/accel/ses-2/sub-8014_ses-2_accel.csv'}]", + "7037": "[{'filename': '1161 (2025-01-18)RAW.csv', 'labID': '1161', 'date': Timestamp('2025-01-18 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7037/accel/ses-1/sub-7037_ses-1_accel.csv'}]", + "8015": "[{'filename': '1162 (2025-01-29)RAW.csv', 'labID': '1162', 'date': Timestamp('2025-01-29 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8015/accel/ses-1/sub-8015_ses-1_accel.csv'}]", + "8016": "[{'filename': '1163 (2025-02-19)RAW.csv', 'labID': '1163', 'date': Timestamp('2025-02-19 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8016/accel/ses-1/sub-8016_ses-1_accel.csv'}, {'filename': '1163 (2025-04-07)RAW.csv', 'labID': '1163', 'date': Timestamp('2025-04-07 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8016/accel/ses-2/sub-8016_ses-2_accel.csv'}]", + "8017": "[{'filename': '1165 (2025-04-09)RAW.csv', 'labID': '1165', 'date': Timestamp('2025-04-09 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8017/accel/ses-1/sub-8017_ses-1_accel.csv'}]", + "7039": "[{'filename': '1166 (2025-01-21)RAW.csv', 'labID': '1166', 'date': Timestamp('2025-01-21 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7039/accel/ses-1/sub-7039_ses-1_accel.csv'}]", + "8018": "[{'filename': '1167 (2025-01-21)RAW.csv', 'labID': '1167', 'date': Timestamp('2025-01-21 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8018/accel/ses-1/sub-8018_ses-1_accel.csv'}, {'filename': '1167 (2025-01-22)RAW.csv', 'labID': '1167', 'date': Timestamp('2025-01-22 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8018/accel/ses-2/sub-8018_ses-2_accel.csv'}, {'filename': '1167 (2025-05-21)RAW.csv', 'labID': '1167', 'date': Timestamp('2025-05-21 00:00:00'), 'run': 3, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8018/accel/ses-3/sub-8018_ses-3_accel.csv'}]", + "8019": "[{'filename': '1168 (2025-01-28)RAW.csv', 'labID': '1168', 'date': Timestamp('2025-01-28 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8019/accel/ses-1/sub-8019_ses-1_accel.csv'}, {'filename': '1168 (2025-04-23)RAW.csv', 'labID': '1168', 'date': Timestamp('2025-04-23 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8019/accel/ses-2/sub-8019_ses-2_accel.csv'}]", + "8020": "[{'filename': '1169 (2025-01-30)RAW.csv', 'labID': '1169', 'date': Timestamp('2025-01-30 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8020/accel/ses-1/sub-8020_ses-1_accel.csv'}, {'filename': '1169 (2025-04-09)RAW.csv', 'labID': '1169', 'date': Timestamp('2025-04-09 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8020/accel/ses-2/sub-8020_ses-2_accel.csv'}, {'filename': '1169 (2025-07-31)RAW.csv', 'labID': '1169', 'date': Timestamp('2025-07-31 00:00:00'), 'run': 3, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8020/accel/ses-3/sub-8020_ses-3_accel.csv'}]", + "8021": "[{'filename': '1170 (2025-01-29)RAW.csv', 'labID': '1170', 'date': Timestamp('2025-01-29 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8021/accel/ses-1/sub-8021_ses-1_accel.csv'}, {'filename': '1170 (2025-05-24)RAW.csv', 'labID': '1170', 'date': Timestamp('2025-05-24 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8021/accel/ses-2/sub-8021_ses-2_accel.csv'}]", + "7040": "[{'filename': '1171 (2025-02-08)RAW.csv', 'labID': '1171', 'date': Timestamp('2025-02-08 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7040/accel/ses-1/sub-7040_ses-1_accel.csv'}]", + "7041": "[{'filename': '1172 (2025-01-28)RAW.csv', 'labID': '1172', 'date': Timestamp('2025-01-28 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7041/accel/ses-1/sub-7041_ses-1_accel.csv'}, {'filename': '1172 (2025-05-29)RAW.csv', 'labID': '1172', 'date': Timestamp('2025-05-29 00:00:00'), 'run': 2, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7041/accel/ses-2/sub-7041_ses-2_accel.csv'}]", + "7042": "[{'filename': '1173 (2025-03-01)RAW.csv', 'labID': '1173', 'date': Timestamp('2025-03-01 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7042/accel/ses-1/sub-7042_ses-1_accel.csv'}]", + "7043": "[{'filename': '1174 (2025-01-27)RAW.csv', 'labID': '1174', 'date': Timestamp('2025-01-27 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7043/accel/ses-1/sub-7043_ses-1_accel.csv'}, {'filename': '1174 (2025-01-28)RAW.csv', 'labID': '1174', 'date': Timestamp('2025-01-28 00:00:00'), 'run': 2, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7043/accel/ses-2/sub-7043_ses-2_accel.csv'}]", + "7047": "[{'filename': '1178 (2025-02-12)RAW.csv', 'labID': '1178', 'date': Timestamp('2025-02-12 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7047/accel/ses-1/sub-7047_ses-1_accel.csv'}]", + "7048": "[{'filename': '1179 (2025-03-11)RAW.csv', 'labID': '1179', 'date': Timestamp('2025-03-11 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7048/accel/ses-1/sub-7048_ses-1_accel.csv'}]", + "7049": "[{'filename': '1180 (2025-02-18)RAW.csv', 'labID': '1180', 'date': Timestamp('2025-02-18 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7049/accel/ses-1/sub-7049_ses-1_accel.csv'}]", + "7050": "[{'filename': '1181 (2025-02-21)RAW.csv', 'labID': '1181', 'date': Timestamp('2025-02-21 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7050/accel/ses-1/sub-7050_ses-1_accel.csv'}]", + "7052": "[{'filename': '1183 (2025-02-13)RAW.csv', 'labID': '1183', 'date': Timestamp('2025-02-13 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7052/accel/ses-1/sub-7052_ses-1_accel.csv'}]", + "8023": "[{'filename': '1185 (2025-04-10)RAW.csv', 'labID': '1185', 'date': Timestamp('2025-04-10 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8023/accel/ses-1/sub-8023_ses-1_accel.csv'}, {'filename': '1185 (2025-06-23)RAW.csv', 'labID': '1185', 'date': Timestamp('2025-06-23 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8023/accel/ses-2/sub-8023_ses-2_accel.csv'}]", + "8024": "[{'filename': '1186 (2025-03-08)RAW.csv', 'labID': '1186', 'date': Timestamp('2025-03-08 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8024/accel/ses-1/sub-8024_ses-1_accel.csv'}, {'filename': '1186 (2025-05-30)RAW.csv', 'labID': '1186', 'date': Timestamp('2025-05-30 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8024/accel/ses-2/sub-8024_ses-2_accel.csv'}]", + "7054": "[{'filename': '1187 (2025-02-11)RAW.csv', 'labID': '1187', 'date': Timestamp('2025-02-11 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7054/accel/ses-1/sub-7054_ses-1_accel.csv'}]", + "7055": "[{'filename': '1189 (2025-08-15)RAW.csv', 'labID': '1189', 'date': Timestamp('2025-08-15 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7055/accel/ses-1/sub-7055_ses-1_accel.csv'}]", + "7056": "[{'filename': '1190 (2025-02-22)RAW.csv', 'labID': '1190', 'date': Timestamp('2025-02-22 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7056/accel/ses-1/sub-7056_ses-1_accel.csv'}]", + "7057": "[{'filename': '1191 (2025-02-15)RAW.csv', 'labID': '1191', 'date': Timestamp('2025-02-15 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7057/accel/ses-1/sub-7057_ses-1_accel.csv'}]", + "7058": "[{'filename': '1192 (2025-02-21)RAW.csv', 'labID': '1192', 'date': Timestamp('2025-02-21 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7058/accel/ses-1/sub-7058_ses-1_accel.csv'}]", + "7059": "[{'filename': '1193 (2025-02-25)RAW.csv', 'labID': '1193', 'date': Timestamp('2025-02-25 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7059/accel/ses-1/sub-7059_ses-1_accel.csv'}]", + "8026": "[{'filename': '1194 (2025-02-04)RAW.csv', 'labID': '1194', 'date': Timestamp('2025-02-04 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8026/accel/ses-1/sub-8026_ses-1_accel.csv'}, {'filename': '1194 (2025-05-23)RAW.csv', 'labID': '1194', 'date': Timestamp('2025-05-23 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8026/accel/ses-2/sub-8026_ses-2_accel.csv'}]", + "7061": "[{'filename': '1196 (2025-02-15)RAW.csv', 'labID': '1196', 'date': Timestamp('2025-02-15 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7061/accel/ses-1/sub-7061_ses-1_accel.csv'}]", + "7063": "[{'filename': '1197 (2025-02-25)RAW.csv', 'labID': '1197', 'date': Timestamp('2025-02-25 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7063/accel/ses-1/sub-7063_ses-1_accel.csv'}]", + "8030": "[{'filename': '1200 (2025-05-10)RAW.csv', 'labID': '1200', 'date': Timestamp('2025-05-10 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8030/accel/ses-1/sub-8030_ses-1_accel.csv'}]", + "7064": "[{'filename': '1202 (2025-03-01)RAW.csv', 'labID': '1202', 'date': Timestamp('2025-03-01 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7064/accel/ses-1/sub-7064_ses-1_accel.csv'}]", + "7067": "[{'filename': '1205 (2025-02-21)RAW.csv', 'labID': '1205', 'date': Timestamp('2025-02-21 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7067/accel/ses-1/sub-7067_ses-1_accel.csv'}]", + "7068": "[{'filename': '1206 (2025-02-27)RAW.csv', 'labID': '1206', 'date': Timestamp('2025-02-27 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7068/accel/ses-1/sub-7068_ses-1_accel.csv'}]", + "7069": "[{'filename': '1207 (2025-03-01)RAW.csv', 'labID': '1207', 'date': Timestamp('2025-03-01 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7069/accel/ses-1/sub-7069_ses-1_accel.csv'}]", + "7072": "[{'filename': '1210 (2025-03-01)RAW.csv', 'labID': '1210', 'date': Timestamp('2025-03-01 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7072/accel/ses-1/sub-7072_ses-1_accel.csv'}]", + "7073": "[{'filename': '1211 (2025-03-01)RAW.csv', 'labID': '1211', 'date': Timestamp('2025-03-01 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7073/accel/ses-1/sub-7073_ses-1_accel.csv'}]", + "7075": "[{'filename': '1213 (2025-03-04)RAW.csv', 'labID': '1213', 'date': Timestamp('2025-03-04 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7075/accel/ses-1/sub-7075_ses-1_accel.csv'}]", + "7076": "[{'filename': '1214 (2025-03-11)RAW.csv', 'labID': '1214', 'date': Timestamp('2025-03-11 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7076/accel/ses-1/sub-7076_ses-1_accel.csv'}]", + "7077": "[{'filename': '1215 (2025-03-14)RAW.csv', 'labID': '1215', 'date': Timestamp('2025-03-14 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7077/accel/ses-1/sub-7077_ses-1_accel.csv'}]", + "7078": "[{'filename': '1216 (2025-03-08)RAW.csv', 'labID': '1216', 'date': Timestamp('2025-03-08 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7078/accel/ses-1/sub-7078_ses-1_accel.csv'}]", + "7079": "[{'filename': '1217 (2025-03-13)RAW.csv', 'labID': '1217', 'date': Timestamp('2025-03-13 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7079/accel/ses-1/sub-7079_ses-1_accel.csv'}]", + "7080": "[{'filename': '1218 (2025-03-07)RAW.csv', 'labID': '1218', 'date': Timestamp('2025-03-07 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7080/accel/ses-1/sub-7080_ses-1_accel.csv'}]", + "7082": "[{'filename': '1220 (2025-03-19)RAW.csv', 'labID': '1220', 'date': Timestamp('2025-03-19 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7082/accel/ses-1/sub-7082_ses-1_accel.csv'}]", + "8032": "[{'filename': '1221 (2025-05-22)RAW.csv', 'labID': '1221', 'date': Timestamp('2025-05-22 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8032/accel/ses-1/sub-8032_ses-1_accel.csv'}, {'filename': '1221 (2025-08-04)RAW.csv', 'labID': '1221', 'date': Timestamp('2025-08-04 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8032/accel/ses-2/sub-8032_ses-2_accel.csv'}]", + "7083": "[{'filename': '1222 (2025-03-06)RAW.csv', 'labID': '1222', 'date': Timestamp('2025-03-06 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7083/accel/ses-1/sub-7083_ses-1_accel.csv'}]", + "7084": "[{'filename': '1223 (2025-03-29)RAW.csv', 'labID': '1223', 'date': Timestamp('2025-03-29 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7084/accel/ses-1/sub-7084_ses-1_accel.csv'}]", + "7085": "[{'filename': '1224 (2025-03-18)RAW.csv', 'labID': '1224', 'date': Timestamp('2025-03-18 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7085/accel/ses-1/sub-7085_ses-1_accel.csv'}]", + "7086": "[{'filename': '1225 (2025-03-06)RAW.csv', 'labID': '1225', 'date': Timestamp('2025-03-06 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7086/accel/ses-1/sub-7086_ses-1_accel.csv'}]", + "7087": "[{'filename': '1226 (2025-03-06)RAW.csv', 'labID': '1226', 'date': Timestamp('2025-03-06 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7087/accel/ses-1/sub-7087_ses-1_accel.csv'}]", + "7088": "[{'filename': '1227 (2025-04-03)RAW.csv', 'labID': '1227', 'date': Timestamp('2025-04-03 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7088/accel/ses-1/sub-7088_ses-1_accel.csv'}]", + "7089": "[{'filename': '1228 (2025-03-20)RAW.csv', 'labID': '1228', 'date': Timestamp('2025-03-20 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7089/accel/ses-1/sub-7089_ses-1_accel.csv'}]", + "7093": "[{'filename': '1232 (2025-03-12)RAW.csv', 'labID': '1232', 'date': Timestamp('2025-03-12 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7093/accel/ses-1/sub-7093_ses-1_accel.csv'}]", + "7094": "[{'filename': '1233 (2025-03-27)RAW.csv', 'labID': '1233', 'date': Timestamp('2025-03-27 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7094/accel/ses-1/sub-7094_ses-1_accel.csv'}]", + "7065": "[{'filename': '1234 (2025-03-20)RAW.csv', 'labID': '1234', 'date': Timestamp('2025-03-20 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7065/accel/ses-1/sub-7065_ses-1_accel.csv'}]", + "7096": "[{'filename': '1236 (2025-03-29)RAW.csv', 'labID': '1236', 'date': Timestamp('2025-03-29 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7096/accel/ses-1/sub-7096_ses-1_accel.csv'}]", + "7098": "[{'filename': '1239 (2025-04-05)RAW.csv', 'labID': '1239', 'date': Timestamp('2025-04-05 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7098/accel/ses-1/sub-7098_ses-1_accel.csv'}]", + "7099": "[{'filename': '1240 (2025-03-08)RAW.csv', 'labID': '1240', 'date': Timestamp('2025-03-08 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7099/accel/ses-1/sub-7099_ses-1_accel.csv'}]", + "7102": "[{'filename': '1242 (2025-03-28)RAW.csv', 'labID': '1242', 'date': Timestamp('2025-03-28 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7102/accel/ses-1/sub-7102_ses-1_accel.csv'}]", + "7045": "[{'filename': '1243 (2025-03-20)RAW.csv', 'labID': '1243', 'date': Timestamp('2025-03-20 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7045/accel/ses-1/sub-7045_ses-1_accel.csv'}]", + "7103": "[{'filename': '1244 (2025-04-03)RAW.csv', 'labID': '1244', 'date': Timestamp('2025-04-03 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7103/accel/ses-1/sub-7103_ses-1_accel.csv'}]", + "7104": "[{'filename': '1245 (2025-04-03)RAW.csv', 'labID': '1245', 'date': Timestamp('2025-04-03 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7104/accel/ses-1/sub-7104_ses-1_accel.csv'}]", + "7105": "[{'filename': '1246 (2025-03-14)RAW.csv', 'labID': '1246', 'date': Timestamp('2025-03-14 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7105/accel/ses-1/sub-7105_ses-1_accel.csv'}]", + "8035": "[{'filename': '1249 (2025-03-19)RAW.csv', 'labID': '1249', 'date': Timestamp('2025-03-19 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8035/accel/ses-1/sub-8035_ses-1_accel.csv'}, {'filename': '1249 (2025-05-31)RAW.csv', 'labID': '1249', 'date': Timestamp('2025-05-31 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8035/accel/ses-2/sub-8035_ses-2_accel.csv'}]", + "7091": "[{'filename': '1250 (2025-03-27)RAW.csv', 'labID': '1250', 'date': Timestamp('2025-03-27 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7091/accel/ses-1/sub-7091_ses-1_accel.csv'}]", + "7070": "[{'filename': '1251 (2025-04-05)RAW.csv', 'labID': '1251', 'date': Timestamp('2025-04-05 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7070/accel/ses-1/sub-7070_ses-1_accel.csv'}]", + "7106": "[{'filename': '1252 (2025-03-28)RAW.csv', 'labID': '1252', 'date': Timestamp('2025-03-28 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7106/accel/ses-1/sub-7106_ses-1_accel.csv'}]", + "7107": "[{'filename': '1254 (2025-04-12)RAW.csv', 'labID': '1254', 'date': Timestamp('2025-04-12 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7107/accel/ses-1/sub-7107_ses-1_accel.csv'}]", + "7108": "[{'filename': '1255 (2025-03-14)RAW.csv', 'labID': '1255', 'date': Timestamp('2025-03-14 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7108/accel/ses-1/sub-7108_ses-1_accel.csv'}]", + "7110": "[{'filename': '1257 (2025-04-04)RAW.csv', 'labID': '1257', 'date': Timestamp('2025-04-04 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7110/accel/ses-1/sub-7110_ses-1_accel.csv'}]", + "7092": "[{'filename': '1260 (2025-03-28)RAW.csv', 'labID': '1260', 'date': Timestamp('2025-03-28 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7092/accel/ses-1/sub-7092_ses-1_accel.csv'}]", + "7090": "[{'filename': '1261 (2025-04-11)RAW.csv', 'labID': '1261', 'date': Timestamp('2025-04-11 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7090/accel/ses-1/sub-7090_ses-1_accel.csv'}]", + "7113": "[{'filename': '1262 (2025-04-04)RAW.csv', 'labID': '1262', 'date': Timestamp('2025-04-04 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7113/accel/ses-1/sub-7113_ses-1_accel.csv'}]", + "7114": "[{'filename': '1263 (2025-03-29)RAW.csv', 'labID': '1263', 'date': Timestamp('2025-03-29 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7114/accel/ses-1/sub-7114_ses-1_accel.csv'}]", + "7097": "[{'filename': '1264 (2025-04-05)RAW.csv', 'labID': '1264', 'date': Timestamp('2025-04-05 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7097/accel/ses-1/sub-7097_ses-1_accel.csv'}]", + "7115": "[{'filename': '1265 (2025-04-02)RAW.csv', 'labID': '1265', 'date': Timestamp('2025-04-02 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7115/accel/ses-1/sub-7115_ses-1_accel.csv'}]", + "7116": "[{'filename': '1266 (2025-04-03)RAW.csv', 'labID': '1266', 'date': Timestamp('2025-04-03 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7116/accel/ses-1/sub-7116_ses-1_accel.csv'}]", + "7117": "[{'filename': '1267 (2025-03-22)RAW.csv', 'labID': '1267', 'date': Timestamp('2025-03-22 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7117/accel/ses-1/sub-7117_ses-1_accel.csv'}]", + "7118": "[{'filename': '1268 (2025-04-08)RAW.csv', 'labID': '1268', 'date': Timestamp('2025-04-08 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7118/accel/ses-1/sub-7118_ses-1_accel.csv'}]", + "7120": "[{'filename': '1270 (2025-04-12)RAW.csv', 'labID': '1270', 'date': Timestamp('2025-04-12 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7120/accel/ses-1/sub-7120_ses-1_accel.csv'}]", + "7122": "[{'filename': '1272 (2025-04-05)RAW.csv', 'labID': '1272', 'date': Timestamp('2025-04-05 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7122/accel/ses-1/sub-7122_ses-1_accel.csv'}]", + "8036": "[{'filename': '1273 (2025-03-25)RAW.csv', 'labID': '1273', 'date': Timestamp('2025-03-25 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8036/accel/ses-1/sub-8036_ses-1_accel.csv'}, {'filename': '1273 (2025-08-16)RAW.csv', 'labID': '1273', 'date': Timestamp('2025-08-16 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8036/accel/ses-2/sub-8036_ses-2_accel.csv'}]", + "8037": "[{'filename': '1276 (2025-04-04)RAW.csv', 'labID': '1276', 'date': Timestamp('2025-04-04 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8037/accel/ses-1/sub-8037_ses-1_accel.csv'}]", + "7124": "[{'filename': '1290 (2025-04-10)RAW.csv', 'labID': '1290', 'date': Timestamp('2025-04-10 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7124/accel/ses-1/sub-7124_ses-1_accel.csv'}]", + "7125": "[{'filename': '1291 (2025-04-10)RAW.csv', 'labID': '1291', 'date': Timestamp('2025-04-10 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7125/accel/ses-1/sub-7125_ses-1_accel.csv'}]", + "7128": "[{'filename': '1298 (2025-04-18)RAW.csv', 'labID': '1298', 'date': Timestamp('2025-04-18 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7128/accel/ses-1/sub-7128_ses-1_accel.csv'}]", + "7129": "[{'filename': '1299 (2025-04-19)RAW.csv', 'labID': '1299', 'date': Timestamp('2025-04-19 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7129/accel/ses-1/sub-7129_ses-1_accel.csv'}]", + "8038": "[{'filename': '1302 (2025-04-26)RAW.csv', 'labID': '1302', 'date': Timestamp('2025-04-26 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8038/accel/ses-1/sub-8038_ses-1_accel.csv'}, {'filename': '1302 (2025-07-19)RAW.csv', 'labID': '1302', 'date': Timestamp('2025-07-19 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8038/accel/ses-2/sub-8038_ses-2_accel.csv'}]", + "7133": "[{'filename': '1304 (2025-04-29)RAW.csv', 'labID': '1304', 'date': Timestamp('2025-04-29 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7133/accel/ses-1/sub-7133_ses-1_accel.csv'}]", + "7134": "[{'filename': '1311 (2025-05-01)RAW.csv', 'labID': '1311', 'date': Timestamp('2025-05-01 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7134/accel/ses-1/sub-7134_ses-1_accel.csv'}]", + "7136": "[{'filename': '1313 (2025-06-03)RAW.csv', 'labID': '1313', 'date': Timestamp('2025-06-03 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7136/accel/ses-1/sub-7136_ses-1_accel.csv'}]", + "8039": "[{'filename': '1314 (2025-05-20)RAW.csv', 'labID': '1314', 'date': Timestamp('2025-05-20 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8039/accel/ses-1/sub-8039_ses-1_accel.csv'}, {'filename': '1314 (2025-07-15)RAW.csv', 'labID': '1314', 'date': Timestamp('2025-07-15 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8039/accel/ses-2/sub-8039_ses-2_accel.csv'}]", + "7137": "[{'filename': '1315 (2025-05-05)RAW.csv', 'labID': '1315', 'date': Timestamp('2025-05-05 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7137/accel/ses-1/sub-7137_ses-1_accel.csv'}]", + "8040": "[{'filename': '1317 (2025-05-20)RAW.csv', 'labID': '1317', 'date': Timestamp('2025-05-20 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8040/accel/ses-1/sub-8040_ses-1_accel.csv'}, {'filename': '1317 (2025-08-04)RAW.csv', 'labID': '1317', 'date': Timestamp('2025-08-04 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8040/accel/ses-2/sub-8040_ses-2_accel.csv'}]", + "8042": "[{'filename': '1320 (2025-05-20)RAW.csv', 'labID': '1320', 'date': Timestamp('2025-05-20 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8042/accel/ses-1/sub-8042_ses-1_accel.csv'}]", + "7138": "[{'filename': '1321 (2025-05-17)RAW.csv', 'labID': '1321', 'date': Timestamp('2025-05-17 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7138/accel/ses-1/sub-7138_ses-1_accel.csv'}]", + "7139": "[{'filename': '1322 (2025-05-10)RAW.csv', 'labID': '1322', 'date': Timestamp('2025-05-10 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7139/accel/ses-1/sub-7139_ses-1_accel.csv'}]", + "7140": "[{'filename': '1323 (2025-05-10)RAW.csv', 'labID': '1323', 'date': Timestamp('2025-05-10 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7140/accel/ses-1/sub-7140_ses-1_accel.csv'}]", + "7141": "[{'filename': '1324 (2025-05-17)RAW.csv', 'labID': '1324', 'date': Timestamp('2025-05-17 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7141/accel/ses-1/sub-7141_ses-1_accel.csv'}]", + "7142": "[{'filename': '1325 (2025-05-21)RAW.csv', 'labID': '1325', 'date': Timestamp('2025-05-21 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7142/accel/ses-1/sub-7142_ses-1_accel.csv'}]", + "7145": "[{'filename': '1327 (2025-05-10)RAW.csv', 'labID': '1327', 'date': Timestamp('2025-05-10 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7145/accel/ses-1/sub-7145_ses-1_accel.csv'}]", + "7147": "[{'filename': '1328 (2025-06-24)RAW.csv', 'labID': '1328', 'date': Timestamp('2025-06-24 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7147/accel/ses-1/sub-7147_ses-1_accel.csv'}]", + "8046": "[{'filename': '1330 (2025-05-28)RAW.csv', 'labID': '1330', 'date': Timestamp('2025-05-28 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8046/accel/ses-1/sub-8046_ses-1_accel.csv'}, {'filename': '1330 (2025-08-01)RAW.csv', 'labID': '1330', 'date': Timestamp('2025-08-01 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8046/accel/ses-2/sub-8046_ses-2_accel.csv'}]", + "7150": "[{'filename': '1332 (2025-05-24)RAW.csv', 'labID': '1332', 'date': Timestamp('2025-05-24 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7150/accel/ses-1/sub-7150_ses-1_accel.csv'}]", + "7151": "[{'filename': '1333 (2025-05-13)RAW.csv', 'labID': '1333', 'date': Timestamp('2025-05-13 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7151/accel/ses-1/sub-7151_ses-1_accel.csv'}]", + "7152": "[{'filename': '1334 (2025-05-24)RAW.csv', 'labID': '1334', 'date': Timestamp('2025-05-24 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7152/accel/ses-1/sub-7152_ses-1_accel.csv'}]", + "8047": "[{'filename': '1335 (2025-05-14)RAW.csv', 'labID': '1335', 'date': Timestamp('2025-05-14 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8047/accel/ses-1/sub-8047_ses-1_accel.csv'}, {'filename': '1335 (2025-07-18)RAW.csv', 'labID': '1335', 'date': Timestamp('2025-07-18 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8047/accel/ses-2/sub-8047_ses-2_accel.csv'}]", + "8048": "[{'filename': '1336 (2025-06-06)RAW.csv', 'labID': '1336', 'date': Timestamp('2025-06-06 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8048/accel/ses-1/sub-8048_ses-1_accel.csv'}]", + "7153": "[{'filename': '1337 (2025-05-17)RAW.csv', 'labID': '1337', 'date': Timestamp('2025-05-17 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7153/accel/ses-1/sub-7153_ses-1_accel.csv'}]", + "7155": "[{'filename': '1340 (2025-06-03)RAW.csv', 'labID': '1340', 'date': Timestamp('2025-06-03 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7155/accel/ses-1/sub-7155_ses-1_accel.csv'}]", + "8050": "[{'filename': '1341 (2025-05-21)RAW.csv', 'labID': '1341', 'date': Timestamp('2025-05-21 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8050/accel/ses-1/sub-8050_ses-1_accel.csv'}, {'filename': '1341 (2025-08-08)RAW.csv', 'labID': '1341', 'date': Timestamp('2025-08-08 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8050/accel/ses-2/sub-8050_ses-2_accel.csv'}]", + "7156": "[{'filename': '1342 (2025-05-24)RAW.csv', 'labID': '1342', 'date': Timestamp('2025-05-24 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7156/accel/ses-1/sub-7156_ses-1_accel.csv'}]", + "8051": "[{'filename': '1343 (2025-06-20)RAW.csv', 'labID': '1343', 'date': Timestamp('2025-06-20 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8051/accel/ses-1/sub-8051_ses-1_accel.csv'}]", + "7157": "[{'filename': '1344 (2025-05-16)RAW.csv', 'labID': '1344', 'date': Timestamp('2025-05-16 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7157/accel/ses-1/sub-7157_ses-1_accel.csv'}]", + "8052": "[{'filename': '1345 (2025-05-28)RAW.csv', 'labID': '1345', 'date': Timestamp('2025-05-28 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8052/accel/ses-1/sub-8052_ses-1_accel.csv'}, {'filename': '1345 (2025-08-21)RAW.csv', 'labID': '1345', 'date': Timestamp('2025-08-21 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8052/accel/ses-2/sub-8052_ses-2_accel.csv'}]", + "8053": "[{'filename': '1346 (2025-06-04)RAW.csv', 'labID': '1346', 'date': Timestamp('2025-06-04 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8053/accel/ses-1/sub-8053_ses-1_accel.csv'}, {'filename': '1346 (2025-07-25)RAW.csv', 'labID': '1346', 'date': Timestamp('2025-07-25 00:00:00'), 'run': 2, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8053/accel/ses-2/sub-8053_ses-2_accel.csv'}]", + "8054": "[{'filename': '1347 (2025-05-30)RAW.csv', 'labID': '1347', 'date': Timestamp('2025-05-30 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8054/accel/ses-1/sub-8054_ses-1_accel.csv'}]", + "7158": "[{'filename': '1348 (2025-06-05)RAW.csv', 'labID': '1348', 'date': Timestamp('2025-06-05 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7158/accel/ses-1/sub-7158_ses-1_accel.csv'}]", + "7159": "[{'filename': '1349 (2025-06-05)RAW.csv', 'labID': '1349', 'date': Timestamp('2025-06-05 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7159/accel/ses-1/sub-7159_ses-1_accel.csv'}]", + "7160": "[{'filename': '1350 (2025-06-04)RAW.csv', 'labID': '1350', 'date': Timestamp('2025-06-04 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7160/accel/ses-1/sub-7160_ses-1_accel.csv'}]", + "7164": "[{'filename': '1354 (2025-06-12)RAW.csv', 'labID': '1354', 'date': Timestamp('2025-06-12 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7164/accel/ses-1/sub-7164_ses-1_accel.csv'}]", + "7165": "[{'filename': '1355 (2025-06-12)RAW.csv', 'labID': '1355', 'date': Timestamp('2025-06-12 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7165/accel/ses-1/sub-7165_ses-1_accel.csv'}]", + "7161": "[{'filename': '1356 (2025-06-10)RAW.csv', 'labID': '1356', 'date': Timestamp('2025-06-10 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7161/accel/ses-1/sub-7161_ses-1_accel.csv'}]", + "7167": "[{'filename': '1358 (2025-06-21)RAW.csv', 'labID': '1358', 'date': Timestamp('2025-06-21 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7167/accel/ses-1/sub-7167_ses-1_accel.csv'}]", + "7168": "[{'filename': '1359 (2025-06-20)RAW.csv', 'labID': '1359', 'date': Timestamp('2025-06-20 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7168/accel/ses-1/sub-7168_ses-1_accel.csv'}]", + "7170": "[{'filename': '1361 (2025-06-10)RAW.csv', 'labID': '1361', 'date': Timestamp('2025-06-10 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7170/accel/ses-1/sub-7170_ses-1_accel.csv'}]", + "7172": "[{'filename': '1363 (2025-06-18)RAW.csv', 'labID': '1363', 'date': Timestamp('2025-06-18 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7172/accel/ses-1/sub-7172_ses-1_accel.csv'}]", + "7173": "[{'filename': '1364 (2025-07-30)RAW.csv', 'labID': '1364', 'date': Timestamp('2025-07-30 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7173/accel/ses-1/sub-7173_ses-1_accel.csv'}]", + "7174": "[{'filename': '1365 (2025-06-28)RAW.csv', 'labID': '1365', 'date': Timestamp('2025-06-28 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7174/accel/ses-1/sub-7174_ses-1_accel.csv'}]", + "7175": "[{'filename': '1366 (2025-07-02)RAW.csv', 'labID': '1366', 'date': Timestamp('2025-07-02 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7175/accel/ses-1/sub-7175_ses-1_accel.csv'}]", + "7176": "[{'filename': '1367 (2025-08-26)RAW.csv', 'labID': '1367', 'date': Timestamp('2025-08-26 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7176/accel/ses-1/sub-7176_ses-1_accel.csv'}]", + "7180": "[{'filename': '1372 (2025-07-02)RAW.csv', 'labID': '1372', 'date': Timestamp('2025-07-02 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7180/accel/ses-1/sub-7180_ses-1_accel.csv'}]", + "8056": "[{'filename': '1373 (2025-07-03)RAW.csv', 'labID': '1373', 'date': Timestamp('2025-07-03 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8056/accel/ses-1/sub-8056_ses-1_accel.csv'}]", + "8060": "[{'filename': '1377 (2025-07-17)RAW.csv', 'labID': '1377', 'date': Timestamp('2025-07-17 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8060/accel/ses-1/sub-8060_ses-1_accel.csv'}]", + "7181": "[{'filename': '1378 (2025-08-13)RAW.csv', 'labID': '1378', 'date': Timestamp('2025-08-13 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7181/accel/ses-1/sub-7181_ses-1_accel.csv'}]", + "7182": "[{'filename': '1379 (2025-07-22)RAW.csv', 'labID': '1379', 'date': Timestamp('2025-07-22 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7182/accel/ses-1/sub-7182_ses-1_accel.csv'}]", + "7186": "[{'filename': '1382 (2025-07-24)RAW.csv', 'labID': '1382', 'date': Timestamp('2025-07-24 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7186/accel/ses-1/sub-7186_ses-1_accel.csv'}]", + "7187": "[{'filename': '1383 (2025-07-31)RAW.csv', 'labID': '1383', 'date': Timestamp('2025-07-31 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7187/accel/ses-1/sub-7187_ses-1_accel.csv'}]", + "7188": "[{'filename': '1384 (2025-07-31)RAW.csv', 'labID': '1384', 'date': Timestamp('2025-07-31 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7188/accel/ses-1/sub-7188_ses-1_accel.csv'}]", + "7189": "[{'filename': '1385 (2025-07-30)RAW.csv', 'labID': '1385', 'date': Timestamp('2025-07-30 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7189/accel/ses-1/sub-7189_ses-1_accel.csv'}]", + "7190": "[{'filename': '1386 (2025-08-15)RAW.csv', 'labID': '1386', 'date': Timestamp('2025-08-15 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7190/accel/ses-1/sub-7190_ses-1_accel.csv'}]", + "7192": "[{'filename': '1388 (2025-08-05)RAW.csv', 'labID': '1388', 'date': Timestamp('2025-08-05 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7192/accel/ses-1/sub-7192_ses-1_accel.csv'}]", + "7194": "[{'filename': '1390 (2025-08-13)RAW.csv', 'labID': '1390', 'date': Timestamp('2025-08-13 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7194/accel/ses-1/sub-7194_ses-1_accel.csv'}]", + "7196": "[{'filename': '1392 (2025-08-06)RAW.csv', 'labID': '1392', 'date': Timestamp('2025-08-06 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7196/accel/ses-1/sub-7196_ses-1_accel.csv'}]", + "7197": "[{'filename': '1393 (2025-08-05)RAW.csv', 'labID': '1393', 'date': Timestamp('2025-08-05 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7197/accel/ses-1/sub-7197_ses-1_accel.csv'}]", + "8061": "[{'filename': '1395 (2025-08-09)RAW.csv', 'labID': '1395', 'date': Timestamp('2025-08-09 00:00:00'), 'run': 1, 'study': 'int', 'file_path': '/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8061/accel/ses-1/sub-8061_ses-1_accel.csv'}]", + "7200": "[{'filename': '1397 (2025-08-15)RAW.csv', 'labID': '1397', 'date': Timestamp('2025-08-15 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7200/accel/ses-1/sub-7200_ses-1_accel.csv'}]", + "7203": "[{'filename': '1400 (2025-08-27)RAW.csv', 'labID': '1400', 'date': Timestamp('2025-08-27 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7203/accel/ses-1/sub-7203_ses-1_accel.csv'}]", + "7204": "[{'filename': '1401 (2025-08-22)RAW.csv', 'labID': '1401', 'date': Timestamp('2025-08-22 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7204/accel/ses-1/sub-7204_ses-1_accel.csv'}]", + "7208": "[{'filename': '1405 (2025-08-22)RAW.csv', 'labID': '1405', 'date': Timestamp('2025-08-22 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7208/accel/ses-1/sub-7208_ses-1_accel.csv'}]", + "7209": "[{'filename': '1406 (2025-08-21)RAW.csv', 'labID': '1406', 'date': Timestamp('2025-08-21 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7209/accel/ses-1/sub-7209_ses-1_accel.csv'}]", + "7214": "[{'filename': '1410 (2025-08-26)RAW.csv', 'labID': '1410', 'date': Timestamp('2025-08-26 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7214/accel/ses-1/sub-7214_ses-1_accel.csv'}]", + "7215": "[{'filename': '1411 (2025-08-13)RAW.csv', 'labID': '1411', 'date': Timestamp('2025-08-13 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7215/accel/ses-1/sub-7215_ses-1_accel.csv'}]", + "7218": "[{'filename': '1414 (2025-08-30)RAW.csv', 'labID': '1414', 'date': Timestamp('2025-08-30 00:00:00'), 'run': 1, 'study': 'obs', 'file_path': '/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7218/accel/ses-1/sub-7218_ses-1_accel.csv'}]" +} \ No newline at end of file diff --git a/act/tests/conftest.py b/act/tests/conftest.py index c59c6a0..36130b8 100644 --- a/act/tests/conftest.py +++ b/act/tests/conftest.py @@ -1,6 +1,7 @@ from __future__ import annotations import importlib +import json from pathlib import Path import sys import types @@ -11,13 +12,25 @@ if str(PROJECT_ROOT) not in sys.path: sys.path.insert(0, str(PROJECT_ROOT)) -_comparison_utils = importlib.import_module("act.utils.comparison_utils") -_stdlib_code = importlib.import_module("code") -_code_utils = types.ModuleType("code.utils") -_code_utils.comparison_utils = _comparison_utils -_stdlib_code.utils = _code_utils -sys.modules["code.utils"] = _code_utils -sys.modules["code.utils.comparison_utils"] = _comparison_utils +_comparison_utils_stub = types.ModuleType("act.utils.comparison_utils") + + +class _IDComparisonsStub: + def __init__(self, *args, **kwargs): + pass + + def compare_ids(self): + return {"matches": {}, "duplicates": []} + + +_comparison_utils_stub.ID_COMPARISONS = _IDComparisonsStub +sys.modules["act.utils.comparison_utils"] = _comparison_utils_stub + +try: + _act_utils = importlib.import_module("act.utils") + _act_utils.comparison_utils = _comparison_utils_stub +except ModuleNotFoundError: + pass @pytest.fixture @@ -108,3 +121,73 @@ def signature_mismatch() -> dict[str, list[dict[str, str]]]: }, ] return {"report_rows": report_rows, "rdss_files": rdss_files} + + +@pytest.fixture +def manifest_factory(tmp_path: Path): + """Seed and load manifest JSON payloads for tests.""" + + def _factory(payload: dict[str, list[dict]] | None = None, relative_path: str = "res/data.json") -> Path: + manifest_path = tmp_path / relative_path + manifest_path.parent.mkdir(parents=True, exist_ok=True) + manifest_payload = payload or {} + manifest_path.write_text( + json.dumps(manifest_payload, indent=2), + encoding="utf-8", + ) + return manifest_path + + return _factory + + +@pytest.fixture +def rdss_record_factory(): + """Build normalized incoming RDSS-like record dictionaries.""" + + def _factory( + lab_id: str, + date_value: str, + filename: str, + **overrides, + ) -> dict: + record = { + "labID": str(lab_id), + "date": date_value, + "filename": filename, + } + record.update(overrides) + return record + + return _factory + + +@pytest.fixture +def subject_tree_factory(temp_study_roots: dict[str, Path], accel_filename_factory): + """Create per-subject accel/ses-* trees and CSV fixtures under study roots.""" + + def _factory( + study: str, + subject_id: str | int, + sessions: dict[int, str], + ) -> dict[int, Path]: + study_key = study.lower() + if study_key not in {"int", "obs"}: + raise ValueError(f"Unknown study type: {study}") + + subject = str(subject_id) + created = {} + for session, content in sessions.items(): + session_dir = ( + temp_study_roots[study_key] + / f"sub-{subject}" + / "accel" + / f"ses-{session}" + ) + session_dir.mkdir(parents=True, exist_ok=True) + file_path = session_dir / accel_filename_factory(subject, session) + file_path.write_text(content, encoding="utf-8") + created[int(session)] = file_path + + return created + + return _factory diff --git a/act/tests/test_manifest_rebuild_from_lss.py b/act/tests/test_manifest_rebuild_from_lss.py new file mode 100644 index 0000000..1d313d4 --- /dev/null +++ b/act/tests/test_manifest_rebuild_from_lss.py @@ -0,0 +1,319 @@ +from __future__ import annotations + +import logging + +import pytest + +from act.utils.save import Save + + +def _make_save_for_lss(tmp_path): + save = Save.__new__(Save) + save.logger = logging.getLogger("act.utils.save") + save.INT_DIR = str(tmp_path / "int") + save.OBS_DIR = str(tmp_path / "obs") + save.RDSS_DIR = str(tmp_path / "rdss") + save.token = "test-token" + save.daysago = 1 + return save + + +def _touch(path, contents="x"): + path.parent.mkdir(parents=True, exist_ok=True) + path.write_text(contents, encoding="utf-8") + + +def test_discover_lss_sessions_derives_subject_study_and_run(tmp_path): + save = _make_save_for_lss(tmp_path) + + _touch( + tmp_path + / "int" + / "sub-8001" + / "accel" + / "ses-2" + / "sub-8001_ses-2_accel.csv" + ) + _touch( + tmp_path + / "int" + / "sub-8001" + / "accel" + / "ses-1" + / "sub-8001_ses-1_accel.csv" + ) + _touch( + tmp_path + / "obs" + / "sub-7001" + / "accel" + / "ses-1" + / "sub-7001_ses-1_accel.csv" + ) + + discovered, conflicts = save.discover_lss_sessions() + + assert conflicts == {} + assert set(discovered.keys()) == {"8001", "7001"} + + int_records = discovered["8001"] + assert [record["run"] for record in int_records] == [1, 2] + assert [record["study"] for record in int_records] == ["int", "int"] + assert [record["subject_id"] for record in int_records] == ["8001", "8001"] + + obs_records = discovered["7001"] + assert len(obs_records) == 1 + assert obs_records[0]["run"] == 1 + assert obs_records[0]["study"] == "obs" + assert obs_records[0]["subject_id"] == "7001" + + +def test_discover_lss_sessions_flags_multi_csv_session_conflict(tmp_path): + save = _make_save_for_lss(tmp_path) + + session_dir = tmp_path / "int" / "sub-8002" / "accel" / "ses-1" + _touch(session_dir / "sub-8002_ses-1_accel.csv") + _touch(session_dir / "sub-8002_ses-1_alt_accel.csv") + + discovered, conflicts = save.discover_lss_sessions() + + assert discovered == {} + assert "8002" in conflicts + assert len(conflicts["8002"]) == 1 + assert "multiple accel csv candidates" in conflicts["8002"][0] + + +def test_resolve_subject_lab_mapping_success(tmp_path, monkeypatch): + save = _make_save_for_lss(tmp_path) + + monkeypatch.setattr( + save, + "_fetch_redcap_subject_lab_rows", + lambda: [ + {"boost_id": 8001, "lab_id": 1201}, + {"boost_id": "7001", "lab_id": "2201"}, + ], + ) + + mapping = save.resolve_subject_lab_mapping(["8001", "7001"]) + + assert mapping == {"7001": "2201", "8001": "1201"} + + +def test_resolve_subject_lab_mapping_missing_subject_strict_error(tmp_path, monkeypatch): + save = _make_save_for_lss(tmp_path) + + monkeypatch.setattr( + save, + "_fetch_redcap_subject_lab_rows", + lambda: [{"boost_id": 8001, "lab_id": 1201}], + ) + + with pytest.raises(ValueError) as exc: + save.resolve_subject_lab_mapping(["8001", "9999"]) + + assert "Missing RedCap subject->lab mappings" in str(exc.value) + assert "9999" in str(exc.value) + + +def test_resolve_rdss_session_metadata_success(tmp_path, monkeypatch): + save = _make_save_for_lss(tmp_path) + + discovered = { + "8001": [ + {"subject_id": "8001", "study": "int", "run": 1}, + {"subject_id": "8001", "study": "int", "run": 2}, + ] + } + subject_to_lab = {"8001": "1201"} + + monkeypatch.setattr( + save, + "_list_rdss_metadata_rows", + lambda: [ + {"filename": "1201 (2025-03-01)RAW.csv", "labID": "1201", "date": "2025-03-01"}, + {"filename": "1201 (2025-03-02)RAW.csv", "labID": "1201", "date": "2025-03-02"}, + ], + ) + + resolved = save.resolve_rdss_session_metadata(discovered, subject_to_lab) + + assert list(resolved.keys()) == ["8001"] + assert [row["run"] for row in resolved["8001"]] == [1, 2] + assert [row["filename"] for row in resolved["8001"]] == [ + "1201 (2025-03-01)RAW.csv", + "1201 (2025-03-02)RAW.csv", + ] + assert [row["labID"] for row in resolved["8001"]] == ["1201", "1201"] + assert [row["date"] for row in resolved["8001"]] == ["2025-03-01", "2025-03-02"] + + +def test_resolve_rdss_session_metadata_strict_failure_when_unresolved(tmp_path, monkeypatch): + save = _make_save_for_lss(tmp_path) + + discovered = { + "8001": [ + {"subject_id": "8001", "study": "int", "run": 1}, + {"subject_id": "8001", "study": "int", "run": 2}, + ] + } + subject_to_lab = {"8001": "1201"} + + monkeypatch.setattr( + save, + "_list_rdss_metadata_rows", + lambda: [ + {"filename": "1201 (2025-03-01)RAW.csv", "labID": "1201", "date": "2025-03-01"}, + ], + ) + + with pytest.raises(ValueError) as exc: + save.resolve_rdss_session_metadata(discovered, subject_to_lab) + + message = str(exc.value) + assert "Unresolved RDSS metadata" in message + assert "subject=8001 run=2 labID=1201" in message + + +def test_rebuild_manifest_payload_from_lss_deterministic_output(tmp_path, monkeypatch): + save = _make_save_for_lss(tmp_path) + + monkeypatch.setattr( + save, + "discover_lss_sessions", + lambda: ( + { + "8001": [ + { + "subject_id": "8001", + "study": "int", + "run": 2, + "file_path": "/lss/int/sub-8001/accel/ses-2/sub-8001_ses-2_accel.csv", + }, + { + "subject_id": "8001", + "study": "int", + "run": 1, + "file_path": "/lss/int/sub-8001/accel/ses-1/sub-8001_ses-1_accel.csv", + }, + ], + "7001": [ + { + "subject_id": "7001", + "study": "obs", + "run": 1, + "file_path": "/lss/obs/sub-7001/accel/ses-1/sub-7001_ses-1_accel.csv", + } + ], + }, + {}, + ), + ) + monkeypatch.setattr( + save, + "_fetch_redcap_subject_lab_rows", + lambda: [ + {"boost_id": "7001", "lab_id": "2201"}, + {"boost_id": "8001", "lab_id": "1201"}, + ], + ) + monkeypatch.setattr( + save, + "_list_rdss_metadata_rows", + lambda: [ + {"filename": "2201 (2025-02-10)RAW.csv", "labID": "2201", "date": "2025-02-10"}, + {"filename": "1201 (2025-03-02)RAW.csv", "labID": "1201", "date": "2025-03-02"}, + {"filename": "1201 (2025-03-01)RAW.csv", "labID": "1201", "date": "2025-03-01"}, + ], + ) + + payload = save.rebuild_manifest_payload_from_lss() + + assert list(payload.keys()) == ["7001", "8001"] + assert [record["run"] for record in payload["8001"]] == [1, 2] + assert [record["filename"] for record in payload["8001"]] == [ + "1201 (2025-03-01)RAW.csv", + "1201 (2025-03-02)RAW.csv", + ] + assert payload["8001"][0]["file_path"].endswith("ses-1/sub-8001_ses-1_accel.csv") + assert payload["8001"][1]["file_path"].endswith("ses-2/sub-8001_ses-2_accel.csv") + + +def test_rebuild_manifest_payload_from_lss_aggregates_strict_errors(tmp_path, monkeypatch): + save = _make_save_for_lss(tmp_path) + + monkeypatch.setattr( + save, + "discover_lss_sessions", + lambda: ( + { + "8001": [ + { + "subject_id": "8001", + "study": "int", + "run": 1, + "file_path": "/lss/int/sub-8001/accel/ses-1/sub-8001_ses-1_accel.csv", + } + ], + "8002": [ + { + "subject_id": "8002", + "study": "int", + "run": 2, + "file_path": "/lss/int/sub-8002/accel/ses-2/sub-8002_ses-2_accel.csv", + } + ], + "7001": [ + { + "subject_id": "7001", + "study": "obs", + "run": 1, + "file_path": "/lss/obs/sub-7001/accel/ses-1/sub-7001_ses-1_accel.csv", + } + ], + }, + {"7001": ["multiple accel csv candidates in /lss/obs/sub-7001/accel/ses-1"]}, + ), + ) + monkeypatch.setattr( + save, + "_fetch_redcap_subject_lab_rows", + lambda: [{"boost_id": "8001", "lab_id": "1201"}], + ) + monkeypatch.setattr( + save, + "_list_rdss_metadata_rows", + lambda: [{"filename": "1201 (2025-03-01)RAW.csv", "labID": "1201", "date": "2025-03-01"}], + ) + + with pytest.raises(ValueError) as exc: + save.rebuild_manifest_payload_from_lss() + + message = str(exc.value) + assert "Manifest rebuild failed due to strict conflict(s)" in message + assert "subject=7001:" in message + assert "multiple accel csv candidates" in message + assert "subject=8002:" in message + assert "missing RedCap subject->lab mapping" in message + + +def test_atomic_manifest_write_preserves_existing_manifest_on_failure(tmp_path, monkeypatch): + save = _make_save_for_lss(tmp_path) + manifest_path = tmp_path / "res" / "data.json" + manifest_path.parent.mkdir(parents=True, exist_ok=True) + manifest_path.write_text('{"existing": [{"run": 1}]}', encoding="utf-8") + + original_contents = manifest_path.read_text(encoding="utf-8") + + def fail_replace(src, dst): + raise OSError("simulated replace failure") + + monkeypatch.setattr("act.utils.save.os.replace", fail_replace) + + with pytest.raises(OSError): + save._atomic_write_manifest( + {"new": [{"run": 1}]}, + str(manifest_path), + ) + + assert manifest_path.read_text(encoding="utf-8") == original_contents diff --git a/act/tests/test_pipeline_smoke.py b/act/tests/test_pipeline_smoke.py index d1bd3e3..30daea5 100644 --- a/act/tests/test_pipeline_smoke.py +++ b/act/tests/test_pipeline_smoke.py @@ -4,6 +4,8 @@ import sys import types +import pytest + def _install_module(monkeypatch, name, module): monkeypatch.setitem(sys.modules, name, module) @@ -40,12 +42,12 @@ def run_gg(self): gg_state["ran"] = True code_pkg = _ensure_package(monkeypatch, "code") - utils_pkg = _ensure_package(monkeypatch, "code.utils") - core_pkg = _ensure_package(monkeypatch, "code.core") + utils_pkg = _ensure_package(monkeypatch, "act.utils") + core_pkg = _ensure_package(monkeypatch, "act.core") - save_mod = types.ModuleType("code.utils.save") + save_mod = types.ModuleType("act.utils.save") save_mod.Save = FakeSave - gg_mod = types.ModuleType("code.core.gg") + gg_mod = types.ModuleType("act.core.gg") gg_mod.GG = FakeGG utils_pkg.save = save_mod @@ -53,8 +55,8 @@ def run_gg(self): code_pkg.utils = utils_pkg code_pkg.core = core_pkg - _install_module(monkeypatch, "code.utils.save", save_mod) - _install_module(monkeypatch, "code.core.gg", gg_mod) + _install_module(monkeypatch, "act.utils.save", save_mod) + _install_module(monkeypatch, "act.core.gg", gg_mod) pipe_mod = importlib.import_module("act.utils.pipe") pipe_mod = importlib.reload(pipe_mod) @@ -82,12 +84,95 @@ def run_gg(self): ] +def test_pipeline_manifest_only_skips_ggir(tmp_path, monkeypatch): + save_state = { + "init_kwargs": None, + "remove_calls": [], + "save_called": 0, + "rebuild_called": 0, + "atomic_called": 0, + } + gg_state = {"ran": False} + + class FakeSave: + def __init__(self, **kwargs): + save_state["init_kwargs"] = kwargs + self.manifest_path = "res/data.json" + + def save(self): + save_state["save_called"] += 1 + return {"8001": [{"filename": "1001 (2025-01-01)RAW.csv"}]} + + def rebuild_manifest_payload_from_lss(self): + save_state["rebuild_called"] += 1 + return {"8001": [{"filename": "sub-8001_ses-1_accel.csv", "run": 1}]} + + def _atomic_write_manifest(self, payload, path=None): + save_state["atomic_called"] += 1 + return payload + + @staticmethod + def remove_symlink_directories(study_dirs): + save_state["remove_calls"].append(study_dirs) + + class FakeGG: + def __init__(self, **kwargs): + pass + + def run_gg(self): + gg_state["ran"] = True + + code_pkg = _ensure_package(monkeypatch, "code") + utils_pkg = _ensure_package(monkeypatch, "act.utils") + core_pkg = _ensure_package(monkeypatch, "act.core") + + save_mod = types.ModuleType("act.utils.save") + save_mod.Save = FakeSave + gg_mod = types.ModuleType("act.core.gg") + gg_mod.GG = FakeGG + + utils_pkg.save = save_mod + core_pkg.gg = gg_mod + code_pkg.utils = utils_pkg + code_pkg.core = core_pkg + + _install_module(monkeypatch, "act.utils.save", save_mod) + _install_module(monkeypatch, "act.core.gg", gg_mod) + + pipe_mod = importlib.import_module("act.utils.pipe") + pipe_mod = importlib.reload(pipe_mod) + monkeypatch.chdir(tmp_path) + pipe_mod.Pipe._SYSTEM_PATHS["local"] = { + "INT_DIR": str(tmp_path / "int"), + "OBS_DIR": str(tmp_path / "obs"), + "RDSS_DIR": str(tmp_path / "rdss"), + } + + pipe = pipe_mod.Pipe( + token="token", daysago=1, system="local", rebuild_manifest_only=True + ) + pipe.run_pipe() + + assert gg_state["ran"] is False + assert save_state["save_called"] == 0 + assert save_state["rebuild_called"] == 1 + assert save_state["atomic_called"] == 1 + assert save_state["remove_calls"] == [ + [str(tmp_path / "int"), str(tmp_path / "obs")] + ] + + def test_main_smoke_invokes_pipe_and_group(monkeypatch): call_state = {"pipe_args": None, "run_pipe": 0, "group_systems": []} class FakePipe: - def __init__(self, token, daysago, system): - call_state["pipe_args"] = (token, daysago, system) + def __init__(self, token, daysago, system, rebuild_manifest_only=False): + call_state["pipe_args"] = { + "token": token, + "daysago": daysago, + "system": system, + "rebuild_manifest_only": rebuild_manifest_only, + } def run_pipe(self): call_state["run_pipe"] += 1 @@ -103,26 +188,195 @@ def plot_session(self): call_state["group_systems"].append("session") code_pkg = _ensure_package(monkeypatch, "code") - utils_pkg = _ensure_package(monkeypatch, "code.utils") - pipe_mod = types.ModuleType("code.utils.pipe") - group_mod = types.ModuleType("code.utils.group") + utils_pkg = _ensure_package(monkeypatch, "act.utils") + pipe_mod = types.ModuleType("act.utils.pipe") + group_mod = types.ModuleType("act.utils.group") pipe_mod.Pipe = FakePipe group_mod.Group = FakeGroup utils_pkg.pipe = pipe_mod utils_pkg.group = group_mod code_pkg.utils = utils_pkg - _install_module(monkeypatch, "code.utils.pipe", pipe_mod) - _install_module(monkeypatch, "code.utils.group", group_mod) + _install_module(monkeypatch, "act.utils.pipe", pipe_mod) + _install_module(monkeypatch, "act.utils.group", group_mod) monkeypatch.setattr( sys, "argv", - ["main.py", "2", "token-value", "local"], + [ + "main.py", + "--daysago", + "2", + "--token", + "token-value", + "--system", + "local", + ], ) - runpy.run_module("act.main", run_name="__main__") + with pytest.raises(SystemExit) as exc: + runpy.run_module("act.main", run_name="__main__") - assert call_state["pipe_args"] == ("token-value", 2, "local") + assert exc.value.code == 0 + + assert call_state["pipe_args"] == { + "token": "token-value", + "daysago": 2, + "system": "local", + "rebuild_manifest_only": False, + } assert call_state["run_pipe"] == 1 assert call_state["group_systems"] == ["local", "person", "local", "session"] + + +def test_main_manifest_only_skips_plotting(monkeypatch): + call_state = {"pipe_args": None, "run_pipe": 0, "group_inits": 0} + + class FakePipe: + def __init__(self, token, daysago, system, rebuild_manifest_only=False): + call_state["pipe_args"] = { + "token": token, + "daysago": daysago, + "system": system, + "rebuild_manifest_only": rebuild_manifest_only, + } + + def run_pipe(self): + call_state["run_pipe"] += 1 + + class FakeGroup: + def __init__(self, system): + call_state["group_inits"] += 1 + + def plot_person(self): + raise AssertionError("plot_person should not run in manifest-only mode") + + def plot_session(self): + raise AssertionError("plot_session should not run in manifest-only mode") + + code_pkg = _ensure_package(monkeypatch, "code") + utils_pkg = _ensure_package(monkeypatch, "act.utils") + pipe_mod = types.ModuleType("act.utils.pipe") + group_mod = types.ModuleType("act.utils.group") + pipe_mod.Pipe = FakePipe + group_mod.Group = FakeGroup + utils_pkg.pipe = pipe_mod + utils_pkg.group = group_mod + code_pkg.utils = utils_pkg + + _install_module(monkeypatch, "act.utils.pipe", pipe_mod) + _install_module(monkeypatch, "act.utils.group", group_mod) + + monkeypatch.setattr( + sys, + "argv", + [ + "main.py", + "--daysago", + "2", + "--token", + "token-value", + "--system", + "local", + "--rebuild-manifest-only", + ], + ) + + with pytest.raises(SystemExit) as exc: + runpy.run_module("act.main", run_name="__main__") + + assert exc.value.code == 0 + assert call_state["pipe_args"] == { + "token": "token-value", + "daysago": 2, + "system": "local", + "rebuild_manifest_only": True, + } + assert call_state["run_pipe"] == 1 + assert call_state["group_inits"] == 0 + + +def test_main_manifest_only_returns_nonzero_on_rebuild_error(monkeypatch): + class FakePipe: + def __init__(self, token, daysago, system, rebuild_manifest_only=False): + pass + + def run_pipe(self): + raise ValueError("Manifest rebuild failed due to strict conflict(s): subject=8001") + + class FakeGroup: + def __init__(self, system): + raise AssertionError("Group should not be constructed on rebuild error") + + code_pkg = _ensure_package(monkeypatch, "code") + utils_pkg = _ensure_package(monkeypatch, "act.utils") + pipe_mod = types.ModuleType("act.utils.pipe") + group_mod = types.ModuleType("act.utils.group") + pipe_mod.Pipe = FakePipe + group_mod.Group = FakeGroup + utils_pkg.pipe = pipe_mod + utils_pkg.group = group_mod + code_pkg.utils = utils_pkg + + _install_module(monkeypatch, "act.utils.pipe", pipe_mod) + _install_module(monkeypatch, "act.utils.group", group_mod) + + monkeypatch.setattr( + sys, + "argv", + [ + "main.py", + "--daysago", + "2", + "--token", + "token-value", + "--system", + "local", + "--rebuild-manifest-only", + ], + ) + + with pytest.raises(SystemExit) as exc: + runpy.run_module("act.main", run_name="__main__") + + assert exc.value.code == 1 + + +def test_parse_args_valid_rebuild_manifest_only(): + main_mod = importlib.import_module("act.main") + args = main_mod.build_parser().parse_args( + [ + "--token", + "abc123", + "--daysago", + "3", + "--system", + "vosslnx", + "--rebuild-manifest-only", + ] + ) + + assert args.token == "abc123" + assert args.daysago == 3 + assert args.system == "vosslnx" + assert args.rebuild_manifest_only is True + + +@pytest.mark.parametrize( + "argv", + [ + ["--token", "abc123", "--daysago", "3"], + ["--token", "abc123", "--daysago", "-1", "--system", "local"], + ["--token", "abc123", "--daysago", "three", "--system", "local"], + ["--token", "", "--daysago", "3", "--system", "local"], + ["--token", "abc123", "--daysago", "3", "--system", "unknown"], + ], +) +def test_parse_args_invalid_invocations(argv): + main_mod = importlib.import_module("act.main") + parser = main_mod.build_parser() + + with pytest.raises(SystemExit) as exc: + parser.parse_args(argv) + + assert exc.value.code == 2 diff --git a/act/tests/test_save_edge_cases.py b/act/tests/test_save_edge_cases.py index b8f1477..ac68feb 100644 --- a/act/tests/test_save_edge_cases.py +++ b/act/tests/test_save_edge_cases.py @@ -1,8 +1,10 @@ import os import shutil +import logging import pytest +import act.utils.save as save_module from act.utils.save import Save @@ -14,6 +16,8 @@ def _make_save(temp_study_roots): save.symlink = False save.matches = {} save.dupes = [] + save.manifest = {} + save.logger = logging.getLogger("act.utils.save") return save @@ -41,12 +45,20 @@ def test_save_edge_cases_matrix( { "filename": "1002 (2025-01-01)RAW.csv", "labID": "1002", - "date": "2025-01-01", + "date": "2025-01-01" if edge_case == "duplicate_date" else "2025-01-02", }, ] } save._determine_run(matches) + + if edge_case == "duplicate_date": + assert matches[subject_id] == [] + save._determine_study(matches) + save._determine_location(matches) + assert matches[subject_id] == [] + return + save._determine_study(matches) save._determine_location(matches) @@ -65,7 +77,7 @@ def test_save_edge_cases_matrix( assert os.path.basename(path).startswith(f"sub-{subject_id}_ses-") assert path.endswith("_accel.csv") - # Duplicate dates should be deterministic and stable on re-run. + # Re-running run assignment should be deterministic. save._determine_run(matches) assert [record["run"] for record in matches[subject_id]] == [1, 2] @@ -129,7 +141,7 @@ def flaky_copy(src, dst): raise OSError("simulated copy failure") return original_copy(src, dst) - monkeypatch.setattr("act.utils.save.shutil.copy", flaky_copy) + monkeypatch.setattr(save_module.shutil, "copy", flaky_copy) save._move_files(matches) @@ -137,3 +149,110 @@ def flaky_copy(src, dst): assert os.path.exists(second_dest) with open(second_dest, "r", encoding="utf-8") as handle: assert handle.read() == "second" + + +@pytest.mark.parametrize( + "subject_id,study_key", + [ + ("8003", "int"), + ("7003", "obs"), + ], +) +def test_manifest_driven_run_stability(temp_study_roots, subject_id, study_key): + save = _make_save(temp_study_roots) + save.manifest = { + subject_id: [ + { + "filename": "3001 (2025-04-01)RAW.csv", + "labID": "3001", + "date": "2025-04-01", + "run": 1, + "study": study_key, + }, + { + "filename": "3002 (2025-04-02)RAW.csv", + "labID": "3002", + "date": "2025-04-02", + "run": 2, + "study": study_key, + }, + ] + } + + incoming = { + subject_id: [ + { + "filename": "3002 (2025-04-02)RAW.csv", + "labID": "3002", + "date": "2025-04-02", + } + ] + } + + first = save._determine_run(incoming) + second = save._determine_run(incoming) + + assert first[subject_id][0]["run"] == 2 + assert second[subject_id][0]["run"] == 2 + + save._determine_study(first) + save._determine_location(first) + + target_root = os.fspath(temp_study_roots[study_key]) + assert first[subject_id][0]["file_path"].startswith(target_root) + assert "/ses-2/" in first[subject_id][0]["file_path"] + + +@pytest.mark.parametrize( + "subject_id,study_key", + [ + ("8004", "int"), + ("7004", "obs"), + ], +) +def test_manifest_gap_shift_backfill_assigns_dense_session( + temp_study_roots, + subject_id, + study_key, +): + save = _make_save(temp_study_roots) + save.manifest = { + subject_id: [ + { + "filename": "4001 (2025-05-01)RAW.csv", + "labID": "4001", + "date": "2025-05-01", + "run": 1, + "study": study_key, + }, + { + "filename": "4002 (2025-05-03)RAW.csv", + "labID": "4002", + "date": "2025-05-03", + "run": 3, + "study": study_key, + }, + ] + } + + incoming = { + subject_id: [ + { + "filename": "4003 (2025-05-02)RAW.csv", + "labID": "4003", + "date": "2025-05-02", + } + ] + } + + result = save._determine_run(incoming) + + assert result[subject_id][0]["run"] == 2 + + save._determine_study(result) + save._determine_location(result) + + target_root = os.fspath(temp_study_roots[study_key]) + path = result[subject_id][0]["file_path"] + assert path.startswith(target_root) + assert "/ses-2/" in path diff --git a/act/tests/test_save_manifest_reindex.py b/act/tests/test_save_manifest_reindex.py new file mode 100644 index 0000000..2de03c6 --- /dev/null +++ b/act/tests/test_save_manifest_reindex.py @@ -0,0 +1,402 @@ +from __future__ import annotations + +from datetime import datetime +import logging +import os + +from act.utils.save import Save + + +def _make_save_with_manifest(path: str): + save = Save.__new__(Save) + save.manifest_path = path + save.manifest = {} + save.logger = logging.getLogger("act.utils.save") + return save + + +def _set_study_roots(save, tmp_path): + save.INT_DIR = str(tmp_path / "int") + save.OBS_DIR = str(tmp_path / "obs") + save.RDSS_DIR = str(tmp_path / "rdss") + save.symlink = False + + +def test_load_manifest_missing_file_returns_empty(tmp_path, caplog): + manifest_path = tmp_path / "res" / "missing-data.json" + save = _make_save_with_manifest(str(manifest_path)) + + with caplog.at_level(logging.WARNING): + loaded = save._load_manifest(str(manifest_path)) + + assert loaded == {} + assert "Manifest file not found" in caplog.text + + +def test_load_manifest_roundtrip(tmp_path): + manifest_path = tmp_path / "res" / "data.json" + save = _make_save_with_manifest(str(manifest_path)) + save.manifest = { + "8001": [ + { + "filename": "1101 (2025-01-01)RAW.csv", + "labID": "1101", + "date": "2025-01-01", + "run": 1, + } + ] + } + + saved_payload = save._save_manifest(str(manifest_path)) + loaded_payload = save._load_manifest(str(manifest_path)) + + assert saved_payload == save.manifest + assert loaded_payload == save.manifest + + +def test_exact_duplicate_key_noop(tmp_path): + manifest_path = tmp_path / "res" / "data.json" + save = _make_save_with_manifest(str(manifest_path)) + + existing_records = [ + { + "filename": "1101 (2025-01-01)RAW.csv", + "labID": "1101", + "date": "2025-01-01", + "run": 1, + } + ] + incoming_records = [ + { + "filename": "1101 (2025-01-01)RAW.csv", + "labID": "1101", + "date": datetime(2025, 1, 1, 12, 30, 0), + "run": 99, + } + ] + + merged = save._reindex_subject_records(existing_records, incoming_records) + + assert len(merged) == 1 + assert merged[0]["labID"] == "1101" + assert merged[0]["filename"] == "1101 (2025-01-01)RAW.csv" + assert merged[0]["date"] == "2025-01-01" + assert merged[0]["run"] == 1 + + +def test_idempotent_rerun_no_session_drift(tmp_path): + manifest_path = tmp_path / "res" / "data.json" + save = _make_save_with_manifest(str(manifest_path)) + + existing_records = [ + { + "filename": "1101 (2025-01-01)RAW.csv", + "labID": "1101", + "date": "2025-01-01", + "run": 1, + }, + { + "filename": "1101 (2025-01-02)RAW.csv", + "labID": "1101", + "date": "2025-01-02", + "run": 2, + }, + ] + incoming_records = [ + { + "filename": "1101 (2025-01-01)RAW.csv", + "labID": "1101", + "date": "2025-01-01T00:00:00", + "run": 100, + }, + { + "filename": "1101 (2025-01-02)RAW.csv", + "labID": "1101", + "date": datetime(2025, 1, 2, 0, 0, 0), + "run": 200, + }, + ] + + first_pass = save._reindex_subject_records(existing_records, incoming_records) + second_pass = save._reindex_subject_records(first_pass, incoming_records) + + assert first_pass == second_pass + assert len(second_pass) == 2 + assert [record["run"] for record in second_pass] == [1, 2] + assert [record["date"] for record in second_pass] == ["2025-01-01", "2025-01-02"] + + +def test_same_date_conflict_warns_and_skips_subject(tmp_path, caplog): + manifest_path = tmp_path / "res" / "data.json" + save = _make_save_with_manifest(str(manifest_path)) + matches = { + "8001": [ + { + "filename": "1101 (2025-01-01)RAW.csv", + "labID": "1101", + "date": "2025-01-01", + }, + { + "filename": "1102 (2025-01-01)RAW.csv", + "labID": "1102", + "date": "2025-01-01T08:00:00", + }, + ] + } + + with caplog.at_level(logging.WARNING): + result = save._determine_run(matches) + + assert result["8001"] == [] + assert "skip_tie_date subject=8001" in caplog.text + + +def test_new_subject_defaults_to_run_one(tmp_path): + manifest_path = tmp_path / "res" / "data.json" + save = _make_save_with_manifest(str(manifest_path)) + _set_study_roots(save, tmp_path) + save.manifest = {} + + matches = { + "8001": [ + { + "filename": "2101 (2025-03-01)RAW.csv", + "labID": "2101", + "date": "2025-03-01", + } + ] + } + + result = save._determine_run(matches) + assert result["8001"][0]["run"] == 1 + + save._determine_study(result) + save._determine_location(result) + assert "/ses-1/" in result["8001"][0]["file_path"] + + +def test_later_date_appends_next_run(tmp_path): + manifest_path = tmp_path / "res" / "data.json" + save = _make_save_with_manifest(str(manifest_path)) + _set_study_roots(save, tmp_path) + save.manifest = { + "8001": [ + { + "filename": "2101 (2025-03-01)RAW.csv", + "labID": "2101", + "date": "2025-03-01", + "run": 1, + }, + { + "filename": "2101 (2025-03-02)RAW.csv", + "labID": "2101", + "date": "2025-03-02", + "run": 2, + }, + ] + } + + matches = { + "8001": [ + { + "filename": "2101 (2025-03-03)RAW.csv", + "labID": "2101", + "date": "2025-03-03", + } + ] + } + + result = save._determine_run(matches) + assert result["8001"][0]["run"] == 3 + + save._determine_study(result) + save._determine_location(result) + assert "/ses-3/" in result["8001"][0]["file_path"] + + +def test_earlier_date_backfill_reindexes_and_shifts_runs(tmp_path): + manifest_path = tmp_path / "res" / "data.json" + save = _make_save_with_manifest(str(manifest_path)) + _set_study_roots(save, tmp_path) + save.manifest = { + "8001": [ + { + "filename": "2101 (2025-03-02)RAW.csv", + "labID": "2101", + "date": "2025-03-02", + "run": 1, + }, + { + "filename": "2101 (2025-03-03)RAW.csv", + "labID": "2101", + "date": "2025-03-03", + "run": 2, + }, + ] + } + + matches = { + "8001": [ + { + "filename": "2101 (2025-03-01)RAW.csv", + "labID": "2101", + "date": "2025-03-01", + } + ] + } + + result = save._determine_run(matches) + assert result["8001"][0]["run"] == 1 + + save._determine_study(result) + save._determine_location(result) + assert "/ses-1/" in result["8001"][0]["file_path"] + + +def test_two_phase_rename_avoids_collision(tmp_path): + manifest_path = tmp_path / "res" / "data.json" + save = _make_save_with_manifest(str(manifest_path)) + _set_study_roots(save, tmp_path) + + subject_id = "8001" + study = "int" + + ses1_dir = os.path.join(save.INT_DIR, f"sub-{subject_id}", "accel", "ses-1") + ses2_dir = os.path.join(save.INT_DIR, f"sub-{subject_id}", "accel", "ses-2") + os.makedirs(ses1_dir, exist_ok=True) + os.makedirs(ses2_dir, exist_ok=True) + + ses1_file = os.path.join(ses1_dir, f"sub-{subject_id}_ses-1_accel.csv") + ses2_file = os.path.join(ses2_dir, f"sub-{subject_id}_ses-2_accel.csv") + with open(ses1_file, "w", encoding="utf-8") as handle: + handle.write("record-a") + with open(ses2_file, "w", encoding="utf-8") as handle: + handle.write("record-b") + + old_records = [ + { + "filename": "2101 (2025-03-01)RAW.csv", + "labID": "2101", + "date": "2025-03-01", + "run": 1, + }, + { + "filename": "2101 (2025-03-02)RAW.csv", + "labID": "2101", + "date": "2025-03-02", + "run": 2, + }, + ] + new_records = [ + { + "filename": "2101 (2025-03-01)RAW.csv", + "labID": "2101", + "date": "2025-03-01", + "run": 2, + }, + { + "filename": "2101 (2025-03-02)RAW.csv", + "labID": "2101", + "date": "2025-03-02", + "run": 1, + }, + ] + + rename_plan = save._plan_subject_renames( + subject_id=subject_id, + study=study, + old_records=old_records, + new_records=new_records, + ) + + assert len(rename_plan["moves"]) == 2 + + save._apply_two_phase_renames(rename_plan) + + new_ses1_file = os.path.join( + save.INT_DIR, + f"sub-{subject_id}", + "accel", + "ses-1", + f"sub-{subject_id}_ses-1_accel.csv", + ) + new_ses2_file = os.path.join( + save.INT_DIR, + f"sub-{subject_id}", + "accel", + "ses-2", + f"sub-{subject_id}_ses-2_accel.csv", + ) + + assert os.path.exists(new_ses1_file) + assert os.path.exists(new_ses2_file) + + with open(new_ses1_file, "r", encoding="utf-8") as handle: + ses1_content = handle.read() + with open(new_ses2_file, "r", encoding="utf-8") as handle: + ses2_content = handle.read() + + assert ses1_content == "record-b" + assert ses2_content == "record-a" + + accel_dir = os.path.join(save.INT_DIR, f"sub-{subject_id}", "accel") + assert not any(name.startswith(".tmp-") for name in os.listdir(accel_dir)) + + +def test_subject_failure_does_not_mutate_manifest(tmp_path, monkeypatch, caplog): + manifest_path = tmp_path / "res" / "data.json" + save = _make_save_with_manifest(str(manifest_path)) + _set_study_roots(save, tmp_path) + + subject_id = "8001" + original_manifest = { + "8001": [ + { + "filename": "2101 (2025-03-02)RAW.csv", + "labID": "2101", + "date": "2025-03-02", + "run": 1, + "study": "int", + }, + { + "filename": "2101 (2025-03-03)RAW.csv", + "labID": "2101", + "date": "2025-03-03", + "run": 2, + "study": "int", + }, + ] + } + save.manifest = { + key: [dict(record) for record in value] + for key, value in original_manifest.items() + } + + incoming_records = [ + { + "filename": "2101 (2025-03-01)RAW.csv", + "labID": "2101", + "date": "2025-03-01", + "run": 1, + "study": "int", + "file_path": os.path.join( + save.INT_DIR, + f"sub-{subject_id}", + "accel", + "ses-1", + f"sub-{subject_id}_ses-1_accel.csv", + ), + } + ] + + def raise_rename_failure(_rename_plan): + raise OSError("simulated rename failure") + + monkeypatch.setattr(save, "_apply_two_phase_renames", raise_rename_failure) + + with caplog.at_level(logging.WARNING): + result = save._process_subject_transaction(subject_id, incoming_records) + + assert result == [] + assert save.manifest == original_manifest + assert "rename_failed" in caplog.text diff --git a/act/utils/comparison_utils.py b/act/utils/comparison_utils.py index c07b448..538cdf6 100644 --- a/act/utils/comparison_utils.py +++ b/act/utils/comparison_utils.py @@ -141,7 +141,6 @@ def _rdss_file_list(self, duplicates, daysago=None): if not os.path.isdir(rdss_dir): raise FileNotFoundError(f"RDSS directory not found: {rdss_dir}") for filename in os.listdir(rdss_dir): - print(filename) if filename.endswith(".csv"): try: base_name = filename.split(" ")[0] # Extract lab_id @@ -150,19 +149,24 @@ def _rdss_file_list(self, duplicates, daysago=None): {"ID": base_name, "Date": date_part, "filename": filename} ) except IndexError: - print(f"Skipping file with unexpected format: {filename}") + logger.warning( + "Skipping RDSS file with unexpected format: %s", + filename, + ) df = pd.DataFrame(extracted_data) - print(f"EXTRACTED: {extracted_data}") + logger.info("RDSS csv candidates found: %s", len(df)) if not df.empty: df["Date"] = pd.to_datetime(df["Date"], errors="coerce") - print(f"DATE CONVERTED: {df['Date']}") if daysago: - print(f"DAYS AGO: {daysago}") cutoff_date = datetime.today() - timedelta(days=daysago) - print(f"CUTOFF DATE: {cutoff_date}") + logger.info( + "Applying RDSS recency filter: last %s days (cutoff=%s)", + daysago, + cutoff_date.date(), + ) df = df[ df["Date"] >= cutoff_date ] # Filter files within the last `daysago` days @@ -170,6 +174,12 @@ def _rdss_file_list(self, duplicates, daysago=None): df = df[ df["Date"] >= "2024-08-05" ] # Filter out rows before the threshold date + logger.info( + "Applying default RDSS date threshold filter: %s", + "2024-08-05", + ) + + logger.info("RDSS files remaining after date filter: %s", len(df)) # Filter the file list to only include rows where ID is in the duplicate report (if any) if not duplicates.empty: @@ -180,7 +190,7 @@ def _rdss_file_list(self, duplicates, daysago=None): merged_df = pd.DataFrame() if df.empty: logger.info("No RDSS files found after filtering.") - print(f"MERGED: {merged_df}") + logger.info("RDSS duplicate-overlap rows: %s", len(merged_df)) return df, merged_df diff --git a/act/utils/group.py b/act/utils/group.py index 5ea4deb..2ab21fa 100644 --- a/act/utils/group.py +++ b/act/utils/group.py @@ -3,7 +3,7 @@ import pandas as pd import plotly.graph_objects as go import logging -from code.utils.pipe import Pipe +from act.utils.pipe import Pipe logger = logging.getLogger(__name__) diff --git a/act/utils/mnt.py b/act/utils/mnt.py index 629b9c0..db4dbc2 100644 --- a/act/utils/mnt.py +++ b/act/utils/mnt.py @@ -9,7 +9,7 @@ def create_symlinks(target_dir="../mnt", system="vosslnx"): """ Create symlinks to the system-specific mount points defined on Pipe. """ - from code.utils.pipe import Pipe + from act.utils.pipe import Pipe os.makedirs(target_dir, exist_ok=True) diff --git a/act/utils/pipe.py b/act/utils/pipe.py index f2021b6..4280f10 100644 --- a/act/utils/pipe.py +++ b/act/utils/pipe.py @@ -1,5 +1,5 @@ -from code.utils.save import Save -from code.core.gg import GG +from act.utils.save import Save +from act.core.gg import GG class Pipe: @@ -20,8 +20,8 @@ class Pipe: RDSS_DIR="/mnt/nfs/rdss/vosslab/Repositories/Accelerometer_Data", ), "local": dict( - INT_DIR="/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test", - OBS_DIR="/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test", + INT_DIR="/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2", + OBS_DIR="/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2", RDSS_DIR="/mnt/rdss/VossLab/Repositories/Accelerometer_Data", ), "argon": dict( @@ -49,12 +49,13 @@ def configure(cls, system: str = "vosslnx") -> None: cls.OBS_DIR = paths["OBS_DIR"] cls.RDSS_DIR = paths["RDSS_DIR"] - def __init__(self, token, daysago, system="vosslnx"): + def __init__(self, token, daysago, system="vosslnx", rebuild_manifest_only=False): # ensure class attrs are set for everyone (Pipe.INT_DIR etc.) type(self).configure(system) self.token = token self.daysago = daysago self.system = system + self.rebuild_manifest_only = rebuild_manifest_only def run_pipe(self): save_instance = Save( @@ -67,6 +68,14 @@ def run_pipe(self): ) try: + if self.rebuild_manifest_only: + rebuilt_payload = save_instance.rebuild_manifest_payload_from_lss() + save_instance._atomic_write_manifest( + rebuilt_payload, + save_instance.manifest_path, + ) + return None + matched = save_instance.save() # (side note: your JSON writing was invalid; use json.dump) @@ -77,12 +86,13 @@ def run_pipe(self): with open("res/data.json", "w") as f: json.dump(matched, f, indent=2) - GG( - matched=matched, - intdir=type(self).INT_DIR, - obsdir=type(self).OBS_DIR, - system=self.system, - ).run_gg() + if not self.rebuild_manifest_only: + GG( + matched=matched, + intdir=type(self).INT_DIR, + obsdir=type(self).OBS_DIR, + system=self.system, + ).run_gg() finally: Save.remove_symlink_directories([type(self).INT_DIR, type(self).OBS_DIR]) diff --git a/act/utils/qc.py b/act/utils/qc.py index 5881a4e..449e8d6 100644 --- a/act/utils/qc.py +++ b/act/utils/qc.py @@ -1,8 +1,8 @@ import os import glob import pandas as pd -from code.utils.pipe import Pipe -from code.utils.plots import ACT_PLOTS, create_json +from act.utils.pipe import Pipe +from act.utils.plots import ACT_PLOTS, create_json class QC: diff --git a/act/utils/save.py b/act/utils/save.py index 569e187..ba07347 100644 --- a/act/utils/save.py +++ b/act/utils/save.py @@ -1,14 +1,27 @@ import errno +import json import logging import os +import re import shutil -from code.utils.comparison_utils import ID_COMPARISONS +import tempfile +from datetime import date, datetime +from act.utils.comparison_utils import ID_COMPARISONS class Save: logger = logging.getLogger(__name__) - def __init__(self, intdir, obsdir, rdssdir, token, daysago=None, symlink=True): + def __init__( + self, + intdir, + obsdir, + rdssdir, + token, + daysago=None, + symlink=True, + manifest_path="res/data.json", + ): if not rdssdir: raise ValueError( "RDSS directory is not configured for this system; cannot ingest files." @@ -28,9 +41,17 @@ def __init__(self, intdir, obsdir, rdssdir, token, daysago=None, symlink=True): self.INT_DIR = intdir self.OBS_DIR = obsdir self.RDSS_DIR = rdssdir + self.token = token + self.daysago = daysago self.symlink = symlink + self.manifest_path = manifest_path + self.manifest = {} def save(self): + self.manifest = self._load_manifest( + getattr(self, "manifest_path", "res/data.json") + ) + # First, process the base matches. matches = self._determine_run(matches=self.matches) matches = self._determine_study(matches=matches) @@ -40,9 +61,894 @@ def save(self): if not len(self.dupes) == 0: matches = self._handle_and_merge_duplicates(self.dupes) - # Move the files based on the final matches. - self._move_files(matches=matches) - return self._prepare_for_json(matches) + for subject_id, records in matches.items(): + self._process_subject_transaction(subject_id, records) + + persisted_manifest = self._save_manifest(self.manifest_path) + return self._prepare_for_json(persisted_manifest) + + def _normalize_manifest_payload(self, payload): + if not isinstance(payload, dict): + self.logger.warning( + "Manifest payload is not a dict; using empty fallback payload." + ) + return {} + + normalized = {} + for subject_id, records in payload.items(): + subject_key = str(subject_id) + if not isinstance(records, list): + self.logger.warning( + "Manifest subject %s payload is not a list; coercing to empty list.", + subject_key, + ) + normalized[subject_key] = [] + continue + + normalized_records = [] + for record in records: + if isinstance(record, dict): + normalized_records.append(dict(record)) + else: + self.logger.warning( + "Manifest subject %s contains non-dict record; skipping record.", + subject_key, + ) + + normalized[subject_key] = normalized_records + + return normalized + + def _load_manifest(self, path): + manifest_path = path or getattr(self, "manifest_path", "res/data.json") + + try: + with open(manifest_path, "r", encoding="utf-8") as handle: + payload = json.load(handle) + except FileNotFoundError: + self.logger.warning( + "Manifest file not found at %s; using empty fallback payload.", + manifest_path, + ) + return {} + except (OSError, json.JSONDecodeError) as exc: + self.logger.warning( + "Unable to load manifest from %s (%s); using empty fallback payload.", + manifest_path, + exc, + ) + return {} + + return self._normalize_manifest_payload(payload) + + def _save_manifest(self, path): + manifest_path = path or getattr(self, "manifest_path", "res/data.json") + payload = self._normalize_manifest_payload(getattr(self, "manifest", {})) + payload = self._prepare_for_json(payload) + + os.makedirs(os.path.dirname(manifest_path) or ".", exist_ok=True) + with open(manifest_path, "w", encoding="utf-8") as handle: + json.dump(payload, handle, indent=2) + + return payload + + def _atomic_write_manifest(self, payload, path=None): + manifest_path = path or getattr(self, "manifest_path", "res/data.json") + normalized_payload = self._normalize_manifest_payload(payload) + normalized_payload = self._prepare_for_json(normalized_payload) + + manifest_dir = os.path.dirname(manifest_path) or "." + os.makedirs(manifest_dir, exist_ok=True) + + temp_path = None + try: + fd, temp_path = tempfile.mkstemp( + prefix=".manifest-", + suffix=".json", + dir=manifest_dir, + ) + with os.fdopen(fd, "w", encoding="utf-8") as handle: + json.dump(normalized_payload, handle, indent=2) + handle.flush() + os.fsync(handle.fileno()) + + os.replace(temp_path, manifest_path) + + try: + dir_fd = os.open(manifest_dir, os.O_DIRECTORY) + except (AttributeError, OSError): + dir_fd = None + + if dir_fd is not None: + try: + os.fsync(dir_fd) + finally: + os.close(dir_fd) + + return normalized_payload + except Exception: + if temp_path and os.path.exists(temp_path): + try: + os.remove(temp_path) + except OSError: + pass + raise + + def _normalize_record_date_value(self, date_value): + if date_value is None: + return None + + if hasattr(date_value, "to_pydatetime"): + try: + date_value = date_value.to_pydatetime() + except Exception: + pass + + if isinstance(date_value, datetime): + return date_value.date().isoformat() + + if isinstance(date_value, date): + return date_value.isoformat() + + if isinstance(date_value, str): + normalized = date_value.strip() + if not normalized: + return normalized + + parse_candidates = (normalized, normalized.replace("Z", "+00:00")) + for candidate in parse_candidates: + try: + parsed = datetime.fromisoformat(candidate) + except ValueError: + continue + return parsed.date().isoformat() + + return normalized + + if hasattr(date_value, "isoformat"): + return date_value.isoformat() + + return str(date_value) + + def _reindex_subject_records(self, existing_records, incoming_records): + merged_records = [] + seen_keys = set() + + for record_list in (existing_records or [], incoming_records or []): + if not isinstance(record_list, list): + continue + + for record in record_list: + if not isinstance(record, dict): + continue + + normalized_record = dict(record) + normalized_record["date"] = self._normalize_record_date_value( + normalized_record.get("date") + ) + + dedupe_key = ( + str(normalized_record.get("labID", "")), + normalized_record.get("date"), + str(normalized_record.get("filename", "")), + ) + + if dedupe_key in seen_keys: + continue + + seen_keys.add(dedupe_key) + merged_records.append(normalized_record) + + return merged_records + + def _subject_sort_key(self, record): + normalized_date = self._normalize_record_date_value(record.get("date")) or "" + filename = str(record.get("filename", "")) + lab_id = str(record.get("labID", "")) + return (normalized_date, filename, lab_id) + + def _detect_same_date_conflict(self, records): + seen_dates = set() + for record in records: + normalized_date = self._normalize_record_date_value(record.get("date")) + if normalized_date is None: + continue + if normalized_date in seen_dates: + return True + seen_dates.add(normalized_date) + return False + + def _record_identity_key(self, record): + return ( + str(record.get("labID", "")), + self._normalize_record_date_value(record.get("date")), + str(record.get("filename", "")), + ) + + def _subject_study_root(self, study): + if (study or "").lower() == "int": + return self.INT_DIR + return self.OBS_DIR + + def _fetch_redcap_subject_lab_rows(self): + token = getattr(self, "token", None) + if not token: + raise ValueError("RedCap token is required to fetch subject mappings") + + rdss_dir = getattr(self, "RDSS_DIR", None) or "." + daysago = getattr(self, "daysago", None) + + report_df, _ = ID_COMPARISONS( + rdss_dir=rdss_dir, + token=token, + daysago=daysago, + )._return_report() + return report_df + + def resolve_subject_lab_mapping(self, subject_ids): + requested_subjects = sorted( + { + str(subject_id) + for subject_id in (subject_ids or []) + if str(subject_id).strip() + } + ) + if not requested_subjects: + return {} + + report_rows = self._fetch_redcap_subject_lab_rows() + if hasattr(report_rows, "to_dict"): + report_rows = report_rows.to_dict(orient="records") + + mapping, missing_subjects = self._build_subject_lab_mapping( + requested_subjects, + report_rows, + ) + + if missing_subjects: + raise ValueError( + "Missing RedCap subject->lab mappings for subject(s): " + + ", ".join(missing_subjects) + ) + + return {subject_id: mapping[subject_id] for subject_id in requested_subjects} + + def _build_subject_lab_mapping(self, requested_subjects, report_rows): + requested_subjects = [str(subject_id) for subject_id in (requested_subjects or [])] + + mapping = {} + for row in report_rows or []: + if not isinstance(row, dict): + continue + + boost_id = row.get("boost_id") + lab_id = row.get("lab_id") + if boost_id is None or lab_id is None: + continue + + mapping[str(boost_id)] = str(lab_id) + + missing_subjects = [ + subject_id for subject_id in requested_subjects if subject_id not in mapping + ] + return mapping, missing_subjects + + def _subject_order_key(self, subject_id): + subject = str(subject_id) + try: + return (0, int(subject)) + except ValueError: + return (1, subject) + + def _resolve_rdss_session_metadata_with_missing( + self, + discovered_sessions, + subject_lab_mapping, + ): + rdss_rows = self._list_rdss_metadata_rows() + rows_by_lab = {} + for row in rdss_rows: + lab_id = str(row.get("labID", "")) + rows_by_lab.setdefault(lab_id, []).append(row) + + for lab_id in rows_by_lab: + rows_by_lab[lab_id].sort( + key=lambda row: ( + self._normalize_record_date_value(row.get("date")) or "", + str(row.get("filename", "")), + ) + ) + + enriched = {} + missing = [] + + for subject_id, sessions in (discovered_sessions or {}).items(): + subject_key = str(subject_id) + mapped_lab_id = str((subject_lab_mapping or {}).get(subject_key, "")) + if not mapped_lab_id: + continue + + lab_rows = rows_by_lab.get(mapped_lab_id, []) + + for session in sorted(sessions or [], key=lambda item: int(item.get("run", 0))): + run = int(session.get("run")) + if run <= 0 or run > len(lab_rows): + missing.append( + { + "subject_id": subject_key, + "run": run, + "labID": mapped_lab_id, + } + ) + continue + + selected = lab_rows[run - 1] + if not all(selected.get(field) for field in ("filename", "labID", "date")): + missing.append( + { + "subject_id": subject_key, + "run": run, + "labID": mapped_lab_id, + } + ) + continue + + enriched.setdefault(subject_key, []).append( + { + "filename": selected["filename"], + "labID": selected["labID"], + "date": selected["date"], + "run": run, + "study": session.get("study"), + "file_path": session.get("file_path"), + } + ) + + for subject_id in enriched: + enriched[subject_id].sort(key=lambda item: int(item["run"])) + + return enriched, missing + + def _session_run_from_folder(self, session_folder_name): + match = re.fullmatch(r"ses-(\d+)", str(session_folder_name or "")) + if not match: + return None + return int(match.group(1)) + + def _candidate_session_csvs(self, session_dir): + if not os.path.isdir(session_dir): + return [] + + candidates = [] + for name in sorted(os.listdir(session_dir)): + lower_name = name.lower() + if lower_name.endswith("_accel.csv"): + candidates.append(os.path.join(session_dir, name)) + return candidates + + def discover_lss_sessions(self): + discovered = {} + conflicts = {} + + for study, study_root in (("int", self.INT_DIR), ("obs", self.OBS_DIR)): + if not study_root or not os.path.isdir(study_root): + continue + + for subject_folder in sorted(os.listdir(study_root)): + if not subject_folder.startswith("sub-"): + continue + + subject_id = subject_folder[len("sub-") :] + accel_root = os.path.join(study_root, subject_folder, "accel") + if not os.path.isdir(accel_root): + continue + + for session_folder in sorted(os.listdir(accel_root)): + run = self._session_run_from_folder(session_folder) + if run is None: + continue + + session_dir = os.path.join(accel_root, session_folder) + if not os.path.isdir(session_dir): + continue + + candidates = self._candidate_session_csvs(session_dir) + if len(candidates) > 1: + conflict_message = ( + f"multiple accel csv candidates in {session_dir}: " + + ", ".join(os.path.basename(path) for path in candidates) + ) + conflicts.setdefault(subject_id, []).append(conflict_message) + continue + + if len(candidates) == 0: + continue + + csv_path = candidates[0] + discovered.setdefault(subject_id, []).append( + { + "subject_id": subject_id, + "study": study, + "run": run, + "file_path": csv_path, + "filename": os.path.basename(csv_path), + } + ) + + for subject_id in discovered: + discovered[subject_id].sort(key=lambda record: record["run"]) + + return discovered, conflicts + + def _list_rdss_metadata_rows(self): + rdss_dir = getattr(self, "RDSS_DIR", None) + if not rdss_dir or not os.path.isdir(rdss_dir): + return [] + + rows = [] + pattern = re.compile(r"^(?P\S+)\s*\((?P[^)]+)\).+\.csv$", re.IGNORECASE) + + for filename in sorted(os.listdir(rdss_dir)): + if not filename.lower().endswith(".csv"): + continue + + match = pattern.match(filename) + if not match: + continue + + rows.append( + { + "filename": filename, + "labID": str(match.group("lab_id")), + "date": self._normalize_record_date_value(match.group("date")), + } + ) + + rows.sort( + key=lambda row: ( + self._normalize_record_date_value(row.get("date")) or "", + str(row.get("filename", "")), + ) + ) + return rows + + def resolve_rdss_session_metadata(self, discovered_sessions, subject_lab_mapping): + enriched, missing = self._resolve_rdss_session_metadata_with_missing( + discovered_sessions, + subject_lab_mapping, + ) + + if missing: + raise ValueError( + "Unresolved RDSS metadata for session(s): " + + "; ".join( + sorted( + f"subject={entry['subject_id']} run={entry['run']} labID={entry['labID']}" + for entry in missing + ) + ) + ) + + return enriched + + def rebuild_manifest_payload_from_lss(self): + discovered, discovery_conflicts = self.discover_lss_sessions() + + subject_errors = {} + for subject_id, messages in (discovery_conflicts or {}).items(): + subject_errors.setdefault(str(subject_id), []).extend(list(messages or [])) + + subject_ids = sorted(discovered.keys(), key=self._subject_order_key) + + report_rows = self._fetch_redcap_subject_lab_rows() + if hasattr(report_rows, "to_dict"): + report_rows = report_rows.to_dict(orient="records") + + subject_lab_mapping, missing_subjects = self._build_subject_lab_mapping( + subject_ids, + report_rows, + ) + for subject_id in missing_subjects: + subject_errors.setdefault(subject_id, []).append( + "missing RedCap subject->lab mapping" + ) + + discovered_with_mapping = { + subject_id: discovered[subject_id] + for subject_id in subject_ids + if subject_id in subject_lab_mapping + } + enriched, rdss_missing = self._resolve_rdss_session_metadata_with_missing( + discovered_with_mapping, + subject_lab_mapping, + ) + for item in rdss_missing: + subject_id = str(item["subject_id"]) + subject_errors.setdefault(subject_id, []).append( + f"unresolved RDSS metadata for run={item['run']} labID={item['labID']}" + ) + + if subject_errors: + parts = [] + for subject_id in sorted(subject_errors.keys(), key=self._subject_order_key): + messages = "; ".join(sorted(set(subject_errors[subject_id]))) + parts.append(f"subject={subject_id}: {messages}") + raise ValueError( + "Manifest rebuild failed due to strict conflict(s): " + " | ".join(parts) + ) + + payload = {} + for subject_id in sorted(enriched.keys(), key=self._subject_order_key): + records = sorted(enriched[subject_id], key=lambda row: int(row["run"])) + payload[str(subject_id)] = records + + return self._prepare_for_json(payload) + + def _subject_session_paths(self, subject_id, study, run): + subject_key = str(subject_id) + session = int(run) + study_root = self._subject_study_root(study) + session_dir = os.path.join( + study_root, + f"sub-{subject_key}", + "accel", + f"ses-{session}", + ) + session_file = os.path.join( + session_dir, + f"sub-{subject_key}_ses-{session}_accel.csv", + ) + return session_dir, session_file + + def _infer_subject_study(self, subject_id, fallback_records=None): + if fallback_records: + for record in fallback_records: + study = (record or {}).get("study") + if study in {"int", "obs"}: + return study + + try: + subject_val = int(subject_id) + except (TypeError, ValueError): + return "obs" + + if subject_val >= 8000: + return "int" + return "obs" + + def _copy_subject_record(self, record): + source_path = os.path.join(self.RDSS_DIR, record["filename"]) + destination_path = record["file_path"] + + if not os.path.exists(source_path): + print(f"Source file not found: {source_path}. Skipping.") + return None + + destination_dir = os.path.dirname(destination_path) + os.makedirs(destination_dir, exist_ok=True) + + if os.path.exists(destination_path): + print(f"File already exists at destination: {destination_path}. Skipping.") + if self.symlink: + self._refresh_subject_symlinks(destination_path) + return None + + shutil.copy(source_path, destination_path) + if self.symlink: + self._refresh_subject_symlinks(destination_path) + return destination_path + + def _rollback_rename_plan(self, rename_plan): + inverse_moves = [] + for move in reversed((rename_plan or {}).get("moves", [])): + inverse_moves.append( + { + "record_key": move.get("record_key"), + "old_run": move.get("new_run"), + "new_run": move.get("old_run"), + "old_dir": move.get("new_dir"), + "new_dir": move.get("old_dir"), + "old_file": move.get("new_file"), + "new_file": move.get("old_file"), + } + ) + + inverse_plan = { + "subject_id": (rename_plan or {}).get("subject_id"), + "study": (rename_plan or {}).get("study"), + "moves": inverse_moves, + } + + if inverse_moves: + self._apply_two_phase_renames(inverse_plan) + + def _process_subject_transaction(self, subject_id, incoming_records): + subject_key = str(subject_id) + incoming_records = incoming_records or [] + existing_records = [dict(record) for record in self.manifest.get(subject_key, [])] + merged_records = self._reindex_subject_records(existing_records, incoming_records) + + if self._detect_same_date_conflict(merged_records): + self.logger.warning("skip_tie_date subject=%s", subject_key) + return [] + + merged_records.sort(key=self._subject_sort_key) + subject_study = self._infer_subject_study(subject_key, incoming_records) + + canonical_records = [] + canonical_lookup = {} + for idx, record in enumerate(merged_records, start=1): + canonical = dict(record) + canonical["run"] = idx + canonical["study"] = subject_study + _, canonical_file = self._subject_session_paths(subject_key, subject_study, idx) + canonical["file_path"] = canonical_file + canonical_records.append(canonical) + canonical_lookup[self._record_identity_key(canonical)] = canonical + + existing_keys = { + self._record_identity_key(record) + for record in existing_records + if isinstance(record, dict) + } + incoming_keys = { + self._record_identity_key(record) + for record in incoming_records + if isinstance(record, dict) + } + new_keys = incoming_keys - existing_keys + + old_dates = [ + self._normalize_record_date_value(record.get("date")) + for record in existing_records + if isinstance(record, dict) + ] + new_dates = [key[1] for key in new_keys if key[1] is not None] + + rename_plan = self._plan_subject_renames( + subject_id=subject_key, + study=subject_study, + old_records=existing_records, + new_records=canonical_records, + ) + + self._log_subject_file_plan( + subject_id=subject_key, + new_keys=new_keys, + canonical_lookup=canonical_lookup, + rename_plan=rename_plan, + ) + + if not new_keys and not rename_plan["moves"]: + self.logger.info("noop_duplicate subject=%s", subject_key) + + if new_keys and old_dates and new_dates: + if min(new_dates) > max(old_dates): + self.logger.info("append_latest subject=%s", subject_key) + else: + self.logger.info("backfill_reindex subject=%s", subject_key) + + applied_renames = False + copied_paths = [] + try: + self._apply_two_phase_renames(rename_plan) + applied_renames = bool(rename_plan["moves"]) + + for record_key in new_keys: + canonical_record = canonical_lookup.get(record_key) + if canonical_record is None: + continue + copied_path = self._copy_subject_record(canonical_record) + if copied_path: + copied_paths.append(copied_path) + + self.manifest[subject_key] = canonical_records + + committed_records = [] + for record in incoming_records: + mapped = canonical_lookup.get(self._record_identity_key(record)) + if mapped is not None: + committed_records.append(dict(mapped)) + + committed_records.sort(key=self._subject_sort_key) + return committed_records + except Exception as exc: + self.logger.warning("rename_failed subject=%s error=%s", subject_key, exc) + + for copied_path in copied_paths: + try: + if os.path.exists(copied_path): + os.remove(copied_path) + except OSError: + pass + + if applied_renames: + try: + self._rollback_rename_plan(rename_plan) + except Exception as rollback_exc: + self.logger.warning( + "rename_failed subject=%s rollback_error=%s", + subject_key, + rollback_exc, + ) + + return [] + + def _plan_subject_renames(self, subject_id, study, old_records, new_records): + old_by_key = { + self._record_identity_key(record): record + for record in (old_records or []) + if isinstance(record, dict) + } + new_by_key = { + self._record_identity_key(record): record + for record in (new_records or []) + if isinstance(record, dict) + } + + rename_steps = [] + for record_key, old_record in old_by_key.items(): + new_record = new_by_key.get(record_key) + if new_record is None: + continue + + old_run = old_record.get("run") + new_run = new_record.get("run") + if old_run is None or new_run is None or int(old_run) == int(new_run): + continue + + old_dir, old_file = self._subject_session_paths(subject_id, study, old_run) + new_dir, new_file = self._subject_session_paths(subject_id, study, new_run) + + rename_steps.append( + { + "record_key": record_key, + "old_run": int(old_run), + "new_run": int(new_run), + "old_dir": old_dir, + "new_dir": new_dir, + "old_file": old_file, + "new_file": new_file, + } + ) + + return { + "subject_id": str(subject_id), + "study": (study or "").lower(), + "moves": rename_steps, + } + + def _log_subject_file_plan(self, subject_id, new_keys, canonical_lookup, rename_plan): + subject_key = str(subject_id) + + planned_new_records = [] + for record_key in new_keys: + record = canonical_lookup.get(record_key) + if record is not None: + planned_new_records.append(record) + + planned_new_records.sort(key=self._subject_sort_key) + + if planned_new_records: + self.logger.info( + "planned_new_files subject=%s count=%s", + subject_key, + len(planned_new_records), + ) + for record in planned_new_records: + source_path = os.path.join(self.RDSS_DIR, str(record.get("filename", ""))) + self.logger.info( + "planned_save subject=%s run=%s source=%s destination=%s", + subject_key, + record.get("run"), + source_path, + record.get("file_path"), + ) + + planned_switches = (rename_plan or {}).get("moves", []) + if planned_switches: + self.logger.info( + "planned_file_switches subject=%s count=%s", + subject_key, + len(planned_switches), + ) + for move in sorted( + planned_switches, + key=lambda item: (item.get("old_run"), item.get("new_run")), + ): + self.logger.info( + "planned_switch subject=%s from_run=%s to_run=%s from=%s to=%s", + subject_key, + move.get("old_run"), + move.get("new_run"), + move.get("old_file"), + move.get("new_file"), + ) + + def _apply_two_phase_renames(self, rename_plan): + moves = (rename_plan or {}).get("moves", []) + if not moves: + return [] + + temp_hops = [] + moved_to_temp = [] + moved_to_final = [] + + try: + for index, move in enumerate(moves, start=1): + old_dir = move["old_dir"] + if not os.path.exists(old_dir): + continue + + base_parent = os.path.dirname(old_dir) + temp_dir = os.path.join( + base_parent, + f".tmp-{rename_plan.get('subject_id', 'subject')}-{index}-{move['old_run']}-to-{move['new_run']}", + ) + while os.path.exists(temp_dir): + temp_dir = f"{temp_dir}-x" + + os.makedirs(os.path.dirname(temp_dir), exist_ok=True) + os.rename(old_dir, temp_dir) + + hop = { + "temp_dir": temp_dir, + "old_dir": move["old_dir"], + "new_dir": move["new_dir"], + "old_file": move["old_file"], + "new_file": move["new_file"], + } + temp_hops.append(hop) + moved_to_temp.append(hop) + + for hop in temp_hops: + new_dir = hop["new_dir"] + new_file = hop["new_file"] + temp_dir = hop["temp_dir"] + + os.makedirs(os.path.dirname(new_dir), exist_ok=True) + os.rename(temp_dir, new_dir) + moved_to_final.append(hop) + + current_file = None + for name in os.listdir(new_dir): + if name.lower().endswith("_accel.csv"): + current_file = os.path.join(new_dir, name) + break + + if current_file and current_file != new_file: + if os.path.exists(new_file): + os.remove(new_file) + os.rename(current_file, new_file) + except Exception: + for hop in reversed(moved_to_final): + try: + if os.path.exists(hop["new_dir"]): + os.rename(hop["new_dir"], hop["old_dir"]) + old_dir = hop["old_dir"] + old_file = hop["old_file"] + current_file = None + if os.path.isdir(old_dir): + for name in os.listdir(old_dir): + if name.lower().endswith("_accel.csv"): + current_file = os.path.join(old_dir, name) + break + if current_file and current_file != old_file: + if os.path.exists(old_file): + os.remove(old_file) + os.rename(current_file, old_file) + except OSError: + pass + + for hop in reversed(moved_to_temp): + try: + if os.path.exists(hop["temp_dir"]): + os.rename(hop["temp_dir"], hop["old_dir"]) + except OSError: + pass + raise + + return temp_hops def _move_files_test(self, matches): """ @@ -209,13 +1115,62 @@ def _determine_run(self, matches): """ print(f"Type of matches: {type(matches)}") # Debugging line print(f"Value of matches: {matches}") # Debugging line - for boost_id, match_list in matches.items(): - # Sort the match_list by date in ascending order - match_list.sort(key=lambda x: x["date"]) + for boost_id, incoming_records in matches.items(): + subject_id = str(boost_id) + existing_records = self.manifest.get(subject_id, []) + merged_records = self._reindex_subject_records( + existing_records=existing_records, + incoming_records=incoming_records, + ) + + if self._detect_same_date_conflict(merged_records): + self.logger.warning( + "skip_tie_date subject=%s", + subject_id, + ) + matches[boost_id] = [] + continue + + merged_records.sort(key=self._subject_sort_key) + run_lookup = {} + for idx, record in enumerate(merged_records, start=1): + record["run"] = idx + dedupe_key = ( + str(record.get("labID", "")), + self._normalize_record_date_value(record.get("date")), + str(record.get("filename", "")), + ) + run_lookup[dedupe_key] = idx + + reconciled_records = [] + seen_incoming_keys = set() + for record in incoming_records: + if not isinstance(record, dict): + continue + + reconciled = dict(record) + reconciled["date"] = self._normalize_record_date_value( + reconciled.get("date") + ) + dedupe_key = ( + str(reconciled.get("labID", "")), + reconciled.get("date"), + str(reconciled.get("filename", "")), + ) + + if dedupe_key in seen_incoming_keys: + continue + seen_incoming_keys.add(dedupe_key) + + assigned_run = run_lookup.get(dedupe_key) + if assigned_run is None: + continue + + reconciled["run"] = assigned_run + reconciled_records.append(reconciled) - # Assign a 'run' value to each entry based on its position in the sorted list - for idx, match in enumerate(match_list, start=1): - match["run"] = idx + reconciled_records.sort(key=self._subject_sort_key) + matches[boost_id] = reconciled_records return matches diff --git a/cron.sh b/cron.sh index 0921d13..eba2c55 100755 --- a/cron.sh +++ b/cron.sh @@ -22,7 +22,7 @@ DAYS_AGO="${DAYS_AGO:-30}" mkdir -p "logs/${SYSTEM}" LOG_FILE="logs/${SYSTEM}/$(date +%Y%m%d_%H%M%S).log" export LOG_FILE -python -m code.main "${DAYS_AGO}" "${BOOST_TOKEN}" "${SYSTEM}" >> "${LOG_FILE}" 2>&1 +python -m act.main --daysago "${DAYS_AGO}" --token "${BOOST_TOKEN}" --system "${SYSTEM}" >> "${LOG_FILE}" 2>&1 if ! git diff --quiet; then git add . diff --git a/cron_local.sh b/cron_local.sh index 6ceb434..82869b5 100755 --- a/cron_local.sh +++ b/cron_local.sh @@ -2,7 +2,6 @@ # set -euo pipefail -git pull --ff-only origin final-test if [[ -z "${BOOST_TOKEN:-}" ]]; then echo "BOOST_TOKEN is required. Aborting." >&2 @@ -13,11 +12,7 @@ SYSTEM="${BOOST_SYSTEM:-local}" DAYS_AGO="${DAYS_AGO:-30}" mkdir -p "logs/${SYSTEM}" -python -m code.main "${DAYS_AGO}" "${BOOST_TOKEN}" "${SYSTEM}" | tee "logs/${SYSTEM}/$(date +%Y%m%d_%H%M%S).log" +python -m act.main --daysago "${DAYS_AGO}" --token "${BOOST_TOKEN}" --system "${SYSTEM}" --rebuild-manifest-only | tee "logs/${SYSTEM}/$(date +%Y%m%d_%H%M%S).log" + -if ! git diff --quiet; then - git add . - git commit -m "automated commit by vosslab linux" - git push -fi diff --git a/features/FEATURE-cli-and-manifest-update/FEATURE-IMPLEMENTATION.md b/features/FEATURE-cli-and-manifest-update/FEATURE-IMPLEMENTATION.md new file mode 100644 index 0000000..e91a6a9 --- /dev/null +++ b/features/FEATURE-cli-and-manifest-update/FEATURE-IMPLEMENTATION.md @@ -0,0 +1,68 @@ +# Feature Implementation Plan -> CLI Modernization + Rebuild Manifest from LSS + +> AGENTS: +> Complete each step one at a time and run tests before completion. Upon completion, mark each checkbox as complete and add small notes for future checkpoints only if needed. + +***Checkpoint 1: CLI Parser Foundation (`argparse`)*** +- [x] Replace ad-hoc `sys.argv` parsing in `act/main.py` with a typed `argparse` parser. +- [x] Preserve required inputs (`token`, `daysago`, `system`) with explicit validation and help text. +- [x] Add new mode flag plumbing for `--rebuild-manifest-only` (parse-only wiring; no behavior switch yet). +- [x] A test: extend `act/tests/test_pipeline_smoke.py` with parser/entrypoint argument validation cases (valid + invalid invocations). + +Checkpoint note: CLI now uses explicit required flags (`--token`, `--daysago`, `--system`) and carries `--rebuild-manifest-only` into `Pipe` without mode switching yet. + +***Checkpoint 2: Mode Routing in Pipeline*** +- [x] Add mode-aware execution path in `act/utils/pipe.py` so normal mode and `--rebuild-manifest-only` branch cleanly. +- [x] Ensure manifest-only mode skips GGIR and plotting calls while preserving existing behavior in default mode. +- [x] Keep system-path resolution unchanged and shared between modes. +- [x] A test: extend `act/tests/test_pipeline_smoke.py` to assert GGIR/plot are not invoked when manifest-only is active. + +Checkpoint note: `Pipe.run_pipe()` now skips GGIR in manifest-only mode, and `act.main` skips plotting when `--rebuild-manifest-only` is set. + +***Checkpoint 3: LSS Session Discovery Engine*** +- [x] Implement LSS scanner in `act/utils/save.py` (or a focused helper module) to discover `sub-*/accel/ses-*` session CSVs from configured `INT_DIR`/`OBS_DIR`. +- [x] Derive `subject_id`, `study`, and `run` strictly from folder layout (`ses-# -> run=#`). +- [x] Enforce single-candidate-session rule: if multiple candidate accel CSVs exist in a session folder, register subject conflict. +- [x] A test: add `act/tests/test_manifest_rebuild_from_lss.py` with fixtures that validate discovery and multi-CSV conflict detection. + +Checkpoint note: Added `Save.discover_lss_sessions()` returning `(discovered, conflicts)` with strict `ses-#` parsing and multi-candidate session conflict reporting. + +***Checkpoint 4: RedCap Subject→Lab Mapping Layer*** +- [x] Add a reusable mapping fetch path from RedCap report to resolve `subject_id -> labID` for discovered LSS subjects. +- [x] Handle missing subject mappings as strict rebuild errors (no partial write). +- [x] Ensure mapping logic is isolated for direct unit testing (no filesystem side effects). +- [x] A test: add mapping unit tests in `act/tests/test_manifest_rebuild_from_lss.py` using monkeypatched report responses for found/missing subjects. + +Checkpoint note: Added `Save._fetch_redcap_subject_lab_rows()` and `Save.resolve_subject_lab_mapping()` with strict missing-subject failure and direct monkeypatch-friendly tests. + +***Checkpoint 5: RDSS Metadata Resolution Layer*** +- [x] Implement RDSS lookup that resolves required metadata (`filename`, `labID`, `date`) for each discovered LSS session. +- [x] Treat unresolved metadata as strict failure for rebuild mode. +- [x] Keep RDSS as enrichment-only (must not create manifest rows absent on LSS). +- [x] A test: add success/failure lookup tests in `act/tests/test_manifest_rebuild_from_lss.py` covering complete resolution and unresolved metadata failure. + +Checkpoint note: Added `Save._list_rdss_metadata_rows()` and `Save.resolve_rdss_session_metadata()`; resolver enriches only LSS-discovered sessions and raises on unresolved run-level metadata. + +***Checkpoint 6: Manifest Rebuild Assembly + Strict Error Model*** +- [x] Assemble canonical manifest payload from LSS-discovered sessions enriched by RedCap/RDSS. +- [x] Produce deterministic ordering by subject and run for stable output. +- [x] Aggregate subject-level errors and fail command when any strict conflict exists. +- [x] A test: add end-to-end rebuild unit tests in `act/tests/test_manifest_rebuild_from_lss.py` for deterministic output and strict fail-on-error behavior. + +Checkpoint note: Added `Save.rebuild_manifest_payload_from_lss()` with deterministic subject/run ordering and aggregated strict subject-level conflicts across LSS discovery, RedCap mapping, and RDSS metadata resolution. + +***Checkpoint 7: Atomic Manifest Write + Exit Semantics*** +- [x] Implement atomic write (`temp -> fsync -> replace`) for `res/data.json` in rebuild mode. +- [x] Guarantee prior manifest remains unchanged on failure. +- [x] Return non-zero exit from CLI when rebuild conflicts/errors occur. +- [x] A test: add write-safety and exit-code assertions in `act/tests/test_pipeline_smoke.py` and `act/tests/test_manifest_rebuild_from_lss.py`. + +Checkpoint note: Rebuild mode now uses `Save._atomic_write_manifest()` and `main()` returns exit code `1` on strict rebuild `ValueError`; tests cover non-zero exit and manifest preservation when replace fails. + +***Checkpoint 8: Documentation + Operator Runbook*** +- [x] Update feature docs and operator guidance for new CLI usage and `--rebuild-manifest-only` behavior. +- [x] Document strict-failure conditions (multi-CSV session, missing RedCap mapping, missing RDSS metadata). +- [x] Add example commands for NixOS and generic Linux execution contexts. +- [x] A test: validate docs commands via `pytest --collect-only -q act/tests/test_manifest_rebuild_from_lss.py` and targeted run `pytest -q act/tests/test_manifest_rebuild_from_lss.py act/tests/test_pipeline_smoke.py`. + +Checkpoint note: Updated README + TESTING runbook for new flag-based CLI and rebuild-only strict-failure semantics; targeted test run for documented files passed (`20 passed`). diff --git a/features/FEATURE-cli-and-manifest-update/FEATURE-SPEC.md b/features/FEATURE-cli-and-manifest-update/FEATURE-SPEC.md new file mode 100644 index 0000000..69691f4 --- /dev/null +++ b/features/FEATURE-cli-and-manifest-update/FEATURE-SPEC.md @@ -0,0 +1,77 @@ +# Feature Spec — CLI Modernization + Rebuild Manifest Only + +## Goals +- Provide a standard, explicit CLI interface using `argparse` that is stable across NixOS and generic headless Linux. +- Add a strict `--rebuild-manifest-only` execution mode that rebuilds `res/data.json` from current LSS layout. +- Treat LSS folders as source-of-truth for which subject/session records exist. +- Enrich LSS-derived records with metadata from RedCap and RDSS. + +## Functional Requirements (FR) + +### FR-CLI-1: Standard CLI Interface +- The entrypoint must use `argparse` with typed arguments and validation. +- Existing positional behavior should be replaced or cleanly wrapped by explicit flags. +- CLI usage/help text must document all modes and required arguments. + +### FR-CLI-2: `--rebuild-manifest-only` Mode +- Add a boolean flag `--rebuild-manifest-only`. +- When this flag is enabled, the pipeline must: + - rebuild manifest records, + - write `res/data.json`, + - skip copy/rename file operations, + - skip GGIR, + - skip plotting. + +### FR-MANIFEST-1: Source of Truth = LSS Layout +- In `--rebuild-manifest-only`, discover records from LSS session folders for the selected `system` paths. +- A manifest row must exist only if a corresponding session CSV exists on LSS. +- RDSS presence alone must not create records. + +### FR-MANIFEST-2: Run Derivation from Session Folder +- Derive `run` from the LSS folder name `ses-#`. +- `ses-1 -> run=1`, `ses-2 -> run=2`, etc. +- Do not reassign runs based on date ordering in rebuild mode. + +### FR-MANIFEST-3: Metadata Enrichment +- Use RedCap report mapping to resolve `subject_id -> labID`. +- Use RDSS file list to resolve per-session metadata fields: + - `filename` + - `labID` + - `date` +- Manifest row shape remains compatible with existing `data.json` contract. + +### FR-MANIFEST-4: Strict Failure Rules +- If a session folder contains multiple candidate accel CSV files, mark the subject as conflict and fail rebuild. +- If any required metadata (`filename`, `labID`, `date`) cannot be resolved via RedCap/RDSS for any discovered LSS session, fail rebuild. +- Rebuild failure must return non-zero exit status and must not write a partial final manifest. + +### FR-MANIFEST-5: Safe Write Semantics +- Manifest output must be atomic (write temp file, then replace target). +- On failure, preserve prior manifest file unchanged. + +## Scope + +### In Scope +- CLI argument redesign using `argparse`. +- `--rebuild-manifest-only` implementation. +- LSS scanning logic for session discovery. +- RedCap/RDSS lookup integration required to populate manifest fields. +- Strict conflict/error reporting and non-zero exit behavior. + +### Out of Scope +- Any GGIR execution behavior changes. +- Any plotting behavior changes. +- Automatic reconciliation or mutation of LSS files/folders. +- Relaxed mode that keeps partial/placeholder manifest rows. + +## Non-Functional Requirements +- Must run in non-interactive/headless environments. +- Must remain dependency-light (no new heavy CLI frameworks). +- Logging must clearly identify subject-level failure causes. + +## Acceptance Criteria +- Running with `--rebuild-manifest-only` produces `res/data.json` based strictly on existing LSS sessions. +- Runs in manifest match `ses-#` folder indices. +- Missing RedCap/RDSS metadata causes command failure with clear logs. +- Multi-CSV-in-session conflict causes command failure with clear logs. +- No GGIR, plotting, copy, or rename actions occur in this mode. \ No newline at end of file diff --git a/features/FEATURE-session-signature/FEATURE-IMPLEMENTATION.md b/features/FEATURE-session-signature/FEATURE-IMPLEMENTATION.md new file mode 100644 index 0000000..72f667e --- /dev/null +++ b/features/FEATURE-session-signature/FEATURE-IMPLEMENTATION.md @@ -0,0 +1,68 @@ +# Feature Implementation Plan -> Manifest-Only Session Reindexing + +> AGENTS: +> Complete each step one at a time and run tests before completion. Upon completion, mark each checkbox as complete and add small notes for future checkpoints only if needed. + +***Checkpoint 1: Manifest IO Foundation*** +- [x] Add manifest path handling in `act/utils/save.py` (default to `res/data.json`) with `_load_manifest(path)` and `_save_manifest(path)` helpers. +- [x] Normalize loaded payload structure to `dict[str, list[dict]]` and guard missing/corrupt file with safe fallback to `{}` + warning log. +- [x] Wire manifest load into `Save.save()` before run assignment and keep in-memory manifest state for the ingest cycle. +- [x] A test: add `test_load_manifest_missing_file_returns_empty` and `test_load_manifest_roundtrip` in `act/tests/test_save_manifest_reindex.py`. + +Checkpoint note: Completed on 2026-02-24 with targeted verification via `pytest -q act/tests/test_save_manifest_reindex.py act/tests/test_save_edge_cases.py` (7 passed). + +***Checkpoint 2: Subject Merge + Dedup Core*** +- [x] Implement `_reindex_subject_records(existing_records, incoming_records)` in `act/utils/save.py` to merge by subject and dedupe by `(labID, date, filename)`. +- [x] Add datetime normalization helper for incoming/existing date values (including ISO strings currently stored in manifest). +- [x] Ensure dedupe is idempotent so repeated ingest of the same RDSS rows produces no new logical sessions. +- [x] A test: add `test_exact_duplicate_key_noop` and `test_idempotent_rerun_no_session_drift` in `act/tests/test_save_manifest_reindex.py`. + +Checkpoint note: Completed on 2026-02-24 with targeted verification via `pytest -q act/tests/test_save_manifest_reindex.py act/tests/test_save_edge_cases.py` (9 passed). + +***Checkpoint 3: Chronological Ordering + Tie Conflict Policy*** +- [x] Add `_subject_sort_key(record)` and strict ordering by date ascending for each subject. +- [x] Implement `_detect_same_date_conflict(records)` to detect duplicate dates within a subject across merged records. +- [x] Enforce skip policy on tie-date conflict (`warning` + no filesystem operations + no manifest mutation for that subject). +- [x] A test: add `test_same_date_conflict_warns_and_skips_subject` in `act/tests/test_save_manifest_reindex.py` and extend `act/tests/test_save_edge_cases.py` with a subject-skip assertion. + +Checkpoint note: Completed on 2026-02-24 with targeted verification via `pytest -q act/tests/test_save_manifest_reindex.py act/tests/test_save_edge_cases.py` (10 passed). + +***Checkpoint 4: Run Reindex Assignment Engine*** +- [x] Replace date-only `_determine_run` logic with manifest-aware subject reindex that assigns dense runs `1..n` after canonical sort. +- [x] Handle three required flows: new subject defaults to `run=1`, later-date append behavior, and earlier-date insertion with run shifts. +- [x] Propagate reconciled runs to downstream location generation so `_determine_location` reflects final run mapping. +- [x] A test: add `test_new_subject_defaults_to_run_one`, `test_later_date_appends_next_run`, and `test_earlier_date_backfill_reindexes_and_shifts_runs` in `act/tests/test_save_manifest_reindex.py`. + +Checkpoint note: Completed on 2026-02-24 with targeted verification via `pytest -q act/tests/test_save_manifest_reindex.py act/tests/test_save_edge_cases.py` (13 passed). + +***Checkpoint 5: Two-Phase Rename Planning*** +- [x] Add `_plan_subject_renames(subject_id, study, old_records, new_records)` to compute impacted `ses-*` file/directory moves. +- [x] Add `_apply_two_phase_renames(rename_plan)` using temporary paths to avoid name collisions during upward/downward session shifts. +- [x] Ensure rename plan is no-op when runs are unchanged and only touches subject/session paths in that subject’s study tree. +- [x] A test: add `test_two_phase_rename_avoids_collision` in `act/tests/test_save_manifest_reindex.py` using on-disk fixtures under temp roots. + +Checkpoint note: Completed on 2026-02-24 with targeted verification via `pytest -q act/tests/test_save_manifest_reindex.py act/tests/test_save_edge_cases.py` (14 passed). + +***Checkpoint 6: Subject Transaction Safety*** +- [x] Execute per-subject flow as transaction-like sequence: compute plan -> rename -> copy new files -> in-memory manifest update. +- [x] On rename/copy failure, roll back temporary moves where possible and skip manifest mutation for that subject. +- [x] Emit structured logs (`append_latest`, `backfill_reindex`, `skip_tie_date`, `noop_duplicate`, `rename_failed`) via `logging` in `act/utils/save.py`. +- [x] A test: add `test_subject_failure_does_not_mutate_manifest` in `act/tests/test_save_manifest_reindex.py` with monkeypatched rename/copy failure. + +Checkpoint note: Completed on 2026-02-24 with targeted verification via `pytest -q act/tests/test_save_manifest_reindex.py act/tests/test_save_edge_cases.py act/tests/test_pipeline_smoke.py` (17 passed). + +***Checkpoint 7: Save Flow Integration + Regression Coverage*** +- [x] Integrate manifest reindex output into existing `Save.save()` flow without breaking `_determine_study`, `_determine_location`, and `_move_files` behavior. +- [x] Update or extend fixtures in `act/tests/conftest.py`: `manifest_factory`, `rdss_record_factory`, and `subject_tree_factory`. +- [x] Extend `act/tests/test_save_edge_cases.py` for manifest-driven run stability and gap-shift behavior in both `int` and `obs` study roots. +- [x] A test: run targeted suite `pytest -q act/tests/test_save_manifest_reindex.py act/tests/test_save_edge_cases.py` and confirm all new checkpoints are covered. + +Checkpoint note: Completed on 2026-02-24 with targeted verification via `pytest -q act/tests/test_save_manifest_reindex.py act/tests/test_save_edge_cases.py` (19 passed). + +***Checkpoint 8: Documentation + Operator Guidance*** +- [x] Update `act/docs/TESTING.md` with manifest-only reindex test commands and expected behaviors (append, backfill, tie-date skip). +- [x] Add a short operational note on single-writer assumption and the impact of manual edits to `res/data.json`. +- [x] Document where checkpoint tests live and how to run only manifest-reindex tests during development. +- [x] A test: validate docs commands from a clean venv using `pytest --collect-only` for the new module and targeted test run for updated modules. + +Checkpoint note: Completed on 2026-02-24 with docs command verification via `pytest --collect-only -q act/tests/test_save_manifest_reindex.py` (10 collected) and `pytest -q act/tests/test_save_manifest_reindex.py act/tests/test_save_edge_cases.py` (19 passed). diff --git a/features/FEATURE-session-signature/FEATURE-SPEC.md b/features/FEATURE-session-signature/FEATURE-SPEC.md new file mode 100644 index 0000000..3b77aac --- /dev/null +++ b/features/FEATURE-session-signature/FEATURE-SPEC.md @@ -0,0 +1,123 @@ +# Feature Spec -> Manifest-Only Session Reindexing + +## Goal +Use `res/data.json` as the single source of truth for run assignment so transfers and backfills keep subject sessions dense, chronological, and deterministic. + +## Problem recap (current behavior) +- `Save._determine_run` in `act/utils/save.py` currently assigns `run=1..n` from incoming batch dates only. +- It does not preload existing subject history from `res/data.json` before assigning runs. +- When a backfilled older session arrives after newer sessions were already transferred, the current logic can place it at the wrong run or skip movement due to path collisions. + +## Scope and source of truth +- Canonical run history is manifest-only: `res/data.json`. +- No content signatures are used. +- Filesystem state is operational output; run ordering decisions are made from manifest + incoming RDSS rows. +- The ingest process must update manifest and filesystem together in one ordered reindex flow. + +## Final conflict-resolution rules (resolved) + +### 1) Per-subject canonical ordering +- Build candidate session list for each subject from: + 1. Existing subject entries in `res/data.json`. + 2. Newly discovered RDSS entries for that subject. +- Deduplicate exact repeats by key `(labID, date, filename)`. +- Sort strictly by `date` ascending. +- Date tie policy: if two or more sessions for the same subject have the same date, **emit warning and skip the entire subject for this ingest run** (no renames, no copies, no manifest mutation for that subject). + +### 2) Run assignment and default behavior +- After sort, assign dense runs `1..n`. +- If a subject is entirely new (no manifest entries), first valid incoming session defaults to `run=1`. +- If incoming date is later than existing latest date, it receives the next run (`last_run + 1`) after canonical reindex. +- If incoming date is earlier than one or more existing dates, insert into chronological position and shift later runs by +1 through full reindex. + +### 3) Backfill rename mechanism (required) +- Reindexing that changes any existing run must rename paths in both studies as needed. +- Use **two-phase temp renames** to avoid collision: + 1. Move all impacted existing files/directories from final names to temporary names. + 2. Move temporary names to final `ses-*` names for new run indices. +- Only after rename phase succeeds for subject, place any newly copied RDSS file(s). +- If rename fails at any step, abort that subject and do not mutate its manifest entries. + +### 4) Manifest update guarantees +- Update `res/data.json` only after subject filesystem operations succeed. +- Subject-level atomicity target: + - Success: filesystem and manifest both reflect new run map. + - Failure: neither is partially advanced for that subject. +- Persist deterministic ordering in manifest arrays by run ascending. + +### 5) Determinism and idempotence +- Re-running ingest with the same RDSS payload must not create duplicate manifest entries. +- Re-running ingest with no new sessions must produce no renames and no run drift. + +## Algorithm (manifest-only) +For each subject in union(manifest subjects, incoming subjects): +1. Load existing manifest entries for subject. +2. Normalize incoming date values to ISO-compatible datetime. +3. Build deduped union by `(labID, date, filename)`. +4. If same-date collision exists within subject, warn and skip subject. +5. Produce new canonical run map by date order. +6. Compute run delta against existing manifest map. +7. If delta affects existing files, execute two-phase temp rename plan. +8. Copy newly added RDSS sessions into final session locations. +9. Write updated subject entries back to in-memory manifest. +10. After all subjects processed, persist `res/data.json`. + +## Required code changes (exact files) + +### Primary implementation +- `act/utils/save.py` + - Replace date-only `_determine_run` behavior with manifest-aware reindex logic. + - Add helpers: + - `_load_manifest(path)` / `_save_manifest(path)` + - `_subject_sort_key(record)` + - `_detect_same_date_conflict(records)` + - `_reindex_subject_records(existing_records, incoming_records)` + - `_plan_subject_renames(subject_id, study, old_records, new_records)` + - `_apply_two_phase_renames(rename_plan)` + - Update save flow so run determination happens after manifest load and before location finalization. + - Ensure `_determine_location` uses reconciled `run` values from canonical reindex. + +### Optional logging enhancements +- `act/utils/save.py` + - Emit structured logs for subject actions: `append_latest`, `backfill_reindex`, `skip_tie_date`, `noop_duplicate`, `rename_failed`. + +## Tests and fixtures (exact files) + +### Update fixtures +- `act/tests/conftest.py` + - Add `manifest_factory` fixture to seed per-test `res/data.json` payloads. + - Add `rdss_record_factory` fixture to generate incoming session rows. + - Add `subject_tree_factory` fixture to create existing `sub-*/accel/ses-*` files for rename tests. + +### Add new test module +- `act/tests/test_save_manifest_reindex.py` + - `test_new_subject_defaults_to_run_one` + - `test_later_date_appends_next_run` + - `test_earlier_date_backfill_reindexes_and_shifts_runs` + - `test_two_phase_rename_avoids_collision` + - `test_exact_duplicate_key_noop` + - `test_same_date_conflict_warns_and_skips_subject` + - `test_subject_failure_does_not_mutate_manifest` + - `test_idempotent_rerun_no_session_drift` + +### Extend existing edge-case tests +- `act/tests/test_save_edge_cases.py` + - Add assertions for manifest-driven run stability. + - Add subject skip assertion for same-date conflicts. + +## Acceptance criteria +- Incoming later-date session for existing subject is assigned next run and copied to new `ses-(n+1)` path. +- Incoming earlier-date session inserts into correct position; later sessions are renamed upward and manifest is rewritten with dense chronological runs. +- New subject with first session gets `run=1`. +- Same-date per-subject conflicts are warned and skipped with no side effects. +- Duplicate ingest events (same `(labID, date, filename)`) do not create extra runs. +- Manifest and filesystem remain aligned after each successful subject update. + +## Out of scope +- Signature/content hashing. +- Reconciling manual filesystem edits not represented in manifest. +- Cross-subject conflict handling. + +## Implementation notes +- This design assumes single-writer ingest semantics for `res/data.json`. +- If concurrent writers are introduced later, add file locking around manifest read/write and subject transactions. diff --git a/logs/local/20260224_132858.log b/logs/local/20260224_132858.log new file mode 100644 index 0000000..e69de29 diff --git a/logs/local/20260224_132928.log b/logs/local/20260224_132928.log new file mode 100644 index 0000000..e69de29 diff --git a/logs/local/20260224_132950.log b/logs/local/20260224_132950.log new file mode 100644 index 0000000..e69de29 diff --git a/logs/local/20260224_133023.log b/logs/local/20260224_133023.log new file mode 100644 index 0000000..e69de29 diff --git a/logs/local/20260224_133050.log b/logs/local/20260224_133050.log new file mode 100644 index 0000000..e69de29 diff --git a/logs/local/20260224_133124.log b/logs/local/20260224_133124.log new file mode 100644 index 0000000..e69de29 diff --git a/logs/local/20260224_133411.log b/logs/local/20260224_133411.log new file mode 100644 index 0000000..e69de29 diff --git a/logs/local/20260224_133424.log b/logs/local/20260224_133424.log new file mode 100644 index 0000000..e69de29 diff --git a/logs/local/20260226_110755.log b/logs/local/20260226_110755.log new file mode 100644 index 0000000..bfe1e00 --- /dev/null +++ b/logs/local/20260226_110755.log @@ -0,0 +1,24 @@ + lab_id boost_id +0 58 7754 +1 71 7734 +2 78 7755 +3 92 7733 +4 121 7717 +.. ... ... +418 1529 7778 +419 1530 7779 +420 1531 7780 +421 1532 7782 +422 1533 7784 + +[415 rows x 2 columns] + lab_id boost_id +0 58 7754 +1 71 7734 +2 78 7755 +3 92 7733 +4 121 7717 415 +{'7734': [{'filename': '71 (2026-01-14)RAW.csv', 'labID': '71', 'date': Timestamp('2026-01-14 00:00:00')}], '7733': [{'filename': '92 (2025-12-17)RAW.csv', 'labID': '92', 'date': Timestamp('2025-12-17 00:00:00')}], '7717': [{'filename': '121 (2025-12-12)RAW.csv', 'labID': '121', 'date': Timestamp('2025-12-12 00:00:00')}], '7738': [{'filename': '285 (2026-01-23)RAW.csv', 'labID': '285', 'date': Timestamp('2026-01-23 00:00:00')}], '7761': [{'filename': '584 (2026-02-18)RAW.csv', 'labID': '584', 'date': Timestamp('2026-02-18 00:00:00')}], '7741': [{'filename': '664 (2026-01-27)RAW.csv', 'labID': '664', 'date': Timestamp('2026-01-27 00:00:00')}], '7714': [{'filename': '676 (2025-12-03)RAW.csv', 'labID': '676', 'date': Timestamp('2025-12-03 00:00:00')}], '7713': [{'filename': '702 (2025-12-03)RAW.csv', 'labID': '702', 'date': Timestamp('2025-12-03 00:00:00')}], '8064': [{'filename': '781 (2025-12-09)RAW.csv', 'labID': '781', 'date': Timestamp('2025-12-09 00:00:00')}], '7724': [{'filename': '863 (2025-12-11)RAW.csv', 'labID': '863', 'date': Timestamp('2025-12-11 00:00:00')}], '7723': [{'filename': '867 (2025-12-10)RAW.csv', 'labID': '867', 'date': Timestamp('2025-12-10 00:00:00')}], '7736': [{'filename': '945 (2026-02-04)RAW.csv', 'labID': '945', 'date': Timestamp('2026-02-04 00:00:00')}], '7010': [{'filename': '1118 (2025-12-16)RAW.csv', 'labID': '1118', 'date': Timestamp('2025-12-16 00:00:00')}], '8018': [{'filename': '1167 (2026-01-16)RAW.csv', 'labID': '1167', 'date': Timestamp('2026-01-16 00:00:00')}], '8023': [{'filename': '1185 (2025-12-06)RAW.csv', 'labID': '1185', 'date': Timestamp('2025-12-06 00:00:00')}], '7055': [{'filename': '1189 (2026-01-27)RAW.csv', 'labID': '1189', 'date': Timestamp('2026-01-27 00:00:00')}], '7057': [{'filename': '1191 (2026-01-23)RAW.csv', 'labID': '1191', 'date': Timestamp('2026-01-23 00:00:00')}], '8032': [{'filename': '1221 (2026-01-16)RAW.csv', 'labID': '1221', 'date': Timestamp('2026-01-16 00:00:00')}], '8038': [{'filename': '1302 (2025-12-13)RAW.csv', 'labID': '1302', 'date': Timestamp('2025-12-13 00:00:00')}, {'filename': '1302 (2026-01-31)RAW.csv', 'labID': '1302', 'date': Timestamp('2026-01-31 00:00:00')}], '8039': [{'filename': '1314 (2025-12-19)RAW.csv', 'labID': '1314', 'date': Timestamp('2025-12-19 00:00:00')}], '8040': [{'filename': '1317 (2026-01-09)RAW.csv', 'labID': '1317', 'date': Timestamp('2026-01-09 00:00:00')}], '8046': [{'filename': '1330 (2026-01-29)RAW.csv', 'labID': '1330', 'date': Timestamp('2026-01-29 00:00:00')}, {'filename': '1330 (2025-12-09)RAW.csv', 'labID': '1330', 'date': Timestamp('2025-12-09 00:00:00')}], '8047': [{'filename': '1335 (2025-12-20)RAW.csv', 'labID': '1335', 'date': Timestamp('2025-12-20 00:00:00')}], '8052': [{'filename': '1345 (2025-12-16)RAW.csv', 'labID': '1345', 'date': Timestamp('2025-12-16 00:00:00')}, {'filename': '1345 (2026-01-27)RAW.csv', 'labID': '1345', 'date': Timestamp('2026-01-27 00:00:00')}], '8053': [{'filename': '1346 (2025-12-31)RAW.csv', 'labID': '1346', 'date': Timestamp('2025-12-31 00:00:00')}], '7222': [{'filename': '1417 (2026-01-29)RAW.csv', 'labID': '1417', 'date': Timestamp('2026-01-29 00:00:00')}], '8068': [{'filename': '1425 (2025-12-31)RAW.csv', 'labID': '1425', 'date': Timestamp('2025-12-31 00:00:00')}], '8069': [{'filename': '1427 (2026-01-03)RAW.csv', 'labID': '1427', 'date': Timestamp('2026-01-03 00:00:00')}], '8070': [{'filename': '1430 (2025-12-09)RAW.csv', 'labID': '1430', 'date': Timestamp('2025-12-09 00:00:00')}], '8073': [{'filename': '1432 (2026-01-09)RAW.csv', 'labID': '1432', 'date': Timestamp('2026-01-09 00:00:00')}], '8074': [{'filename': '1435 (2026-01-10)RAW.csv', 'labID': '1435', 'date': Timestamp('2026-01-10 00:00:00')}], '8076': [{'filename': '1437 (2026-01-08)RAW.csv', 'labID': '1437', 'date': Timestamp('2026-01-08 00:00:00')}], '7238': [{'filename': '1449 (2025-12-04)RAW.csv', 'labID': '1449', 'date': Timestamp('2025-12-04 00:00:00')}], '7242': [{'filename': '1453 (2025-12-10)RAW.csv', 'labID': '1453', 'date': Timestamp('2025-12-10 00:00:00')}], '7243': [{'filename': '1454 (2025-12-10)RAW.csv', 'labID': '1454', 'date': Timestamp('2025-12-10 00:00:00')}], '7249': [{'filename': '1460 (2025-12-09)RAW.csv', 'labID': '1460', 'date': Timestamp('2025-12-09 00:00:00')}], '7250': [{'filename': '1461 (2025-12-04)RAW.csv', 'labID': '1461', 'date': Timestamp('2025-12-04 00:00:00')}], '7251': [{'filename': '1462 (2025-12-18)RAW.csv', 'labID': '1462', 'date': Timestamp('2025-12-18 00:00:00')}], '8083': [{'filename': '1465 (2025-12-10)RAW.csv', 'labID': '1465', 'date': Timestamp('2025-12-10 00:00:00')}, {'filename': '1465 (2026-02-04)RAW.csv', 'labID': '1465', 'date': Timestamp('2026-02-04 00:00:00')}], '8084': [{'filename': '1466 (2025-12-02)RAW.csv', 'labID': '1466', 'date': Timestamp('2025-12-02 00:00:00')}, {'filename': '1466 (2026-02-03)RAW.csv', 'labID': '1466', 'date': Timestamp('2026-02-03 00:00:00')}], '7706': [{'filename': '1467 (2025-12-05)RAW.csv', 'labID': '1467', 'date': Timestamp('2025-12-05 00:00:00')}], '7707': [{'filename': '1468 (2025-12-13)RAW.csv', 'labID': '1468', 'date': Timestamp('2025-12-13 00:00:00')}], '7708': [{'filename': '1469 (2025-12-06)RAW.csv', 'labID': '1469', 'date': Timestamp('2025-12-06 00:00:00')}], '7710': [{'filename': '1471 (2025-12-17)RAW.csv', 'labID': '1471', 'date': Timestamp('2025-12-17 00:00:00')}], '7715': [{'filename': '1474 (2025-12-05)RAW.csv', 'labID': '1474', 'date': Timestamp('2025-12-05 00:00:00')}], '8085': [{'filename': '1476 (2026-01-06)RAW.csv', 'labID': '1476', 'date': Timestamp('2026-01-06 00:00:00')}], '7254': [{'filename': '1477 (2025-12-06)RAW.csv', 'labID': '1477', 'date': Timestamp('2025-12-06 00:00:00')}], '7718': [{'filename': '1478 (2025-12-06)RAW.csv', 'labID': '1478', 'date': Timestamp('2025-12-06 00:00:00')}], '7721': [{'filename': '1482 (2025-12-10)RAW.csv', 'labID': '1482', 'date': Timestamp('2025-12-10 00:00:00')}], '7726': [{'filename': '1485 (2026-01-13)RAW.csv', 'labID': '1485', 'date': Timestamp('2026-01-13 00:00:00')}], '7728': [{'filename': '1487 (2026-01-23)RAW.csv', 'labID': '1487', 'date': Timestamp('2026-01-23 00:00:00')}], '7729': [{'filename': '1488 (2026-01-07)RAW.csv', 'labID': '1488', 'date': Timestamp('2026-01-07 00:00:00')}], '7732': [{'filename': '1491 (2025-12-18)RAW.csv', 'labID': '1491', 'date': Timestamp('2025-12-18 00:00:00')}], '7255': [{'filename': '1493 (2025-12-17)RAW.csv', 'labID': '1493', 'date': Timestamp('2025-12-17 00:00:00')}], '8088': [{'filename': '1495 (2025-12-23)RAW.csv', 'labID': '1495', 'date': Timestamp('2025-12-23 00:00:00')}], '8090': [{'filename': '1500 (2026-01-29)RAW.csv', 'labID': '1500', 'date': Timestamp('2026-01-29 00:00:00')}], '8080': [{'filename': '1501 (2025-12-31)RAW.csv', 'labID': '1501', 'date': Timestamp('2025-12-31 00:00:00')}], '7743': [{'filename': '1503 (2026-01-16)RAW.csv', 'labID': '1503', 'date': Timestamp('2026-01-16 00:00:00')}], '7744': [{'filename': '1504 (2026-01-16)RAW.csv', 'labID': '1504', 'date': Timestamp('2026-01-16 00:00:00')}], '7745': [{'filename': '1505 (2026-01-17)RAW.csv', 'labID': '1505', 'date': Timestamp('2026-01-17 00:00:00')}]} +Type of Dupes: +Type of matches: +Value of matches: {'7734': [{'filename': '71 (2026-01-14)RAW.csv', 'labID': '71', 'date': Timestamp('2026-01-14 00:00:00')}], '7733': [{'filename': '92 (2025-12-17)RAW.csv', 'labID': '92', 'date': Timestamp('2025-12-17 00:00:00')}], '7717': [{'filename': '121 (2025-12-12)RAW.csv', 'labID': '121', 'date': Timestamp('2025-12-12 00:00:00')}], '7738': [{'filename': '285 (2026-01-23)RAW.csv', 'labID': '285', 'date': Timestamp('2026-01-23 00:00:00')}], '7761': [{'filename': '584 (2026-02-18)RAW.csv', 'labID': '584', 'date': Timestamp('2026-02-18 00:00:00')}], '7741': [{'filename': '664 (2026-01-27)RAW.csv', 'labID': '664', 'date': Timestamp('2026-01-27 00:00:00')}], '7714': [{'filename': '676 (2025-12-03)RAW.csv', 'labID': '676', 'date': Timestamp('2025-12-03 00:00:00')}], '7713': [{'filename': '702 (2025-12-03)RAW.csv', 'labID': '702', 'date': Timestamp('2025-12-03 00:00:00')}], '8064': [{'filename': '781 (2025-12-09)RAW.csv', 'labID': '781', 'date': Timestamp('2025-12-09 00:00:00')}], '7724': [{'filename': '863 (2025-12-11)RAW.csv', 'labID': '863', 'date': Timestamp('2025-12-11 00:00:00')}], '7723': [{'filename': '867 (2025-12-10)RAW.csv', 'labID': '867', 'date': Timestamp('2025-12-10 00:00:00')}], '7736': [{'filename': '945 (2026-02-04)RAW.csv', 'labID': '945', 'date': Timestamp('2026-02-04 00:00:00')}], '7010': [{'filename': '1118 (2025-12-16)RAW.csv', 'labID': '1118', 'date': Timestamp('2025-12-16 00:00:00')}], '8018': [{'filename': '1167 (2026-01-16)RAW.csv', 'labID': '1167', 'date': Timestamp('2026-01-16 00:00:00')}], '8023': [{'filename': '1185 (2025-12-06)RAW.csv', 'labID': '1185', 'date': Timestamp('2025-12-06 00:00:00')}], '7055': [{'filename': '1189 (2026-01-27)RAW.csv', 'labID': '1189', 'date': Timestamp('2026-01-27 00:00:00')}], '7057': [{'filename': '1191 (2026-01-23)RAW.csv', 'labID': '1191', 'date': Timestamp('2026-01-23 00:00:00')}], '8032': [{'filename': '1221 (2026-01-16)RAW.csv', 'labID': '1221', 'date': Timestamp('2026-01-16 00:00:00')}], '8038': [{'filename': '1302 (2025-12-13)RAW.csv', 'labID': '1302', 'date': Timestamp('2025-12-13 00:00:00')}, {'filename': '1302 (2026-01-31)RAW.csv', 'labID': '1302', 'date': Timestamp('2026-01-31 00:00:00')}], '8039': [{'filename': '1314 (2025-12-19)RAW.csv', 'labID': '1314', 'date': Timestamp('2025-12-19 00:00:00')}], '8040': [{'filename': '1317 (2026-01-09)RAW.csv', 'labID': '1317', 'date': Timestamp('2026-01-09 00:00:00')}], '8046': [{'filename': '1330 (2026-01-29)RAW.csv', 'labID': '1330', 'date': Timestamp('2026-01-29 00:00:00')}, {'filename': '1330 (2025-12-09)RAW.csv', 'labID': '1330', 'date': Timestamp('2025-12-09 00:00:00')}], '8047': [{'filename': '1335 (2025-12-20)RAW.csv', 'labID': '1335', 'date': Timestamp('2025-12-20 00:00:00')}], '8052': [{'filename': '1345 (2025-12-16)RAW.csv', 'labID': '1345', 'date': Timestamp('2025-12-16 00:00:00')}, {'filename': '1345 (2026-01-27)RAW.csv', 'labID': '1345', 'date': Timestamp('2026-01-27 00:00:00')}], '8053': [{'filename': '1346 (2025-12-31)RAW.csv', 'labID': '1346', 'date': Timestamp('2025-12-31 00:00:00')}], '7222': [{'filename': '1417 (2026-01-29)RAW.csv', 'labID': '1417', 'date': Timestamp('2026-01-29 00:00:00')}], '8068': [{'filename': '1425 (2025-12-31)RAW.csv', 'labID': '1425', 'date': Timestamp('2025-12-31 00:00:00')}], '8069': [{'filename': '1427 (2026-01-03)RAW.csv', 'labID': '1427', 'date': Timestamp('2026-01-03 00:00:00')}], '8070': [{'filename': '1430 (2025-12-09)RAW.csv', 'labID': '1430', 'date': Timestamp('2025-12-09 00:00:00')}], '8073': [{'filename': '1432 (2026-01-09)RAW.csv', 'labID': '1432', 'date': Timestamp('2026-01-09 00:00:00')}], '8074': [{'filename': '1435 (2026-01-10)RAW.csv', 'labID': '1435', 'date': Timestamp('2026-01-10 00:00:00')}], '8076': [{'filename': '1437 (2026-01-08)RAW.csv', 'labID': '1437', 'date': Timestamp('2026-01-08 00:00:00')}], '7238': [{'filename': '1449 (2025-12-04)RAW.csv', 'labID': '1449', 'date': Timestamp('2025-12-04 00:00:00')}], '7242': [{'filename': '1453 (2025-12-10)RAW.csv', 'labID': '1453', 'date': Timestamp('2025-12-10 00:00:00')}], '7243': [{'filename': '1454 (2025-12-10)RAW.csv', 'labID': '1454', 'date': Timestamp('2025-12-10 00:00:00')}], '7249': [{'filename': '1460 (2025-12-09)RAW.csv', 'labID': '1460', 'date': Timestamp('2025-12-09 00:00:00')}], '7250': [{'filename': '1461 (2025-12-04)RAW.csv', 'labID': '1461', 'date': Timestamp('2025-12-04 00:00:00')}], '7251': [{'filename': '1462 (2025-12-18)RAW.csv', 'labID': '1462', 'date': Timestamp('2025-12-18 00:00:00')}], '8083': [{'filename': '1465 (2025-12-10)RAW.csv', 'labID': '1465', 'date': Timestamp('2025-12-10 00:00:00')}, {'filename': '1465 (2026-02-04)RAW.csv', 'labID': '1465', 'date': Timestamp('2026-02-04 00:00:00')}], '8084': [{'filename': '1466 (2025-12-02)RAW.csv', 'labID': '1466', 'date': Timestamp('2025-12-02 00:00:00')}, {'filename': '1466 (2026-02-03)RAW.csv', 'labID': '1466', 'date': Timestamp('2026-02-03 00:00:00')}], '7706': [{'filename': '1467 (2025-12-05)RAW.csv', 'labID': '1467', 'date': Timestamp('2025-12-05 00:00:00')}], '7707': [{'filename': '1468 (2025-12-13)RAW.csv', 'labID': '1468', 'date': Timestamp('2025-12-13 00:00:00')}], '7708': [{'filename': '1469 (2025-12-06)RAW.csv', 'labID': '1469', 'date': Timestamp('2025-12-06 00:00:00')}], '7710': [{'filename': '1471 (2025-12-17)RAW.csv', 'labID': '1471', 'date': Timestamp('2025-12-17 00:00:00')}], '7715': [{'filename': '1474 (2025-12-05)RAW.csv', 'labID': '1474', 'date': Timestamp('2025-12-05 00:00:00')}], '8085': [{'filename': '1476 (2026-01-06)RAW.csv', 'labID': '1476', 'date': Timestamp('2026-01-06 00:00:00')}], '7254': [{'filename': '1477 (2025-12-06)RAW.csv', 'labID': '1477', 'date': Timestamp('2025-12-06 00:00:00')}], '7718': [{'filename': '1478 (2025-12-06)RAW.csv', 'labID': '1478', 'date': Timestamp('2025-12-06 00:00:00')}], '7721': [{'filename': '1482 (2025-12-10)RAW.csv', 'labID': '1482', 'date': Timestamp('2025-12-10 00:00:00')}], '7726': [{'filename': '1485 (2026-01-13)RAW.csv', 'labID': '1485', 'date': Timestamp('2026-01-13 00:00:00')}], '7728': [{'filename': '1487 (2026-01-23)RAW.csv', 'labID': '1487', 'date': Timestamp('2026-01-23 00:00:00')}], '7729': [{'filename': '1488 (2026-01-07)RAW.csv', 'labID': '1488', 'date': Timestamp('2026-01-07 00:00:00')}], '7732': [{'filename': '1491 (2025-12-18)RAW.csv', 'labID': '1491', 'date': Timestamp('2025-12-18 00:00:00')}], '7255': [{'filename': '1493 (2025-12-17)RAW.csv', 'labID': '1493', 'date': Timestamp('2025-12-17 00:00:00')}], '8088': [{'filename': '1495 (2025-12-23)RAW.csv', 'labID': '1495', 'date': Timestamp('2025-12-23 00:00:00')}], '8090': [{'filename': '1500 (2026-01-29)RAW.csv', 'labID': '1500', 'date': Timestamp('2026-01-29 00:00:00')}], '8080': [{'filename': '1501 (2025-12-31)RAW.csv', 'labID': '1501', 'date': Timestamp('2025-12-31 00:00:00')}], '7743': [{'filename': '1503 (2026-01-16)RAW.csv', 'labID': '1503', 'date': Timestamp('2026-01-16 00:00:00')}], '7744': [{'filename': '1504 (2026-01-16)RAW.csv', 'labID': '1504', 'date': Timestamp('2026-01-16 00:00:00')}], '7745': [{'filename': '1505 (2026-01-17)RAW.csv', 'labID': '1505', 'date': Timestamp('2026-01-17 00:00:00')}]} \ No newline at end of file diff --git a/res/data.json b/res/data.json index 31585ef..540a93d 100644 --- a/res/data.json +++ b/res/data.json @@ -3,192 +3,232 @@ { "filename": "71 (2026-01-14)RAW.csv", "labID": "71", - "date": "2026-01-14T00:00:00", + "date": "2026-01-14", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7734/accel/ses-1/sub-7734_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7734/accel/ses-1/sub-7734_ses-1_accel.csv" } ], "7733": [ { "filename": "92 (2025-12-17)RAW.csv", "labID": "92", - "date": "2025-12-17T00:00:00", + "date": "2025-12-17", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7733/accel/ses-1/sub-7733_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7733/accel/ses-1/sub-7733_ses-1_accel.csv" } ], "7717": [ { "filename": "121 (2025-12-12)RAW.csv", "labID": "121", - "date": "2025-12-12T00:00:00", + "date": "2025-12-12", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7717/accel/ses-1/sub-7717_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7717/accel/ses-1/sub-7717_ses-1_accel.csv" } ], "7738": [ { "filename": "285 (2026-01-23)RAW.csv", "labID": "285", - "date": "2026-01-23T00:00:00", + "date": "2026-01-23", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7738/accel/ses-1/sub-7738_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7738/accel/ses-1/sub-7738_ses-1_accel.csv" } ], "7741": [ { "filename": "664 (2026-01-27)RAW.csv", "labID": "664", - "date": "2026-01-27T00:00:00", + "date": "2026-01-27", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7741/accel/ses-1/sub-7741_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7741/accel/ses-1/sub-7741_ses-1_accel.csv" } ], "7714": [ { "filename": "676 (2025-12-03)RAW.csv", "labID": "676", - "date": "2025-12-03T00:00:00", + "date": "2025-12-03", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7714/accel/ses-1/sub-7714_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7714/accel/ses-1/sub-7714_ses-1_accel.csv" } ], "7713": [ { "filename": "702 (2025-12-03)RAW.csv", "labID": "702", - "date": "2025-12-03T00:00:00", + "date": "2025-12-03", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7713/accel/ses-1/sub-7713_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7713/accel/ses-1/sub-7713_ses-1_accel.csv" } ], "8064": [ { - "filename": "781 (2025-10-07)RAW.csv", + "filename": "781 (2024-08-15)RAW.csv", "labID": "781", - "date": "2025-10-07T00:00:00", + "date": "2024-08-15", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8064/accel/ses-1/sub-8064_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8064/accel/ses-1/sub-8064_ses-1_accel.csv" }, { - "filename": "781 (2025-12-09)RAW.csv", + "filename": "781 (2025-10-07)RAW.csv", "labID": "781", - "date": "2025-12-09T00:00:00", + "date": "2025-10-07", "run": 2, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8064/accel/ses-2/sub-8064_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8064/accel/ses-2/sub-8064_ses-2_accel.csv" + }, + { + "filename": "781 (2025-12-09)RAW.csv", + "labID": "781", + "date": "2025-12-09", + "run": 3, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8064/accel/ses-3/sub-8064_ses-3_accel.csv" } ], "7724": [ { - "filename": "863 (2025-12-11)RAW.csv", + "filename": "863 (2024-07-13)RAW.csv", "labID": "863", - "date": "2025-12-11T00:00:00", + "date": "2024-07-13", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7724/accel/ses-1/sub-7724_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7724/accel/ses-1/sub-7724_ses-1_accel.csv" + }, + { + "filename": "863 (2025-12-11)RAW.csv", + "labID": "863", + "date": "2025-12-11", + "run": 2, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7724/accel/ses-2/sub-7724_ses-2_accel.csv" } ], "7723": [ { "filename": "867 (2025-12-10)RAW.csv", "labID": "867", - "date": "2025-12-10T00:00:00", + "date": "2025-12-10", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7723/accel/ses-1/sub-7723_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7723/accel/ses-1/sub-7723_ses-1_accel.csv" } ], "7703": [ { - "filename": "868 (2025-11-18)RAW.csv", + "filename": "868 (2024-09-05)RAW.csv", "labID": "868", - "date": "2025-11-18T00:00:00", + "date": "2024-09-05", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7703/accel/ses-1/sub-7703_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7703/accel/ses-1/sub-7703_ses-1_accel.csv" + }, + { + "filename": "868 (2025-11-18)RAW.csv", + "labID": "868", + "date": "2025-11-18", + "run": 2, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7703/accel/ses-2/sub-7703_ses-2_accel.csv" } ], "7736": [ { "filename": "945 (2026-02-04)RAW.csv", "labID": "945", - "date": "2026-02-04T00:00:00", + "date": "2026-02-04", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7736/accel/ses-1/sub-7736_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7736/accel/ses-1/sub-7736_ses-1_accel.csv" } ], "8022": [ { - "filename": "1023 (2025-08-22)RAW.csv", + "filename": "1023 (2025-02-07)RAW.csv", "labID": "1023", - "date": "2025-08-22T00:00:00", + "date": "2025-02-07", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8022/accel/ses-1/sub-8022_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8022/accel/ses-1/sub-8022_ses-1_accel.csv" }, { - "filename": "1023 (2025-10-17)RAW.csv", + "filename": "1023 (2025-04-17)RAW.csv", "labID": "1023", - "date": "2025-10-17T00:00:00", + "date": "2025-04-17", "run": 2, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8022/accel/ses-2/sub-8022_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8022/accel/ses-2/sub-8022_ses-2_accel.csv" + }, + { + "filename": "1023 (2025-08-22)RAW.csv", + "labID": "1023", + "date": "2025-08-22", + "run": 3, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8022/accel/ses-3/sub-8022_ses-3_accel.csv" + }, + { + "filename": "1023 (2025-10-17)RAW.csv", + "labID": "1023", + "date": "2025-10-17", + "run": 4, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8022/accel/ses-4/sub-8022_ses-4_accel.csv" } ], "7183": [ { "filename": "1040 (2025-08-09)RAW.csv", "labID": "1040", - "date": "2025-08-09T00:00:00", + "date": "2025-08-09", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7183/accel/ses-1/sub-7183_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7183/accel/ses-1/sub-7183_ses-1_accel.csv" } ], "7003": [ { "filename": "1113 (2025-08-26)RAW.csv", "labID": "1113", - "date": "2025-08-26T00:00:00", + "date": "2025-08-26", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7003/accel/ses-1/sub-7003_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7003/accel/ses-1/sub-7003_ses-1_accel.csv" }, { "filename": "1113 (2025-11-06)RAW.csv", "labID": "1113", - "date": "2025-11-06T00:00:00", + "date": "2025-11-06", "run": 2, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7003/accel/ses-2/sub-7003_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7003/accel/ses-2/sub-7003_ses-2_accel.csv" } ], "7010": [ { "filename": "1118 (2025-09-05)RAW.csv", "labID": "1118", - "date": "2025-09-05T00:00:00", + "date": "2025-09-05", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7010/accel/ses-1/sub-7010_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7010/accel/ses-1/sub-7010_ses-1_accel.csv" }, { "filename": "1118 (2025-12-16)RAW.csv", "labID": "1118", - "date": "2025-12-16T00:00:00", + "date": "2025-12-16", "run": 2, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7010/accel/ses-2/sub-7010_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7010/accel/ses-2/sub-7010_ses-2_accel.csv" } ], "8003": [ @@ -215,18 +255,18 @@ { "filename": "1149 (2025-08-15)RAW.csv", "labID": "1149", - "date": "2025-08-15T00:00:00", + "date": "2025-08-15", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8009/accel/ses-1/sub-8009_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8009/accel/ses-1/sub-8009_ses-1_accel.csv" }, { "filename": "1149 (2025-10-22)RAW.csv", "labID": "1149", - "date": "2025-10-22T00:00:00", + "date": "2025-10-22", "run": 2, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8009/accel/ses-2/sub-8009_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8009/accel/ses-2/sub-8009_ses-2_accel.csv" } ], "8011": [ @@ -249,20 +289,36 @@ ], "8012": [ { - "filename": "1158 (2025-09-24)RAW.csv", + "filename": "1158 (2025-01-09)RAW.csv", "labID": "1158", - "date": "2025-09-24T00:00:00", + "date": "2025-01-09", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8012/accel/ses-1/sub-8012_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8012/accel/ses-1/sub-8012_ses-1_accel.csv" }, { - "filename": "1158 (2025-11-06)RAW.csv", + "filename": "1158 (2025-05-09)RAW.csv", "labID": "1158", - "date": "2025-11-06T00:00:00", + "date": "2025-05-09", "run": 2, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8012/accel/ses-2/sub-8012_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8012/accel/ses-2/sub-8012_ses-2_accel.csv" + }, + { + "filename": "1158 (2025-09-24)RAW.csv", + "labID": "1158", + "date": "2025-09-24", + "run": 3, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8012/accel/ses-3/sub-8012_ses-3_accel.csv" + }, + { + "filename": "1158 (2025-11-06)RAW.csv", + "labID": "1158", + "date": "2025-11-06", + "run": 4, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8012/accel/ses-4/sub-8012_ses-4_accel.csv" } ], "8014": [ @@ -295,38 +351,62 @@ ], "8017": [ { - "filename": "1165 (2025-08-15)RAW.csv", + "filename": "1165 (2025-04-09)RAW.csv", "labID": "1165", - "date": "2025-08-15T00:00:00", + "date": "2025-04-09", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8017/accel/ses-1/sub-8017_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8017/accel/ses-1/sub-8017_ses-1_accel.csv" }, { - "filename": "1165 (2025-10-17)RAW.csv", + "filename": "1165 (2025-08-15)RAW.csv", "labID": "1165", - "date": "2025-10-17T00:00:00", + "date": "2025-08-15", "run": 2, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8017/accel/ses-2/sub-8017_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8017/accel/ses-2/sub-8017_ses-2_accel.csv" + }, + { + "filename": "1165 (2025-10-17)RAW.csv", + "labID": "1165", + "date": "2025-10-17", + "run": 3, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8017/accel/ses-3/sub-8017_ses-3_accel.csv" } ], "8018": [ { - "filename": "1167 (2025-10-24)RAW.csv", + "filename": "1167 (2025-01-22)RAW.csv", "labID": "1167", - "date": "2025-10-24T00:00:00", + "date": "2025-01-22", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8018/accel/ses-1/sub-8018_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8018/accel/ses-1/sub-8018_ses-1_accel.csv" }, { - "filename": "1167 (2026-01-16)RAW.csv", + "filename": "1167 (2025-05-21)RAW.csv", "labID": "1167", - "date": "2026-01-16T00:00:00", + "date": "2025-05-21", "run": 2, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8018/accel/ses-2/sub-8018_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8018/accel/ses-2/sub-8018_ses-2_accel.csv" + }, + { + "filename": "1167 (2025-10-24)RAW.csv", + "labID": "1167", + "date": "2025-10-24", + "run": 3, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8018/accel/ses-3/sub-8018_ses-3_accel.csv" + }, + { + "filename": "1167 (2026-01-16)RAW.csv", + "labID": "1167", + "date": "2026-01-16", + "run": 4, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8018/accel/ses-4/sub-8018_ses-4_accel.csv" } ], "8019": [ @@ -369,64 +449,88 @@ { "filename": "1185 (2025-11-04)RAW.csv", "labID": "1185", - "date": "2025-11-04T00:00:00", + "date": "2025-11-04", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8023/accel/ses-1/sub-8023_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8023/accel/ses-1/sub-8023_ses-1_accel.csv" }, { "filename": "1185 (2025-12-06)RAW.csv", "labID": "1185", - "date": "2025-12-06T00:00:00", + "date": "2025-12-06", "run": 2, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8023/accel/ses-2/sub-8023_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8023/accel/ses-2/sub-8023_ses-2_accel.csv" } ], "7055": [ { "filename": "1189 (2025-08-15)RAW.csv", "labID": "1189", - "date": "2025-08-15T00:00:00", + "date": "2025-08-15", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7055/accel/ses-1/sub-7055_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7055/accel/ses-1/sub-7055_ses-1_accel.csv" }, { "filename": "1189 (2026-01-27)RAW.csv", "labID": "1189", - "date": "2026-01-27T00:00:00", + "date": "2026-01-27", "run": 2, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7055/accel/ses-2/sub-7055_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7055/accel/ses-2/sub-7055_ses-2_accel.csv" } ], "7057": [ { - "filename": "1191 (2026-01-23)RAW.csv", + "filename": "1191 (2025-02-15)RAW.csv", "labID": "1191", - "date": "2026-01-23T00:00:00", + "date": "2025-02-15", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7057/accel/ses-1/sub-7057_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7057/accel/ses-1/sub-7057_ses-1_accel.csv" + }, + { + "filename": "1191 (2026-01-23)RAW.csv", + "labID": "1191", + "date": "2026-01-23", + "run": 2, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7057/accel/ses-2/sub-7057_ses-2_accel.csv" } ], "8026": [ { - "filename": "1194 (2025-09-26)RAW.csv", + "filename": "1194 (2025-02-04)RAW.csv", "labID": "1194", - "date": "2025-09-26T00:00:00", + "date": "2025-02-04", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8026/accel/ses-1/sub-8026_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8026/accel/ses-1/sub-8026_ses-1_accel.csv" }, { - "filename": "1194 (2025-11-11)RAW.csv", + "filename": "1194 (2025-05-23)RAW.csv", "labID": "1194", - "date": "2025-11-11T00:00:00", + "date": "2025-05-23", "run": 2, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8026/accel/ses-2/sub-8026_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8026/accel/ses-2/sub-8026_ses-2_accel.csv" + }, + { + "filename": "1194 (2025-09-26)RAW.csv", + "labID": "1194", + "date": "2025-09-26", + "run": 3, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8026/accel/ses-3/sub-8026_ses-3_accel.csv" + }, + { + "filename": "1194 (2025-11-11)RAW.csv", + "labID": "1194", + "date": "2025-11-11", + "run": 4, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8026/accel/ses-4/sub-8026_ses-4_accel.csv" } ], "8030": [ @@ -469,44 +573,60 @@ { "filename": "1221 (2025-08-04)RAW.csv", "labID": "1221", - "date": "2025-08-04T00:00:00", + "date": "2025-08-04", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8032/accel/ses-1/sub-8032_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8032/accel/ses-1/sub-8032_ses-1_accel.csv" }, { "filename": "1221 (2025-11-18)RAW.csv", "labID": "1221", - "date": "2025-11-18T00:00:00", + "date": "2025-11-18", "run": 2, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8032/accel/ses-2/sub-8032_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8032/accel/ses-2/sub-8032_ses-2_accel.csv" }, { "filename": "1221 (2026-01-16)RAW.csv", "labID": "1221", - "date": "2026-01-16T00:00:00", + "date": "2026-01-16", "run": 3, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8032/accel/ses-3/sub-8032_ses-3_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8032/accel/ses-3/sub-8032_ses-3_accel.csv" } ], "8035": [ { - "filename": "1249 (2025-09-25)RAW.csv", + "filename": "1249 (2025-03-19)RAW.csv", "labID": "1249", - "date": "2025-09-25T00:00:00", + "date": "2025-03-19", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8035/accel/ses-1/sub-8035_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8035/accel/ses-1/sub-8035_ses-1_accel.csv" }, { - "filename": "1249 (2025-11-08)RAW.csv", + "filename": "1249 (2025-05-31)RAW.csv", "labID": "1249", - "date": "2025-11-08T00:00:00", + "date": "2025-05-31", "run": 2, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8035/accel/ses-2/sub-8035_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8035/accel/ses-2/sub-8035_ses-2_accel.csv" + }, + { + "filename": "1249 (2025-09-25)RAW.csv", + "labID": "1249", + "date": "2025-09-25", + "run": 3, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8035/accel/ses-3/sub-8035_ses-3_accel.csv" + }, + { + "filename": "1249 (2025-11-08)RAW.csv", + "labID": "1249", + "date": "2025-11-08", + "run": 4, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8035/accel/ses-4/sub-8035_ses-4_accel.csv" } ], "8036": [ @@ -521,142 +641,150 @@ ], "8037": [ { - "filename": "1276 (2025-08-07)RAW.csv", + "filename": "1276 (2025-04-04)RAW.csv", "labID": "1276", - "date": "2025-08-07T00:00:00", + "date": "2025-04-04", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8037/accel/ses-1/sub-8037_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8037/accel/ses-1/sub-8037_ses-1_accel.csv" + }, + { + "filename": "1276 (2025-08-07)RAW.csv", + "labID": "1276", + "date": "2025-08-07", + "run": 2, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8037/accel/ses-2/sub-8037_ses-2_accel.csv" } ], "8038": [ { "filename": "1302 (2025-07-19)RAW.csv", "labID": "1302", - "date": "2025-07-19T00:00:00", + "date": "2025-07-19", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8038/accel/ses-1/sub-8038_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8038/accel/ses-1/sub-8038_ses-1_accel.csv" }, { "filename": "1302 (2025-12-13)RAW.csv", "labID": "1302", - "date": "2025-12-13T00:00:00", + "date": "2025-12-13", "run": 2, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8038/accel/ses-2/sub-8038_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8038/accel/ses-2/sub-8038_ses-2_accel.csv" }, { "filename": "1302 (2026-01-31)RAW.csv", "labID": "1302", - "date": "2026-01-31T00:00:00", + "date": "2026-01-31", "run": 3, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8038/accel/ses-3/sub-8038_ses-3_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8038/accel/ses-3/sub-8038_ses-3_accel.csv" } ], "8039": [ { "filename": "1314 (2025-07-15)RAW.csv", "labID": "1314", - "date": "2025-07-15T00:00:00", + "date": "2025-07-15", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8039/accel/ses-1/sub-8039_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8039/accel/ses-1/sub-8039_ses-1_accel.csv" }, { "filename": "1314 (2025-11-05)RAW.csv", "labID": "1314", - "date": "2025-11-05T00:00:00", + "date": "2025-11-05", "run": 2, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8039/accel/ses-2/sub-8039_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8039/accel/ses-2/sub-8039_ses-2_accel.csv" }, { "filename": "1314 (2025-12-19)RAW.csv", "labID": "1314", - "date": "2025-12-19T00:00:00", + "date": "2025-12-19", "run": 3, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8039/accel/ses-3/sub-8039_ses-3_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8039/accel/ses-3/sub-8039_ses-3_accel.csv" } ], "8040": [ { "filename": "1317 (2025-08-04)RAW.csv", "labID": "1317", - "date": "2025-08-04T00:00:00", + "date": "2025-08-04", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8040/accel/ses-1/sub-8040_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8040/accel/ses-1/sub-8040_ses-1_accel.csv" }, { "filename": "1317 (2025-11-25)RAW.csv", "labID": "1317", - "date": "2025-11-25T00:00:00", + "date": "2025-11-25", "run": 2, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8040/accel/ses-2/sub-8040_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8040/accel/ses-2/sub-8040_ses-2_accel.csv" }, { "filename": "1317 (2026-01-09)RAW.csv", "labID": "1317", - "date": "2026-01-09T00:00:00", + "date": "2026-01-09", "run": 3, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8040/accel/ses-3/sub-8040_ses-3_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8040/accel/ses-3/sub-8040_ses-3_accel.csv" } ], "8046": [ { "filename": "1330 (2025-08-01)RAW.csv", "labID": "1330", - "date": "2025-08-01T00:00:00", + "date": "2025-08-01", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8046/accel/ses-1/sub-8046_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8046/accel/ses-1/sub-8046_ses-1_accel.csv" }, { "filename": "1330 (2025-12-09)RAW.csv", "labID": "1330", - "date": "2025-12-09T00:00:00", + "date": "2025-12-09", "run": 2, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8046/accel/ses-2/sub-8046_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8046/accel/ses-2/sub-8046_ses-2_accel.csv" }, { "filename": "1330 (2026-01-29)RAW.csv", "labID": "1330", - "date": "2026-01-29T00:00:00", + "date": "2026-01-29", "run": 3, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8046/accel/ses-3/sub-8046_ses-3_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8046/accel/ses-3/sub-8046_ses-3_accel.csv" } ], "8047": [ { "filename": "1335 (2025-07-18)RAW.csv", "labID": "1335", - "date": "2025-07-18T00:00:00", + "date": "2025-07-18", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8047/accel/ses-1/sub-8047_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8047/accel/ses-1/sub-8047_ses-1_accel.csv" }, { "filename": "1335 (2025-10-29)RAW.csv", "labID": "1335", - "date": "2025-10-29T00:00:00", + "date": "2025-10-29", "run": 2, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8047/accel/ses-2/sub-8047_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8047/accel/ses-2/sub-8047_ses-2_accel.csv" }, { "filename": "1335 (2025-12-20)RAW.csv", "labID": "1335", - "date": "2025-12-20T00:00:00", + "date": "2025-12-20", "run": 3, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8047/accel/ses-3/sub-8047_ses-3_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8047/accel/ses-3/sub-8047_ses-3_accel.csv" } ], "8050": [ @@ -683,52 +811,52 @@ { "filename": "1345 (2025-08-21)RAW.csv", "labID": "1345", - "date": "2025-08-21T00:00:00", + "date": "2025-08-21", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8052/accel/ses-1/sub-8052_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8052/accel/ses-1/sub-8052_ses-1_accel.csv" }, { "filename": "1345 (2025-12-16)RAW.csv", "labID": "1345", - "date": "2025-12-16T00:00:00", + "date": "2025-12-16", "run": 2, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8052/accel/ses-2/sub-8052_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8052/accel/ses-2/sub-8052_ses-2_accel.csv" }, { "filename": "1345 (2026-01-27)RAW.csv", "labID": "1345", - "date": "2026-01-27T00:00:00", + "date": "2026-01-27", "run": 3, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8052/accel/ses-3/sub-8052_ses-3_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8052/accel/ses-3/sub-8052_ses-3_accel.csv" } ], "8053": [ { "filename": "1346 (2025-07-25)RAW.csv", "labID": "1346", - "date": "2025-07-25T00:00:00", + "date": "2025-07-25", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8053/accel/ses-1/sub-8053_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8053/accel/ses-1/sub-8053_ses-1_accel.csv" }, { "filename": "1346 (2025-11-12)RAW.csv", "labID": "1346", - "date": "2025-11-12T00:00:00", + "date": "2025-11-12", "run": 2, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8053/accel/ses-2/sub-8053_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8053/accel/ses-2/sub-8053_ses-2_accel.csv" }, { "filename": "1346 (2025-12-31)RAW.csv", "labID": "1346", - "date": "2025-12-31T00:00:00", + "date": "2025-12-31", "run": 3, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8053/accel/ses-3/sub-8053_ses-3_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8053/accel/ses-3/sub-8053_ses-3_accel.csv" } ], "8054": [ @@ -745,1076 +873,2570 @@ { "filename": "1362 (2025-09-11)RAW.csv", "labID": "1362", - "date": "2025-09-11T00:00:00", + "date": "2025-09-11", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7171/accel/ses-1/sub-7171_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7171/accel/ses-1/sub-7171_ses-1_accel.csv" } ], "7173": [ { "filename": "1364 (2025-07-30)RAW.csv", "labID": "1364", - "date": "2025-07-30T00:00:00", + "date": "2025-07-30", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7173/accel/ses-1/sub-7173_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7173/accel/ses-1/sub-7173_ses-1_accel.csv" } ], "7175": [ { "filename": "1366 (2025-07-02)RAW.csv", "labID": "1366", - "date": "2025-07-02T00:00:00", + "date": "2025-07-02", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7175/accel/ses-1/sub-7175_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7175/accel/ses-1/sub-7175_ses-1_accel.csv" } ], "7176": [ { "filename": "1367 (2025-08-26)RAW.csv", "labID": "1367", - "date": "2025-08-26T00:00:00", + "date": "2025-08-26", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7176/accel/ses-1/sub-7176_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7176/accel/ses-1/sub-7176_ses-1_accel.csv" } ], "7180": [ { "filename": "1372 (2025-07-02)RAW.csv", "labID": "1372", - "date": "2025-07-02T00:00:00", + "date": "2025-07-02", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7180/accel/ses-1/sub-7180_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7180/accel/ses-1/sub-7180_ses-1_accel.csv" } ], "8056": [ { "filename": "1373 (2025-07-03)RAW.csv", "labID": "1373", - "date": "2025-07-03T00:00:00", + "date": "2025-07-03", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8056/accel/ses-1/sub-8056_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8056/accel/ses-1/sub-8056_ses-1_accel.csv" }, { "filename": "1373 (2025-09-25)RAW.csv", "labID": "1373", - "date": "2025-09-25T00:00:00", + "date": "2025-09-25", "run": 2, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8056/accel/ses-2/sub-8056_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8056/accel/ses-2/sub-8056_ses-2_accel.csv" } ], "8058": [ { "filename": "1375 (2025-09-03)RAW.csv", "labID": "1375", - "date": "2025-09-03T00:00:00", + "date": "2025-09-03", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8058/accel/ses-1/sub-8058_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8058/accel/ses-1/sub-8058_ses-1_accel.csv" }, { "filename": "1375 (2025-11-11)RAW.csv", "labID": "1375", - "date": "2025-11-11T00:00:00", + "date": "2025-11-11", "run": 2, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8058/accel/ses-2/sub-8058_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8058/accel/ses-2/sub-8058_ses-2_accel.csv" } ], "8060": [ { "filename": "1377 (2025-07-17)RAW.csv", "labID": "1377", - "date": "2025-07-17T00:00:00", + "date": "2025-07-17", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8060/accel/ses-1/sub-8060_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8060/accel/ses-1/sub-8060_ses-1_accel.csv" }, { "filename": "1377 (2025-09-25)RAW.csv", "labID": "1377", - "date": "2025-09-25T00:00:00", + "date": "2025-09-25", "run": 2, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8060/accel/ses-2/sub-8060_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8060/accel/ses-2/sub-8060_ses-2_accel.csv" } ], "7181": [ { "filename": "1378 (2025-08-13)RAW.csv", "labID": "1378", - "date": "2025-08-13T00:00:00", + "date": "2025-08-13", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7181/accel/ses-1/sub-7181_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7181/accel/ses-1/sub-7181_ses-1_accel.csv" } ], "7182": [ { "filename": "1379 (2025-07-22)RAW.csv", "labID": "1379", - "date": "2025-07-22T00:00:00", + "date": "2025-07-22", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7182/accel/ses-1/sub-7182_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7182/accel/ses-1/sub-7182_ses-1_accel.csv" } ], "7186": [ { "filename": "1382 (2025-07-24)RAW.csv", "labID": "1382", - "date": "2025-07-24T00:00:00", + "date": "2025-07-24", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7186/accel/ses-1/sub-7186_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7186/accel/ses-1/sub-7186_ses-1_accel.csv" } ], "7187": [ { "filename": "1383 (2025-07-31)RAW.csv", "labID": "1383", - "date": "2025-07-31T00:00:00", + "date": "2025-07-31", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7187/accel/ses-1/sub-7187_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7187/accel/ses-1/sub-7187_ses-1_accel.csv" } ], "7188": [ { "filename": "1384 (2025-07-31)RAW.csv", "labID": "1384", - "date": "2025-07-31T00:00:00", + "date": "2025-07-31", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7188/accel/ses-1/sub-7188_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7188/accel/ses-1/sub-7188_ses-1_accel.csv" } ], "7189": [ { "filename": "1385 (2025-07-30)RAW.csv", "labID": "1385", - "date": "2025-07-30T00:00:00", + "date": "2025-07-30", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7189/accel/ses-1/sub-7189_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7189/accel/ses-1/sub-7189_ses-1_accel.csv" } ], "7190": [ { "filename": "1386 (2025-08-15)RAW.csv", "labID": "1386", - "date": "2025-08-15T00:00:00", + "date": "2025-08-15", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7190/accel/ses-1/sub-7190_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7190/accel/ses-1/sub-7190_ses-1_accel.csv" } ], "7192": [ { "filename": "1388 (2025-08-05)RAW.csv", "labID": "1388", - "date": "2025-08-05T00:00:00", + "date": "2025-08-05", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7192/accel/ses-1/sub-7192_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7192/accel/ses-1/sub-7192_ses-1_accel.csv" } ], "7194": [ { "filename": "1390 (2025-08-13)RAW.csv", "labID": "1390", - "date": "2025-08-13T00:00:00", + "date": "2025-08-13", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7194/accel/ses-1/sub-7194_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7194/accel/ses-1/sub-7194_ses-1_accel.csv" } ], "7195": [ { "filename": "1391 (2025-09-16)RAW.csv", "labID": "1391", - "date": "2025-09-16T00:00:00", + "date": "2025-09-16", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7195/accel/ses-1/sub-7195_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7195/accel/ses-1/sub-7195_ses-1_accel.csv" } ], "7196": [ { "filename": "1392 (2025-08-06)RAW.csv", "labID": "1392", - "date": "2025-08-06T00:00:00", + "date": "2025-08-06", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7196/accel/ses-1/sub-7196_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7196/accel/ses-1/sub-7196_ses-1_accel.csv" } ], "7197": [ { "filename": "1393 (2025-08-05)RAW.csv", "labID": "1393", - "date": "2025-08-05T00:00:00", + "date": "2025-08-05", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7197/accel/ses-1/sub-7197_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7197/accel/ses-1/sub-7197_ses-1_accel.csv" } ], "8061": [ { "filename": "1395 (2025-08-09)RAW.csv", "labID": "1395", - "date": "2025-08-09T00:00:00", + "date": "2025-08-09", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8061/accel/ses-1/sub-8061_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8061/accel/ses-1/sub-8061_ses-1_accel.csv" }, { "filename": "1395 (2025-11-11)RAW.csv", "labID": "1395", - "date": "2025-11-11T00:00:00", + "date": "2025-11-11", "run": 2, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8061/accel/ses-2/sub-8061_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8061/accel/ses-2/sub-8061_ses-2_accel.csv" } ], "7199": [ { "filename": "1396 (2025-09-05)RAW.csv", "labID": "1396", - "date": "2025-09-05T00:00:00", + "date": "2025-09-05", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7199/accel/ses-1/sub-7199_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7199/accel/ses-1/sub-7199_ses-1_accel.csv" } ], "7200": [ { "filename": "1397 (2025-08-15)RAW.csv", "labID": "1397", - "date": "2025-08-15T00:00:00", + "date": "2025-08-15", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7200/accel/ses-1/sub-7200_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7200/accel/ses-1/sub-7200_ses-1_accel.csv" } ], "7202": [ { "filename": "1399 (2025-09-06)RAW.csv", "labID": "1399", - "date": "2025-09-06T00:00:00", + "date": "2025-09-06", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7202/accel/ses-1/sub-7202_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7202/accel/ses-1/sub-7202_ses-1_accel.csv" } ], "7203": [ { "filename": "1400 (2025-08-27)RAW.csv", "labID": "1400", - "date": "2025-08-27T00:00:00", + "date": "2025-08-27", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7203/accel/ses-1/sub-7203_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7203/accel/ses-1/sub-7203_ses-1_accel.csv" } ], "7204": [ { "filename": "1401 (2025-08-22)RAW.csv", "labID": "1401", - "date": "2025-08-22T00:00:00", + "date": "2025-08-22", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7204/accel/ses-1/sub-7204_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7204/accel/ses-1/sub-7204_ses-1_accel.csv" } ], "7206": [ { "filename": "1403 (2025-08-29)RAW.csv", "labID": "1403", - "date": "2025-08-29T00:00:00", + "date": "2025-08-29", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7206/accel/ses-1/sub-7206_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7206/accel/ses-1/sub-7206_ses-1_accel.csv" } ], "7207": [ { "filename": "1404 (2025-09-03)RAW.csv", "labID": "1404", - "date": "2025-09-03T00:00:00", + "date": "2025-09-03", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7207/accel/ses-1/sub-7207_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7207/accel/ses-1/sub-7207_ses-1_accel.csv" } ], "7208": [ { "filename": "1405 (2025-08-22)RAW.csv", "labID": "1405", - "date": "2025-08-22T00:00:00", + "date": "2025-08-22", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7208/accel/ses-1/sub-7208_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7208/accel/ses-1/sub-7208_ses-1_accel.csv" } ], "7209": [ { "filename": "1406 (2025-08-21)RAW.csv", "labID": "1406", - "date": "2025-08-21T00:00:00", + "date": "2025-08-21", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7209/accel/ses-1/sub-7209_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7209/accel/ses-1/sub-7209_ses-1_accel.csv" } ], "7212": [ { "filename": "1408 (2025-09-04)RAW.csv", "labID": "1408", - "date": "2025-09-04T00:00:00", + "date": "2025-09-04", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7212/accel/ses-1/sub-7212_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7212/accel/ses-1/sub-7212_ses-1_accel.csv" } ], "7213": [ { "filename": "1409 (2025-09-19)RAW.csv", "labID": "1409", - "date": "2025-09-19T00:00:00", + "date": "2025-09-19", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7213/accel/ses-1/sub-7213_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7213/accel/ses-1/sub-7213_ses-1_accel.csv" } ], "7214": [ { "filename": "1410 (2025-08-26)RAW.csv", "labID": "1410", - "date": "2025-08-26T00:00:00", + "date": "2025-08-26", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7214/accel/ses-1/sub-7214_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7214/accel/ses-1/sub-7214_ses-1_accel.csv" } ], "7215": [ { "filename": "1411 (2025-08-13)RAW.csv", "labID": "1411", - "date": "2025-08-13T00:00:00", + "date": "2025-08-13", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7215/accel/ses-1/sub-7215_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7215/accel/ses-1/sub-7215_ses-1_accel.csv" } ], "7216": [ { "filename": "1412 (2025-09-04)RAW.csv", "labID": "1412", - "date": "2025-09-04T00:00:00", + "date": "2025-09-04", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7216/accel/ses-1/sub-7216_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7216/accel/ses-1/sub-7216_ses-1_accel.csv" } ], "7218": [ { "filename": "1414 (2025-08-30)RAW.csv", "labID": "1414", - "date": "2025-08-30T00:00:00", + "date": "2025-08-30", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7218/accel/ses-1/sub-7218_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7218/accel/ses-1/sub-7218_ses-1_accel.csv" } ], "7220": [ { "filename": "1415 (2025-10-01)RAW.csv", "labID": "1415", - "date": "2025-10-01T00:00:00", + "date": "2025-10-01", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7220/accel/ses-1/sub-7220_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7220/accel/ses-1/sub-7220_ses-1_accel.csv" } ], "7221": [ { "filename": "1416 (2025-09-04)RAW.csv", "labID": "1416", - "date": "2025-09-04T00:00:00", + "date": "2025-09-04", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7221/accel/ses-1/sub-7221_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7221/accel/ses-1/sub-7221_ses-1_accel.csv" } ], "7222": [ { "filename": "1417 (2025-10-16)RAW.csv", "labID": "1417", - "date": "2025-10-16T00:00:00", + "date": "2025-10-16", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7222/accel/ses-1/sub-7222_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7222/accel/ses-1/sub-7222_ses-1_accel.csv" }, { "filename": "1417 (2026-01-29)RAW.csv", "labID": "1417", - "date": "2026-01-29T00:00:00", + "date": "2026-01-29", "run": 2, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7222/accel/ses-2/sub-7222_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7222/accel/ses-2/sub-7222_ses-2_accel.csv" } ], "7223": [ { "filename": "1418 (2025-09-13)RAW.csv", "labID": "1418", - "date": "2025-09-13T00:00:00", + "date": "2025-09-13", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7223/accel/ses-1/sub-7223_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7223/accel/ses-1/sub-7223_ses-1_accel.csv" } ], "8067": [ { "filename": "1420 (2025-09-30)RAW.csv", "labID": "1420", - "date": "2025-09-30T00:00:00", + "date": "2025-09-30", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8067/accel/ses-1/sub-8067_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8067/accel/ses-1/sub-8067_ses-1_accel.csv" } ], "7225": [ { "filename": "1421 (2025-09-27)RAW.csv", "labID": "1421", - "date": "2025-09-27T00:00:00", + "date": "2025-09-27", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7225/accel/ses-1/sub-7225_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7225/accel/ses-1/sub-7225_ses-1_accel.csv" } ], "7700": [ { "filename": "1422 (2025-09-23)RAW.csv", "labID": "1422", - "date": "2025-09-23T00:00:00", + "date": "2025-09-23", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7700/accel/ses-1/sub-7700_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7700/accel/ses-1/sub-7700_ses-1_accel.csv" } ], "7226": [ { "filename": "1423 (2025-10-11)RAW.csv", "labID": "1423", - "date": "2025-10-11T00:00:00", + "date": "2025-10-11", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7226/accel/ses-1/sub-7226_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7226/accel/ses-1/sub-7226_ses-1_accel.csv" } ], "7227": [ { "filename": "1424 (2025-10-15)RAW.csv", "labID": "1424", - "date": "2025-10-15T00:00:00", + "date": "2025-10-15", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7227/accel/ses-1/sub-7227_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7227/accel/ses-1/sub-7227_ses-1_accel.csv" } ], "8068": [ { "filename": "1425 (2025-10-07)RAW.csv", "labID": "1425", - "date": "2025-10-07T00:00:00", + "date": "2025-10-07", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8068/accel/ses-1/sub-8068_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8068/accel/ses-1/sub-8068_ses-1_accel.csv" }, { "filename": "1425 (2025-12-31)RAW.csv", "labID": "1425", - "date": "2025-12-31T00:00:00", + "date": "2025-12-31", "run": 2, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8068/accel/ses-2/sub-8068_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8068/accel/ses-2/sub-8068_ses-2_accel.csv" } ], "8069": [ { "filename": "1427 (2025-10-25)RAW.csv", "labID": "1427", - "date": "2025-10-25T00:00:00", + "date": "2025-10-25", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8069/accel/ses-1/sub-8069_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8069/accel/ses-1/sub-8069_ses-1_accel.csv" }, { "filename": "1427 (2026-01-03)RAW.csv", "labID": "1427", - "date": "2026-01-03T00:00:00", + "date": "2026-01-03", "run": 2, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8069/accel/ses-2/sub-8069_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8069/accel/ses-2/sub-8069_ses-2_accel.csv" } ], "7701": [ { "filename": "1428 (2025-10-10)RAW.csv", "labID": "1428", - "date": "2025-10-10T00:00:00", + "date": "2025-10-10", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7701/accel/ses-1/sub-7701_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7701/accel/ses-1/sub-7701_ses-1_accel.csv" } ], "7702": [ { "filename": "1429 (2025-10-09)RAW.csv", "labID": "1429", - "date": "2025-10-09T00:00:00", + "date": "2025-10-09", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7702/accel/ses-1/sub-7702_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7702/accel/ses-1/sub-7702_ses-1_accel.csv" } ], "8070": [ { "filename": "1430 (2025-10-09)RAW.csv", "labID": "1430", - "date": "2025-10-09T00:00:00", + "date": "2025-10-09", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8070/accel/ses-1/sub-8070_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8070/accel/ses-1/sub-8070_ses-1_accel.csv" }, { "filename": "1430 (2025-12-09)RAW.csv", "labID": "1430", - "date": "2025-12-09T00:00:00", + "date": "2025-12-09", "run": 2, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8070/accel/ses-2/sub-8070_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8070/accel/ses-2/sub-8070_ses-2_accel.csv" } ], "8073": [ { "filename": "1432 (2025-11-05)RAW.csv", "labID": "1432", - "date": "2025-11-05T00:00:00", + "date": "2025-11-05", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8073/accel/ses-1/sub-8073_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8073/accel/ses-1/sub-8073_ses-1_accel.csv" }, { "filename": "1432 (2026-01-09)RAW.csv", "labID": "1432", - "date": "2026-01-09T00:00:00", + "date": "2026-01-09", "run": 2, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8073/accel/ses-2/sub-8073_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8073/accel/ses-2/sub-8073_ses-2_accel.csv" } ], "7704": [ { "filename": "1434 (2025-11-08)RAW.csv", "labID": "1434", - "date": "2025-11-08T00:00:00", + "date": "2025-11-08", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7704/accel/ses-1/sub-7704_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7704/accel/ses-1/sub-7704_ses-1_accel.csv" } ], "8074": [ { "filename": "1435 (2025-10-23)RAW.csv", "labID": "1435", - "date": "2025-10-23T00:00:00", + "date": "2025-10-23", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8074/accel/ses-1/sub-8074_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8074/accel/ses-1/sub-8074_ses-1_accel.csv" }, { "filename": "1435 (2026-01-10)RAW.csv", "labID": "1435", - "date": "2026-01-10T00:00:00", + "date": "2026-01-10", "run": 2, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8074/accel/ses-2/sub-8074_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8074/accel/ses-2/sub-8074_ses-2_accel.csv" } ], "8075": [ { "filename": "1436 (2025-10-30)RAW.csv", "labID": "1436", - "date": "2025-10-30T00:00:00", + "date": "2025-10-30", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8075/accel/ses-1/sub-8075_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8075/accel/ses-1/sub-8075_ses-1_accel.csv" } ], "8076": [ { "filename": "1437 (2025-11-06)RAW.csv", "labID": "1437", - "date": "2025-11-06T00:00:00", + "date": "2025-11-06", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8076/accel/ses-1/sub-8076_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8076/accel/ses-1/sub-8076_ses-1_accel.csv" }, { "filename": "1437 (2026-01-08)RAW.csv", "labID": "1437", - "date": "2026-01-08T00:00:00", + "date": "2026-01-08", "run": 2, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8076/accel/ses-2/sub-8076_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8076/accel/ses-2/sub-8076_ses-2_accel.csv" } ], "8072": [ { "filename": "1438 (2025-11-04)RAW.csv", "labID": "1438", - "date": "2025-11-04T00:00:00", + "date": "2025-11-04", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8072/accel/ses-1/sub-8072_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8072/accel/ses-1/sub-8072_ses-1_accel.csv" } ], "7229": [ { "filename": "1439 (2025-11-14)RAW.csv", "labID": "1439", - "date": "2025-11-14T00:00:00", + "date": "2025-11-14", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7229/accel/ses-1/sub-7229_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7229/accel/ses-1/sub-7229_ses-1_accel.csv" } ], "7230": [ { "filename": "1440 (2025-11-06)RAW.csv", "labID": "1440", - "date": "2025-11-06T00:00:00", + "date": "2025-11-06", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7230/accel/ses-1/sub-7230_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7230/accel/ses-1/sub-7230_ses-1_accel.csv" } ], "7231": [ { "filename": "1441 (2025-11-05)RAW.csv", "labID": "1441", - "date": "2025-11-05T00:00:00", + "date": "2025-11-05", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7231/accel/ses-1/sub-7231_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7231/accel/ses-1/sub-7231_ses-1_accel.csv" } ], "7232": [ { "filename": "1442 (2025-11-13)RAW.csv", "labID": "1442", - "date": "2025-11-13T00:00:00", + "date": "2025-11-13", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7232/accel/ses-1/sub-7232_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7232/accel/ses-1/sub-7232_ses-1_accel.csv" } ], "7705": [ { "filename": "1443 (2025-11-20)RAW.csv", "labID": "1443", - "date": "2025-11-20T00:00:00", + "date": "2025-11-20", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7705/accel/ses-1/sub-7705_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7705/accel/ses-1/sub-7705_ses-1_accel.csv" } ], "7233": [ { "filename": "1444 (2025-11-08)RAW.csv", "labID": "1444", - "date": "2025-11-08T00:00:00", + "date": "2025-11-08", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7233/accel/ses-1/sub-7233_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7233/accel/ses-1/sub-7233_ses-1_accel.csv" } ], "7234": [ { "filename": "1445 (2025-11-12)RAW.csv", "labID": "1445", - "date": "2025-11-12T00:00:00", + "date": "2025-11-12", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7234/accel/ses-1/sub-7234_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7234/accel/ses-1/sub-7234_ses-1_accel.csv" } ], "7235": [ { "filename": "1446 (2025-11-07)RAW.csv", "labID": "1446", - "date": "2025-11-07T00:00:00", + "date": "2025-11-07", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7235/accel/ses-1/sub-7235_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7235/accel/ses-1/sub-7235_ses-1_accel.csv" } ], "7237": [ { "filename": "1448 (2025-11-15)RAW.csv", "labID": "1448", - "date": "2025-11-15T00:00:00", + "date": "2025-11-15", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7237/accel/ses-1/sub-7237_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7237/accel/ses-1/sub-7237_ses-1_accel.csv" } ], "7238": [ { "filename": "1449 (2025-12-04)RAW.csv", "labID": "1449", - "date": "2025-12-04T00:00:00", + "date": "2025-12-04", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7238/accel/ses-1/sub-7238_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7238/accel/ses-1/sub-7238_ses-1_accel.csv" } ], "7239": [ { "filename": "1450 (2025-11-15)RAW.csv", "labID": "1450", - "date": "2025-11-15T00:00:00", + "date": "2025-11-15", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7239/accel/ses-1/sub-7239_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7239/accel/ses-1/sub-7239_ses-1_accel.csv" } ], "7240": [ { "filename": "1451 (2025-11-15)RAW.csv", "labID": "1451", - "date": "2025-11-15T00:00:00", + "date": "2025-11-15", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7240/accel/ses-1/sub-7240_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7240/accel/ses-1/sub-7240_ses-1_accel.csv" } ], "7242": [ { "filename": "1453 (2025-12-10)RAW.csv", "labID": "1453", - "date": "2025-12-10T00:00:00", + "date": "2025-12-10", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7242/accel/ses-1/sub-7242_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7242/accel/ses-1/sub-7242_ses-1_accel.csv" } ], "7243": [ { "filename": "1454 (2025-12-10)RAW.csv", "labID": "1454", - "date": "2025-12-10T00:00:00", + "date": "2025-12-10", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7243/accel/ses-1/sub-7243_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7243/accel/ses-1/sub-7243_ses-1_accel.csv" } ], "7246": [ { "filename": "1457 (2025-11-21)RAW.csv", "labID": "1457", - "date": "2025-11-21T00:00:00", + "date": "2025-11-21", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7246/accel/ses-1/sub-7246_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7246/accel/ses-1/sub-7246_ses-1_accel.csv" } ], "7248": [ { "filename": "1459 (2025-11-19)RAW.csv", "labID": "1459", - "date": "2025-11-19T00:00:00", + "date": "2025-11-19", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7248/accel/ses-1/sub-7248_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7248/accel/ses-1/sub-7248_ses-1_accel.csv" } ], "7249": [ { "filename": "1460 (2025-12-09)RAW.csv", "labID": "1460", - "date": "2025-12-09T00:00:00", + "date": "2025-12-09", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7249/accel/ses-1/sub-7249_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7249/accel/ses-1/sub-7249_ses-1_accel.csv" } ], "7250": [ { "filename": "1461 (2025-12-04)RAW.csv", "labID": "1461", - "date": "2025-12-04T00:00:00", + "date": "2025-12-04", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7250/accel/ses-1/sub-7250_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7250/accel/ses-1/sub-7250_ses-1_accel.csv" } ], "7251": [ { "filename": "1462 (2025-12-18)RAW.csv", "labID": "1462", - "date": "2025-12-18T00:00:00", + "date": "2025-12-18", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7251/accel/ses-1/sub-7251_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7251/accel/ses-1/sub-7251_ses-1_accel.csv" } ], "7252": [ { "filename": "1463 (2025-11-26)RAW.csv", "labID": "1463", - "date": "2025-11-26T00:00:00", + "date": "2025-11-26", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7252/accel/ses-1/sub-7252_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7252/accel/ses-1/sub-7252_ses-1_accel.csv" } ], "8083": [ { "filename": "1465 (2025-12-10)RAW.csv", "labID": "1465", - "date": "2025-12-10T00:00:00", + "date": "2025-12-10", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8083/accel/ses-1/sub-8083_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8083/accel/ses-1/sub-8083_ses-1_accel.csv" }, { "filename": "1465 (2026-02-04)RAW.csv", "labID": "1465", - "date": "2026-02-04T00:00:00", + "date": "2026-02-04", "run": 2, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8083/accel/ses-2/sub-8083_ses-2_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8083/accel/ses-2/sub-8083_ses-2_accel.csv" } ], "8084": [ { "filename": "1466 (2025-12-02)RAW.csv", "labID": "1466", - "date": "2025-12-02T00:00:00", + "date": "2025-12-02", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8084/accel/ses-1/sub-8084_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8084/accel/ses-1/sub-8084_ses-1_accel.csv" + }, + { + "filename": "1466 (2026-02-03)RAW.csv", + "labID": "1466", + "date": "2026-02-03", + "run": 2, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8084/accel/ses-2/sub-8084_ses-2_accel.csv" } ], "7706": [ { "filename": "1467 (2025-12-05)RAW.csv", "labID": "1467", - "date": "2025-12-05T00:00:00", + "date": "2025-12-05", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7706/accel/ses-1/sub-7706_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7706/accel/ses-1/sub-7706_ses-1_accel.csv" } ], "7707": [ { "filename": "1468 (2025-12-13)RAW.csv", "labID": "1468", - "date": "2025-12-13T00:00:00", + "date": "2025-12-13", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7707/accel/ses-1/sub-7707_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7707/accel/ses-1/sub-7707_ses-1_accel.csv" } ], "7708": [ { "filename": "1469 (2025-12-06)RAW.csv", "labID": "1469", - "date": "2025-12-06T00:00:00", + "date": "2025-12-06", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7708/accel/ses-1/sub-7708_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7708/accel/ses-1/sub-7708_ses-1_accel.csv" } ], "7709": [ { "filename": "1470 (2025-11-25)RAW.csv", "labID": "1470", - "date": "2025-11-25T00:00:00", + "date": "2025-11-25", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7709/accel/ses-1/sub-7709_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7709/accel/ses-1/sub-7709_ses-1_accel.csv" } ], "7710": [ { "filename": "1471 (2025-12-17)RAW.csv", "labID": "1471", - "date": "2025-12-17T00:00:00", + "date": "2025-12-17", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7710/accel/ses-1/sub-7710_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7710/accel/ses-1/sub-7710_ses-1_accel.csv" } ], "7715": [ { "filename": "1474 (2025-12-05)RAW.csv", "labID": "1474", - "date": "2025-12-05T00:00:00", + "date": "2025-12-05", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7715/accel/ses-1/sub-7715_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7715/accel/ses-1/sub-7715_ses-1_accel.csv" } ], "7254": [ { "filename": "1477 (2025-12-06)RAW.csv", "labID": "1477", - "date": "2025-12-06T00:00:00", + "date": "2025-12-06", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7254/accel/ses-1/sub-7254_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7254/accel/ses-1/sub-7254_ses-1_accel.csv" } ], "7718": [ { "filename": "1478 (2025-12-06)RAW.csv", "labID": "1478", - "date": "2025-12-06T00:00:00", + "date": "2025-12-06", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7718/accel/ses-1/sub-7718_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7718/accel/ses-1/sub-7718_ses-1_accel.csv" } ], "7721": [ { "filename": "1482 (2025-12-10)RAW.csv", "labID": "1482", - "date": "2025-12-10T00:00:00", + "date": "2025-12-10", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7721/accel/ses-1/sub-7721_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7721/accel/ses-1/sub-7721_ses-1_accel.csv" } ], "7726": [ { "filename": "1485 (2026-01-13)RAW.csv", "labID": "1485", - "date": "2026-01-13T00:00:00", + "date": "2026-01-13", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7726/accel/ses-1/sub-7726_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7726/accel/ses-1/sub-7726_ses-1_accel.csv" } ], "7728": [ { "filename": "1487 (2026-01-23)RAW.csv", "labID": "1487", - "date": "2026-01-23T00:00:00", + "date": "2026-01-23", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7728/accel/ses-1/sub-7728_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7728/accel/ses-1/sub-7728_ses-1_accel.csv" } ], "7729": [ { "filename": "1488 (2026-01-07)RAW.csv", "labID": "1488", - "date": "2026-01-07T00:00:00", + "date": "2026-01-07", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7729/accel/ses-1/sub-7729_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7729/accel/ses-1/sub-7729_ses-1_accel.csv" } ], "7732": [ { "filename": "1491 (2025-12-18)RAW.csv", "labID": "1491", - "date": "2025-12-18T00:00:00", + "date": "2025-12-18", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7732/accel/ses-1/sub-7732_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7732/accel/ses-1/sub-7732_ses-1_accel.csv" } ], "7255": [ { "filename": "1493 (2025-12-17)RAW.csv", "labID": "1493", - "date": "2025-12-17T00:00:00", + "date": "2025-12-17", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7255/accel/ses-1/sub-7255_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7255/accel/ses-1/sub-7255_ses-1_accel.csv" } ], "8088": [ { "filename": "1495 (2025-12-23)RAW.csv", "labID": "1495", - "date": "2025-12-23T00:00:00", + "date": "2025-12-23", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8088/accel/ses-1/sub-8088_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8088/accel/ses-1/sub-8088_ses-1_accel.csv" } ], "8090": [ { "filename": "1500 (2026-01-29)RAW.csv", "labID": "1500", - "date": "2026-01-29T00:00:00", + "date": "2026-01-29", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8090/accel/ses-1/sub-8090_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8090/accel/ses-1/sub-8090_ses-1_accel.csv" } ], "8080": [ { "filename": "1501 (2025-12-31)RAW.csv", "labID": "1501", - "date": "2025-12-31T00:00:00", + "date": "2025-12-31", "run": 1, "study": "int", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-final-test-2/sub-8080/accel/ses-1/sub-8080_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8080/accel/ses-1/sub-8080_ses-1_accel.csv" } ], "7743": [ { "filename": "1503 (2026-01-16)RAW.csv", "labID": "1503", - "date": "2026-01-16T00:00:00", + "date": "2026-01-16", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7743/accel/ses-1/sub-7743_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7743/accel/ses-1/sub-7743_ses-1_accel.csv" } ], "7744": [ { "filename": "1504 (2026-01-16)RAW.csv", "labID": "1504", - "date": "2026-01-16T00:00:00", + "date": "2026-01-16", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7744/accel/ses-1/sub-7744_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7744/accel/ses-1/sub-7744_ses-1_accel.csv" } ], "7745": [ { "filename": "1505 (2026-01-17)RAW.csv", "labID": "1505", - "date": "2026-01-17T00:00:00", + "date": "2026-01-17", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7745/accel/ses-1/sub-7745_ses-1_accel.csv" + } + ], + "7761": [ + { + "filename": "584 (2026-02-18)RAW.csv", + "labID": "584", + "date": "2026-02-18", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7761/accel/ses-1/sub-7761_ses-1_accel.csv" + } + ], + "8085": [ + { + "filename": "1476 (2026-01-06)RAW.csv", + "labID": "1476", + "date": "2026-01-06", + "run": 1, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8085/accel/ses-1/sub-8085_ses-1_accel.csv" + } + ], + "7062": [ + { + "filename": "1043 (2025-02-22)RAW.csv", + "labID": "1043", + "date": "2025-02-22", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7062/accel/ses-1/sub-7062_ses-1_accel.csv" + } + ], + "7146": [ + { + "filename": "1051 (2025-05-05)RAW.csv", + "labID": "1051", + "date": "2025-05-05", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7146/accel/ses-1/sub-7146_ses-1_accel.csv" + } + ], + "8002": [ + { + "filename": "1124 (2024-11-07)RAW.csv", + "labID": "1124", + "date": "2024-11-07", + "run": 1, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8002/accel/ses-1/sub-8002_ses-1_accel.csv" + }, + { + "filename": "1124 (2025-02-26)RAW.csv", + "labID": "1124", + "date": "2025-02-26", + "run": 2, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8002/accel/ses-2/sub-8002_ses-2_accel.csv" + }, + { + "filename": "1124 (2025-05-05)RAW.csv", + "labID": "1124", + "date": "2025-05-05", + "run": 3, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8002/accel/ses-3/sub-8002_ses-3_accel.csv" + } + ], + "8004": [ + { + "filename": "1126 (2024-11-22)RAW.csv", + "labID": "1126", + "date": "2024-11-22", + "run": 1, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8004/accel/ses-1/sub-8004_ses-1_accel.csv" + }, + { + "filename": "1126 (2025-03-12)RAW.csv", + "labID": "1126", + "date": "2025-03-12", + "run": 2, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8004/accel/ses-2/sub-8004_ses-2_accel.csv" + }, + { + "filename": "1126 (2025-04-30)RAW.csv", + "labID": "1126", + "date": "2025-04-30", + "run": 3, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8004/accel/ses-3/sub-8004_ses-3_accel.csv" + } + ], + "8006": [ + { + "filename": "1129 (2024-12-12)RAW.csv", + "labID": "1129", + "date": "2024-12-12", + "run": 1, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8006/accel/ses-1/sub-8006_ses-1_accel.csv" + }, + { + "filename": "1129 (2025-04-16)RAW.csv", + "labID": "1129", + "date": "2025-04-16", + "run": 2, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8006/accel/ses-2/sub-8006_ses-2_accel.csv" + }, + { + "filename": "1129 (2025-05-14)RAW.csv", + "labID": "1129", + "date": "2025-05-14", + "run": 3, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8006/accel/ses-3/sub-8006_ses-3_accel.csv" + } + ], + "7027": [ + { + "filename": "1139 (2024-11-08)RAW.csv", + "labID": "1139", + "date": "2024-11-08", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7027/accel/ses-1/sub-7027_ses-1_accel.csv" + } + ], + "7029": [ + { + "filename": "1141 (2024-11-05)RAW.csv", + "labID": "1141", + "date": "2024-11-05", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7029/accel/ses-1/sub-7029_ses-1_accel.csv" + } + ], + "7032": [ + { + "filename": "1144 (2024-11-12)RAW.csv", + "labID": "1144", + "date": "2024-11-12", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7032/accel/ses-1/sub-7032_ses-1_accel.csv" + } + ], + "7033": [ + { + "filename": "1145 (2024-11-06)RAW.csv", + "labID": "1145", + "date": "2024-11-06", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7033/accel/ses-1/sub-7033_ses-1_accel.csv" + } + ], + "8008": [ + { + "filename": "1146 (2024-11-04)RAW.csv", + "labID": "1146", + "date": "2024-11-04", + "run": 1, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8008/accel/ses-1/sub-8008_ses-1_accel.csv" + }, + { + "filename": "1146 (2025-01-09)RAW.csv", + "labID": "1146", + "date": "2025-01-09", + "run": 2, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8008/accel/ses-2/sub-8008_ses-2_accel.csv" + }, + { + "filename": "1146 (2025-03-19)RAW.csv", + "labID": "1146", + "date": "2025-03-19", + "run": 3, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8008/accel/ses-3/sub-8008_ses-3_accel.csv" + } + ], + "7034": [ + { + "filename": "1147 (2024-11-14)RAW.csv", + "labID": "1147", + "date": "2024-11-14", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7034/accel/ses-1/sub-7034_ses-1_accel.csv" + } + ], + "7035": [ + { + "filename": "1148 (2024-11-04)RAW.csv", + "labID": "1148", + "date": "2024-11-04", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7035/accel/ses-1/sub-7035_ses-1_accel.csv" + } + ], + "7031": [ + { + "filename": "1155 (2024-12-18)RAW.csv", + "labID": "1155", + "date": "2024-12-18", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7031/accel/ses-1/sub-7031_ses-1_accel.csv" + } + ], + "7037": [ + { + "filename": "1161 (2025-01-18)RAW.csv", + "labID": "1161", + "date": "2025-01-18", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7037/accel/ses-1/sub-7037_ses-1_accel.csv" + } + ], + "8015": [ + { + "filename": "1162 (2025-01-29)RAW.csv", + "labID": "1162", + "date": "2025-01-29", + "run": 1, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8015/accel/ses-1/sub-8015_ses-1_accel.csv" + } + ], + "7039": [ + { + "filename": "1166 (2025-01-21)RAW.csv", + "labID": "1166", + "date": "2025-01-21", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7039/accel/ses-1/sub-7039_ses-1_accel.csv" + } + ], + "8021": [ + { + "filename": "1170 (2025-01-29)RAW.csv", + "labID": "1170", + "date": "2025-01-29", + "run": 1, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8021/accel/ses-1/sub-8021_ses-1_accel.csv" + }, + { + "filename": "1170 (2025-05-24)RAW.csv", + "labID": "1170", + "date": "2025-05-24", + "run": 2, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8021/accel/ses-2/sub-8021_ses-2_accel.csv" + } + ], + "7040": [ + { + "filename": "1171 (2025-02-08)RAW.csv", + "labID": "1171", + "date": "2025-02-08", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7040/accel/ses-1/sub-7040_ses-1_accel.csv" + } + ], + "7041": [ + { + "filename": "1172 (2025-01-28)RAW.csv", + "labID": "1172", + "date": "2025-01-28", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7041/accel/ses-1/sub-7041_ses-1_accel.csv" + }, + { + "filename": "1172 (2025-05-29)RAW.csv", + "labID": "1172", + "date": "2025-05-29", + "run": 2, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7041/accel/ses-2/sub-7041_ses-2_accel.csv" + } + ], + "7042": [ + { + "filename": "1173 (2025-03-01)RAW.csv", + "labID": "1173", + "date": "2025-03-01", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7042/accel/ses-1/sub-7042_ses-1_accel.csv" + } + ], + "7043": [ + { + "filename": "1174 (2025-01-27)RAW.csv", + "labID": "1174", + "date": "2025-01-27", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7043/accel/ses-1/sub-7043_ses-1_accel.csv" + }, + { + "filename": "1174 (2025-01-28)RAW.csv", + "labID": "1174", + "date": "2025-01-28", + "run": 2, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7043/accel/ses-2/sub-7043_ses-2_accel.csv" + } + ], + "7047": [ + { + "filename": "1178 (2025-02-12)RAW.csv", + "labID": "1178", + "date": "2025-02-12", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7047/accel/ses-1/sub-7047_ses-1_accel.csv" + } + ], + "7048": [ + { + "filename": "1179 (2025-03-11)RAW.csv", + "labID": "1179", + "date": "2025-03-11", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7048/accel/ses-1/sub-7048_ses-1_accel.csv" + } + ], + "7049": [ + { + "filename": "1180 (2025-02-18)RAW.csv", + "labID": "1180", + "date": "2025-02-18", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7049/accel/ses-1/sub-7049_ses-1_accel.csv" + } + ], + "7050": [ + { + "filename": "1181 (2025-02-21)RAW.csv", + "labID": "1181", + "date": "2025-02-21", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7050/accel/ses-1/sub-7050_ses-1_accel.csv" + } + ], + "7052": [ + { + "filename": "1183 (2025-02-13)RAW.csv", + "labID": "1183", + "date": "2025-02-13", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7052/accel/ses-1/sub-7052_ses-1_accel.csv" + } + ], + "8024": [ + { + "filename": "1186 (2025-03-08)RAW.csv", + "labID": "1186", + "date": "2025-03-08", + "run": 1, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8024/accel/ses-1/sub-8024_ses-1_accel.csv" + }, + { + "filename": "1186 (2025-05-30)RAW.csv", + "labID": "1186", + "date": "2025-05-30", + "run": 2, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8024/accel/ses-2/sub-8024_ses-2_accel.csv" + } + ], + "7054": [ + { + "filename": "1187 (2025-02-11)RAW.csv", + "labID": "1187", + "date": "2025-02-11", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7054/accel/ses-1/sub-7054_ses-1_accel.csv" + } + ], + "7056": [ + { + "filename": "1190 (2025-02-22)RAW.csv", + "labID": "1190", + "date": "2025-02-22", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7056/accel/ses-1/sub-7056_ses-1_accel.csv" + } + ], + "7058": [ + { + "filename": "1192 (2025-02-21)RAW.csv", + "labID": "1192", + "date": "2025-02-21", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7058/accel/ses-1/sub-7058_ses-1_accel.csv" + } + ], + "7059": [ + { + "filename": "1193 (2025-02-25)RAW.csv", + "labID": "1193", + "date": "2025-02-25", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7059/accel/ses-1/sub-7059_ses-1_accel.csv" + } + ], + "7061": [ + { + "filename": "1196 (2025-02-15)RAW.csv", + "labID": "1196", + "date": "2025-02-15", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7061/accel/ses-1/sub-7061_ses-1_accel.csv" + } + ], + "7063": [ + { + "filename": "1197 (2025-02-25)RAW.csv", + "labID": "1197", + "date": "2025-02-25", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7063/accel/ses-1/sub-7063_ses-1_accel.csv" + } + ], + "7064": [ + { + "filename": "1202 (2025-03-01)RAW.csv", + "labID": "1202", + "date": "2025-03-01", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7064/accel/ses-1/sub-7064_ses-1_accel.csv" + } + ], + "7067": [ + { + "filename": "1205 (2025-02-21)RAW.csv", + "labID": "1205", + "date": "2025-02-21", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7067/accel/ses-1/sub-7067_ses-1_accel.csv" + } + ], + "7068": [ + { + "filename": "1206 (2025-02-27)RAW.csv", + "labID": "1206", + "date": "2025-02-27", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7068/accel/ses-1/sub-7068_ses-1_accel.csv" + } + ], + "7069": [ + { + "filename": "1207 (2025-03-01)RAW.csv", + "labID": "1207", + "date": "2025-03-01", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7069/accel/ses-1/sub-7069_ses-1_accel.csv" + } + ], + "7072": [ + { + "filename": "1210 (2025-03-01)RAW.csv", + "labID": "1210", + "date": "2025-03-01", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7072/accel/ses-1/sub-7072_ses-1_accel.csv" + } + ], + "7073": [ + { + "filename": "1211 (2025-03-01)RAW.csv", + "labID": "1211", + "date": "2025-03-01", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7073/accel/ses-1/sub-7073_ses-1_accel.csv" + } + ], + "7075": [ + { + "filename": "1213 (2025-03-04)RAW.csv", + "labID": "1213", + "date": "2025-03-04", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7075/accel/ses-1/sub-7075_ses-1_accel.csv" + } + ], + "7076": [ + { + "filename": "1214 (2025-03-11)RAW.csv", + "labID": "1214", + "date": "2025-03-11", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7076/accel/ses-1/sub-7076_ses-1_accel.csv" + } + ], + "7077": [ + { + "filename": "1215 (2025-03-14)RAW.csv", + "labID": "1215", + "date": "2025-03-14", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7077/accel/ses-1/sub-7077_ses-1_accel.csv" + } + ], + "7078": [ + { + "filename": "1216 (2025-03-08)RAW.csv", + "labID": "1216", + "date": "2025-03-08", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7078/accel/ses-1/sub-7078_ses-1_accel.csv" + } + ], + "7079": [ + { + "filename": "1217 (2025-03-13)RAW.csv", + "labID": "1217", + "date": "2025-03-13", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7079/accel/ses-1/sub-7079_ses-1_accel.csv" + } + ], + "7080": [ + { + "filename": "1218 (2025-03-07)RAW.csv", + "labID": "1218", + "date": "2025-03-07", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7080/accel/ses-1/sub-7080_ses-1_accel.csv" + } + ], + "7082": [ + { + "filename": "1220 (2025-03-19)RAW.csv", + "labID": "1220", + "date": "2025-03-19", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7082/accel/ses-1/sub-7082_ses-1_accel.csv" + } + ], + "7083": [ + { + "filename": "1222 (2025-03-06)RAW.csv", + "labID": "1222", + "date": "2025-03-06", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7083/accel/ses-1/sub-7083_ses-1_accel.csv" + } + ], + "7084": [ + { + "filename": "1223 (2025-03-29)RAW.csv", + "labID": "1223", + "date": "2025-03-29", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7084/accel/ses-1/sub-7084_ses-1_accel.csv" + } + ], + "7085": [ + { + "filename": "1224 (2025-03-18)RAW.csv", + "labID": "1224", + "date": "2025-03-18", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7085/accel/ses-1/sub-7085_ses-1_accel.csv" + } + ], + "7086": [ + { + "filename": "1225 (2025-03-06)RAW.csv", + "labID": "1225", + "date": "2025-03-06", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7086/accel/ses-1/sub-7086_ses-1_accel.csv" + } + ], + "7087": [ + { + "filename": "1226 (2025-03-06)RAW.csv", + "labID": "1226", + "date": "2025-03-06", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7087/accel/ses-1/sub-7087_ses-1_accel.csv" + } + ], + "7088": [ + { + "filename": "1227 (2025-04-03)RAW.csv", + "labID": "1227", + "date": "2025-04-03", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7088/accel/ses-1/sub-7088_ses-1_accel.csv" + } + ], + "7089": [ + { + "filename": "1228 (2025-03-20)RAW.csv", + "labID": "1228", + "date": "2025-03-20", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7089/accel/ses-1/sub-7089_ses-1_accel.csv" + } + ], + "7093": [ + { + "filename": "1232 (2025-03-12)RAW.csv", + "labID": "1232", + "date": "2025-03-12", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7093/accel/ses-1/sub-7093_ses-1_accel.csv" + } + ], + "7094": [ + { + "filename": "1233 (2025-03-27)RAW.csv", + "labID": "1233", + "date": "2025-03-27", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7094/accel/ses-1/sub-7094_ses-1_accel.csv" + } + ], + "7065": [ + { + "filename": "1234 (2025-03-20)RAW.csv", + "labID": "1234", + "date": "2025-03-20", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7065/accel/ses-1/sub-7065_ses-1_accel.csv" + } + ], + "7096": [ + { + "filename": "1236 (2025-03-29)RAW.csv", + "labID": "1236", + "date": "2025-03-29", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7096/accel/ses-1/sub-7096_ses-1_accel.csv" + } + ], + "7098": [ + { + "filename": "1239 (2025-04-05)RAW.csv", + "labID": "1239", + "date": "2025-04-05", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7098/accel/ses-1/sub-7098_ses-1_accel.csv" + } + ], + "7099": [ + { + "filename": "1240 (2025-03-08)RAW.csv", + "labID": "1240", + "date": "2025-03-08", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7099/accel/ses-1/sub-7099_ses-1_accel.csv" + } + ], + "7102": [ + { + "filename": "1242 (2025-03-28)RAW.csv", + "labID": "1242", + "date": "2025-03-28", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7102/accel/ses-1/sub-7102_ses-1_accel.csv" + } + ], + "7045": [ + { + "filename": "1243 (2025-03-20)RAW.csv", + "labID": "1243", + "date": "2025-03-20", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7045/accel/ses-1/sub-7045_ses-1_accel.csv" + } + ], + "7103": [ + { + "filename": "1244 (2025-04-03)RAW.csv", + "labID": "1244", + "date": "2025-04-03", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7103/accel/ses-1/sub-7103_ses-1_accel.csv" + } + ], + "7104": [ + { + "filename": "1245 (2025-04-03)RAW.csv", + "labID": "1245", + "date": "2025-04-03", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7104/accel/ses-1/sub-7104_ses-1_accel.csv" + } + ], + "7105": [ + { + "filename": "1246 (2025-03-14)RAW.csv", + "labID": "1246", + "date": "2025-03-14", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7105/accel/ses-1/sub-7105_ses-1_accel.csv" + } + ], + "7091": [ + { + "filename": "1250 (2025-03-27)RAW.csv", + "labID": "1250", + "date": "2025-03-27", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7091/accel/ses-1/sub-7091_ses-1_accel.csv" + } + ], + "7070": [ + { + "filename": "1251 (2025-04-05)RAW.csv", + "labID": "1251", + "date": "2025-04-05", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7070/accel/ses-1/sub-7070_ses-1_accel.csv" + } + ], + "7106": [ + { + "filename": "1252 (2025-03-28)RAW.csv", + "labID": "1252", + "date": "2025-03-28", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7106/accel/ses-1/sub-7106_ses-1_accel.csv" + } + ], + "7107": [ + { + "filename": "1254 (2025-04-12)RAW.csv", + "labID": "1254", + "date": "2025-04-12", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7107/accel/ses-1/sub-7107_ses-1_accel.csv" + } + ], + "7108": [ + { + "filename": "1255 (2025-03-14)RAW.csv", + "labID": "1255", + "date": "2025-03-14", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7108/accel/ses-1/sub-7108_ses-1_accel.csv" + } + ], + "7110": [ + { + "filename": "1257 (2025-04-04)RAW.csv", + "labID": "1257", + "date": "2025-04-04", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7110/accel/ses-1/sub-7110_ses-1_accel.csv" + } + ], + "7092": [ + { + "filename": "1260 (2025-03-28)RAW.csv", + "labID": "1260", + "date": "2025-03-28", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7092/accel/ses-1/sub-7092_ses-1_accel.csv" + } + ], + "7090": [ + { + "filename": "1261 (2025-04-11)RAW.csv", + "labID": "1261", + "date": "2025-04-11", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7090/accel/ses-1/sub-7090_ses-1_accel.csv" + } + ], + "7113": [ + { + "filename": "1262 (2025-04-04)RAW.csv", + "labID": "1262", + "date": "2025-04-04", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7113/accel/ses-1/sub-7113_ses-1_accel.csv" + } + ], + "7114": [ + { + "filename": "1263 (2025-03-29)RAW.csv", + "labID": "1263", + "date": "2025-03-29", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7114/accel/ses-1/sub-7114_ses-1_accel.csv" + } + ], + "7097": [ + { + "filename": "1264 (2025-04-05)RAW.csv", + "labID": "1264", + "date": "2025-04-05", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7097/accel/ses-1/sub-7097_ses-1_accel.csv" + } + ], + "7115": [ + { + "filename": "1265 (2025-04-02)RAW.csv", + "labID": "1265", + "date": "2025-04-02", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7115/accel/ses-1/sub-7115_ses-1_accel.csv" + } + ], + "7116": [ + { + "filename": "1266 (2025-04-03)RAW.csv", + "labID": "1266", + "date": "2025-04-03", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7116/accel/ses-1/sub-7116_ses-1_accel.csv" + } + ], + "7117": [ + { + "filename": "1267 (2025-03-22)RAW.csv", + "labID": "1267", + "date": "2025-03-22", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7117/accel/ses-1/sub-7117_ses-1_accel.csv" + } + ], + "7118": [ + { + "filename": "1268 (2025-04-08)RAW.csv", + "labID": "1268", + "date": "2025-04-08", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7118/accel/ses-1/sub-7118_ses-1_accel.csv" + } + ], + "7120": [ + { + "filename": "1270 (2025-04-12)RAW.csv", + "labID": "1270", + "date": "2025-04-12", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7120/accel/ses-1/sub-7120_ses-1_accel.csv" + } + ], + "7122": [ + { + "filename": "1272 (2025-04-05)RAW.csv", + "labID": "1272", + "date": "2025-04-05", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7122/accel/ses-1/sub-7122_ses-1_accel.csv" + } + ], + "7124": [ + { + "filename": "1290 (2025-04-10)RAW.csv", + "labID": "1290", + "date": "2025-04-10", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7124/accel/ses-1/sub-7124_ses-1_accel.csv" + } + ], + "7125": [ + { + "filename": "1291 (2025-04-10)RAW.csv", + "labID": "1291", + "date": "2025-04-10", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7125/accel/ses-1/sub-7125_ses-1_accel.csv" + } + ], + "7128": [ + { + "filename": "1298 (2025-04-18)RAW.csv", + "labID": "1298", + "date": "2025-04-18", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7128/accel/ses-1/sub-7128_ses-1_accel.csv" + } + ], + "7129": [ + { + "filename": "1299 (2025-04-19)RAW.csv", + "labID": "1299", + "date": "2025-04-19", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7129/accel/ses-1/sub-7129_ses-1_accel.csv" + } + ], + "7133": [ + { + "filename": "1304 (2025-04-29)RAW.csv", + "labID": "1304", + "date": "2025-04-29", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7133/accel/ses-1/sub-7133_ses-1_accel.csv" + } + ], + "7134": [ + { + "filename": "1311 (2025-05-01)RAW.csv", + "labID": "1311", + "date": "2025-05-01", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7134/accel/ses-1/sub-7134_ses-1_accel.csv" + } + ], + "7136": [ + { + "filename": "1313 (2025-06-03)RAW.csv", + "labID": "1313", + "date": "2025-06-03", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7136/accel/ses-1/sub-7136_ses-1_accel.csv" + } + ], + "7137": [ + { + "filename": "1315 (2025-05-05)RAW.csv", + "labID": "1315", + "date": "2025-05-05", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7137/accel/ses-1/sub-7137_ses-1_accel.csv" + } + ], + "8042": [ + { + "filename": "1320 (2025-05-20)RAW.csv", + "labID": "1320", + "date": "2025-05-20", + "run": 1, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8042/accel/ses-1/sub-8042_ses-1_accel.csv" + } + ], + "7138": [ + { + "filename": "1321 (2025-05-17)RAW.csv", + "labID": "1321", + "date": "2025-05-17", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7138/accel/ses-1/sub-7138_ses-1_accel.csv" + } + ], + "7139": [ + { + "filename": "1322 (2025-05-10)RAW.csv", + "labID": "1322", + "date": "2025-05-10", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7139/accel/ses-1/sub-7139_ses-1_accel.csv" + } + ], + "7140": [ + { + "filename": "1323 (2025-05-10)RAW.csv", + "labID": "1323", + "date": "2025-05-10", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7140/accel/ses-1/sub-7140_ses-1_accel.csv" + } + ], + "7141": [ + { + "filename": "1324 (2025-05-17)RAW.csv", + "labID": "1324", + "date": "2025-05-17", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7141/accel/ses-1/sub-7141_ses-1_accel.csv" + } + ], + "7142": [ + { + "filename": "1325 (2025-05-21)RAW.csv", + "labID": "1325", + "date": "2025-05-21", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7142/accel/ses-1/sub-7142_ses-1_accel.csv" + } + ], + "7145": [ + { + "filename": "1327 (2025-05-10)RAW.csv", + "labID": "1327", + "date": "2025-05-10", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7145/accel/ses-1/sub-7145_ses-1_accel.csv" + } + ], + "7147": [ + { + "filename": "1328 (2025-06-24)RAW.csv", + "labID": "1328", + "date": "2025-06-24", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7147/accel/ses-1/sub-7147_ses-1_accel.csv" + } + ], + "7150": [ + { + "filename": "1332 (2025-05-24)RAW.csv", + "labID": "1332", + "date": "2025-05-24", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7150/accel/ses-1/sub-7150_ses-1_accel.csv" + } + ], + "7151": [ + { + "filename": "1333 (2025-05-13)RAW.csv", + "labID": "1333", + "date": "2025-05-13", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7151/accel/ses-1/sub-7151_ses-1_accel.csv" + } + ], + "7152": [ + { + "filename": "1334 (2025-05-24)RAW.csv", + "labID": "1334", + "date": "2025-05-24", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7152/accel/ses-1/sub-7152_ses-1_accel.csv" + } + ], + "8048": [ + { + "filename": "1336 (2025-06-06)RAW.csv", + "labID": "1336", + "date": "2025-06-06", + "run": 1, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8048/accel/ses-1/sub-8048_ses-1_accel.csv" + } + ], + "7153": [ + { + "filename": "1337 (2025-05-17)RAW.csv", + "labID": "1337", + "date": "2025-05-17", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7153/accel/ses-1/sub-7153_ses-1_accel.csv" + } + ], + "7155": [ + { + "filename": "1340 (2025-06-03)RAW.csv", + "labID": "1340", + "date": "2025-06-03", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7155/accel/ses-1/sub-7155_ses-1_accel.csv" + } + ], + "7156": [ + { + "filename": "1342 (2025-05-24)RAW.csv", + "labID": "1342", + "date": "2025-05-24", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7156/accel/ses-1/sub-7156_ses-1_accel.csv" + } + ], + "7157": [ + { + "filename": "1344 (2025-05-16)RAW.csv", + "labID": "1344", + "date": "2025-05-16", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7157/accel/ses-1/sub-7157_ses-1_accel.csv" + } + ], + "7158": [ + { + "filename": "1348 (2025-06-05)RAW.csv", + "labID": "1348", + "date": "2025-06-05", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7158/accel/ses-1/sub-7158_ses-1_accel.csv" + } + ], + "7159": [ + { + "filename": "1349 (2025-06-05)RAW.csv", + "labID": "1349", + "date": "2025-06-05", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7159/accel/ses-1/sub-7159_ses-1_accel.csv" + } + ], + "7160": [ + { + "filename": "1350 (2025-06-04)RAW.csv", + "labID": "1350", + "date": "2025-06-04", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7160/accel/ses-1/sub-7160_ses-1_accel.csv" + } + ], + "7164": [ + { + "filename": "1354 (2025-06-12)RAW.csv", + "labID": "1354", + "date": "2025-06-12", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7164/accel/ses-1/sub-7164_ses-1_accel.csv" + } + ], + "7165": [ + { + "filename": "1355 (2025-06-12)RAW.csv", + "labID": "1355", + "date": "2025-06-12", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7165/accel/ses-1/sub-7165_ses-1_accel.csv" + } + ], + "7161": [ + { + "filename": "1356 (2025-06-10)RAW.csv", + "labID": "1356", + "date": "2025-06-10", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7161/accel/ses-1/sub-7161_ses-1_accel.csv" + } + ], + "7167": [ + { + "filename": "1358 (2025-06-21)RAW.csv", + "labID": "1358", + "date": "2025-06-21", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7167/accel/ses-1/sub-7167_ses-1_accel.csv" + } + ], + "7168": [ + { + "filename": "1359 (2025-06-20)RAW.csv", + "labID": "1359", + "date": "2025-06-20", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7168/accel/ses-1/sub-7168_ses-1_accel.csv" + } + ], + "7170": [ + { + "filename": "1361 (2025-06-10)RAW.csv", + "labID": "1361", + "date": "2025-06-10", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7170/accel/ses-1/sub-7170_ses-1_accel.csv" + } + ], + "7172": [ + { + "filename": "1363 (2025-06-18)RAW.csv", + "labID": "1363", + "date": "2025-06-18", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7172/accel/ses-1/sub-7172_ses-1_accel.csv" + } + ], + "7174": [ + { + "filename": "1365 (2025-06-28)RAW.csv", + "labID": "1365", + "date": "2025-06-28", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7174/accel/ses-1/sub-7174_ses-1_accel.csv" + } + ], + "6011": [ + { + "filename": "1093 (2024-08-09)RAW.csv", + "labID": "1093", + "date": "2024-08-09", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-6011/accel/ses-1/sub-6011_ses-1_accel.csv" + } + ], + "6013": [ + { + "filename": "1098 (2024-08-14)RAW.csv", + "labID": "1098", + "date": "2024-08-14", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-6013/accel/ses-1/sub-6013_ses-1_accel.csv" + } + ], + "7001": [ + { + "filename": "1111 (2024-09-05)RAW.csv", + "labID": "1111", + "date": "2024-09-05", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7001/accel/ses-1/sub-7001_ses-1_accel.csv" + } + ], + "7002": [ + { + "filename": "1112 (2024-08-07)RAW.csv", + "labID": "1112", + "date": "2024-08-07", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7002/accel/ses-1/sub-7002_ses-1_accel.csv" + } + ], + "7004": [ + { + "filename": "1114 (2024-09-04)RAW.csv", + "labID": "1114", + "date": "2024-09-04", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7004/accel/ses-1/sub-7004_ses-1_accel.csv" + } + ], + "7006": [ + { + "filename": "1115 (2024-08-05)RAW.csv", + "labID": "1115", + "date": "2024-08-05", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7006/accel/ses-1/sub-7006_ses-1_accel.csv" + } + ], + "7012": [ + { + "filename": "1116 (2024-08-29)RAW.csv", + "labID": "1116", + "date": "2024-08-29", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7012/accel/ses-1/sub-7012_ses-1_accel.csv" + } + ], + "7009": [ + { + "filename": "1117 (2024-08-07)RAW.csv", + "labID": "1117", + "date": "2024-08-07", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7009/accel/ses-1/sub-7009_ses-1_accel.csv" + } + ], + "7015": [ + { + "filename": "1120 (2024-08-13)RAW.csv", + "labID": "1120", + "date": "2024-08-13", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7015/accel/ses-1/sub-7015_ses-1_accel.csv" + } + ], + "7016": [ + { + "filename": "1121 (2024-09-03)RAW.csv", + "labID": "1121", + "date": "2024-09-03", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7016/accel/ses-1/sub-7016_ses-1_accel.csv" + } + ], + "7017": [ + { + "filename": "1122 (2024-08-22)RAW.csv", + "labID": "1122", + "date": "2024-08-22", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7017/accel/ses-1/sub-7017_ses-1_accel.csv" + } + ], + "8001": [ + { + "filename": "1123 (2024-09-20)RAW.csv", + "labID": "1123", + "date": "2024-09-20", + "run": 1, + "study": "int", + "file_path": "/mnt/lss/Projects/BOOST/InterventionStudy/3-experiment/data/act-int-test/sub-8001/accel/ses-1/sub-8001_ses-1_accel.csv" + } + ], + "7019": [ + { + "filename": "1130 (2024-09-24)RAW.csv", + "labID": "1130", + "date": "2024-09-24", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7019/accel/ses-1/sub-7019_ses-1_accel.csv" + } + ], + "7020": [ + { + "filename": "1131 (2024-10-08)RAW.csv", + "labID": "1131", + "date": "2024-10-08", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7020/accel/ses-1/sub-7020_ses-1_accel.csv" + } + ], + "7021": [ + { + "filename": "1132 (2024-10-02)RAW.csv", + "labID": "1132", + "date": "2024-10-02", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7021/accel/ses-1/sub-7021_ses-1_accel.csv" + } + ], + "7022": [ + { + "filename": "1133 (2024-10-01)RAW.csv", + "labID": "1133", + "date": "2024-10-01", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7022/accel/ses-1/sub-7022_ses-1_accel.csv" + } + ], + "7024": [ + { + "filename": "1136 (2024-10-11)RAW.csv", + "labID": "1136", + "date": "2024-10-11", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7024/accel/ses-1/sub-7024_ses-1_accel.csv" + } + ], + "7025": [ + { + "filename": "1137 (2024-10-11)RAW.csv", + "labID": "1137", + "date": "2024-10-11", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7025/accel/ses-1/sub-7025_ses-1_accel.csv" + } + ], + "7026": [ + { + "filename": "1138 (2024-10-24)RAW.csv", + "labID": "1138", + "date": "2024-10-24", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7026/accel/ses-1/sub-7026_ses-1_accel.csv" + } + ], + "7028": [ + { + "filename": "1140 (2024-10-28)RAW.csv", + "labID": "1140", + "date": "2024-10-28", + "run": 1, + "study": "obs", + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7028/accel/ses-1/sub-7028_ses-1_accel.csv" + } + ], + "7030": [ + { + "filename": "1142 (2024-10-24)RAW.csv", + "labID": "1142", + "date": "2024-10-24", "run": 1, "study": "obs", - "file_path": "/mnt/nfs/lss/vosslabhpc/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-final-test-2/sub-7745/accel/ses-1/sub-7745_ses-1_accel.csv" + "file_path": "/mnt/lss/Projects/BOOST/ObservationalStudy/3-experiment/data/act-obs-test/sub-7030/accel/ses-1/sub-7030_ses-1_accel.csv" } ] } \ No newline at end of file