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

from allensdk.brain_observatory.behavior.data_objects.metadata.\
    behavior_metadata.project_code import ProjectCode
from allensdk.internal.api import PostgresQueryMixin


[docs]class OphysProjectCode(ProjectCode): """Unique identifier for the project this OphysExperiment is associated with. Project ids can be used internally to extract a project code. If the returned project id is null/None, return "Not available" """
[docs] @classmethod def from_lims(cls, ophys_experiment_id: int, lims_db: PostgresQueryMixin) -> "OphysProjectCode": query = f""" SELECT ps.code AS project_code FROM ophys_sessions os LEFT JOIN projects ps on os.project_id = ps.id WHERE os.id = ( SELECT oe.ophys_session_id FROM ophys_experiments oe WHERE oe.id = {ophys_experiment_id} ) """ project_code = lims_db.fetchone(query, strict=True) return cls(project_code=project_code)