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)