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)