Source code for allensdk.brain_observatory.behavior.data_objects.metadata.ophys_experiment_metadata.ophys_session_id

from pynwb import NWBFile

from allensdk.core import DataObject
from allensdk.core import \
    JsonReadableInterface, LimsReadableInterface, NwbReadableInterface
from allensdk.internal.api import PostgresQueryMixin


[docs]class OphysSessionId(DataObject, LimsReadableInterface, JsonReadableInterface, NwbReadableInterface): """"Ophys session id""" def __init__(self, session_id: int): super().__init__(name='session_id', value=session_id)
[docs] @classmethod def from_lims(cls, ophys_experiment_id: int, lims_db: PostgresQueryMixin) -> "OphysSessionId": query = """ SELECT oe.ophys_session_id FROM ophys_experiments oe WHERE id = {}; """.format(ophys_experiment_id) session_id = lims_db.fetchone(query, strict=False) return cls(session_id=session_id)
[docs] @classmethod def from_json(cls, dict_repr: dict) -> "OphysSessionId": return cls(session_id=dict_repr['ophys_session_id'])
[docs] @classmethod def from_nwb(cls, nwbfile: NWBFile) -> "OphysSessionId": metadata = nwbfile.lab_meta_data['metadata'] return cls(session_id=metadata.ophys_session_id)