def from_json(cls, session_data: dict, monitor_delay: Optional[float] = None) \ -> "BehaviorSession": """ Parameters ---------- session_data Dict of input data necessary to construct a session monitor_delay Monitor delay. If not provided, will use an estimate. To provide this value, see for example allensdk.brain_observatory.behavior.data_objects.stimuli.util. calculate_monitor_delay Returns ------- `BehaviorSession` instance """ behavior_session_id = BehaviorSessionId.from_json( dict_repr=session_data) stimulus_file = StimulusFile.from_json(dict_repr=session_data) stimulus_timestamps = StimulusTimestamps.from_json( dict_repr=session_data) running_acquisition = RunningAcquisition.from_json( dict_repr=session_data) raw_running_speed = RunningSpeed.from_json(dict_repr=session_data, filtered=False) running_speed = RunningSpeed.from_json(dict_repr=session_data) metadata = BehaviorMetadata.from_json(dict_repr=session_data) if monitor_delay is None: monitor_delay = cls._get_monitor_delay() licks, rewards, stimuli, task_parameters, trials = \ cls._read_data_from_stimulus_file( stimulus_file=stimulus_file, stimulus_timestamps=stimulus_timestamps, trial_monitor_delay=monitor_delay ) date_of_acquisition = DateOfAcquisition.from_json( dict_repr=session_data)\ .validate( stimulus_file=stimulus_file, behavior_session_id=behavior_session_id.value) return BehaviorSession(behavior_session_id=behavior_session_id, stimulus_timestamps=stimulus_timestamps, running_acquisition=running_acquisition, raw_running_speed=raw_running_speed, running_speed=running_speed, metadata=metadata, licks=licks, rewards=rewards, stimuli=stimuli, task_parameters=task_parameters, trials=trials, date_of_acquisition=date_of_acquisition)
def from_json(cls, dict_repr: dict, filtered: bool = True, zscore_threshold: float = 10.0) -> "RunningSpeed": stimulus_file = StimulusFile.from_json(dict_repr) stimulus_timestamps = StimulusTimestamps.from_json(dict_repr) running_speed = cls._get_running_speed_df(stimulus_file, stimulus_timestamps, filtered, zscore_threshold) return cls(running_speed=running_speed, stimulus_file=stimulus_file, stimulus_timestamps=stimulus_timestamps, filtered=filtered)
def from_json( cls, dict_repr: dict, ) -> "RunningAcquisition": stimulus_file = StimulusFile.from_json(dict_repr) stimulus_timestamps = StimulusTimestamps.from_json(dict_repr) running_acq_df = get_running_df( data=stimulus_file.data, time=stimulus_timestamps.value, ) running_acq_df.drop("speed", axis=1, inplace=True) return cls( running_acquisition=running_acq_df, stimulus_file=stimulus_file, stimulus_timestamps=stimulus_timestamps, )