Source code for allensdk.brain_observatory.behavior.data_objects.metadata.ophys_experiment_metadata.ophys_container_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 OphysContainerId(DataObject, LimsReadableInterface, JsonReadableInterface, NwbReadableInterface): """"experiment container id""" def __init__(self, ophys_container_id: int): super().__init__(name='ophys_container_id', value=ophys_container_id)
[docs] @classmethod def from_lims(cls, ophys_experiment_id: int, lims_db: PostgresQueryMixin) -> "ExperimentContainerId": query = """ SELECT visual_behavior_experiment_container_id FROM ophys_experiments_visual_behavior_experiment_containers WHERE ophys_experiment_id = {}; """.format(ophys_experiment_id) container_id = lims_db.fetchone(query, strict=False) return cls(ophys_container_id=container_id)
[docs] @classmethod def from_json(cls, dict_repr: dict) -> "ExperimentContainerId": return cls(ophys_container_id=dict_repr['container_id'])
[docs] @classmethod def from_nwb(cls, nwbfile: NWBFile) -> "ExperimentContainerId": try: metadata = nwbfile.lab_meta_data['metadata'] return cls(ophys_container_id=metadata.ophys_container_id) except AttributeError: return None