From dde943785b670854e66fa4433f020a1bfb13b33b Mon Sep 17 00:00:00 2001 From: julia-pfarr Date: Fri, 5 Jul 2024 14:34:36 +0200 Subject: [PATCH] change how/if TaskName is extracted --- eye2bids/_base.py | 2 ++ eye2bids/edf2bids.py | 10 +++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/eye2bids/_base.py b/eye2bids/_base.py index f32cd3b..35514df 100644 --- a/eye2bids/_base.py +++ b/eye2bids/_base.py @@ -16,6 +16,7 @@ class BasePhysioEventsJson(dict[str, Any]): input_file: Path two_eyes: bool + TaskName: bool def __init__(self, metadata: None | dict[str, Any] = None) -> None: @@ -48,6 +49,7 @@ def update_from_metadata(self, metadata: None | dict[str, Any] = None) -> None: "ScreenRefreshRate": metadata.get("ScreenRefreshRate"), "ScreenSize": metadata.get("ScreenSize"), } + self["TaskName"] = metadata.get("TaskName") def output_filename(self, recording: str | None = None) -> str: """Generate output filename.""" diff --git a/eye2bids/edf2bids.py b/eye2bids/edf2bids.py index 5a2ccb0..0813ba2 100644 --- a/eye2bids/edf2bids.py +++ b/eye2bids/edf2bids.py @@ -251,8 +251,7 @@ def _extract_ScreenResolution(df: pd.DataFrame) -> list[int]: .split(" ") ) return [eval(i) for i in list_res] - - + def _extract_TaskName(events: list[str]) -> str: return ( " ".join([ts for ts in events if ts.startswith("** RECORDED BY")]) @@ -260,6 +259,8 @@ def _extract_TaskName(events: list[str]) -> str: .replace("\n", "") ) +def _has_TaskName(events: str) -> bool: + return not _extract_TaskName(events) == "" def _extract_StartTime(events: list[str]) -> int: StartTime = ( @@ -520,8 +521,11 @@ def edf2bids( events_json.input_file = input_file events_json.two_eyes = _2eyesmode(df_ms_reduced) + events_json.has_TaskName = _has_TaskName(events) + + if events_json.has_TaskName: + events_json["TaskName"] = _extract_TaskName(events) - events_json["TaskName"] = _extract_TaskName(events) events_json["StimulusPresentation"]["ScreenResolution"] = _extract_ScreenResolution( df_ms_reduced )