aind_data_schema.ephys package#

Submodules#

aind_data_schema.ephys.ephys_rig module#

ephys rig schemas

class aind_data_schema.ephys.ephys_rig.EphysAssembly(*, ephys_assembly_name: str, manipulator: aind_data_schema.ephys.ephys_rig.Manipulator, probes: List[aind_data_schema.ephys.ephys_rig.EphysProbe])#

Bases: aind_data_schema.base.AindModel

Module for electrophysiological recording

ephys_assembly_name: str#
manipulator: aind_data_schema.ephys.ephys_rig.Manipulator#
probes: List[aind_data_schema.ephys.ephys_rig.EphysProbe]#
class aind_data_schema.ephys.ephys_rig.EphysProbe(*, name: Optional[str] = None, serial_number: Optional[str] = None, manufacturer: Optional[aind_data_schema.device.Manufacturer] = None, model: Optional[str] = None, notes: Optional[str] = None, probe_model: aind_data_schema.ephys.ephys_rig.ProbeModel, lasers: Optional[List[aind_data_schema.device.Laser]] = None, headstage: Optional[aind_data_schema.ephys.ephys_rig.Headstage] = None)#

Bases: aind_data_schema.device.Device

Named probe used in an ephys experiment

headstage: Optional[aind_data_schema.ephys.ephys_rig.Headstage]#
lasers: Optional[List[aind_data_schema.device.Laser]]#
probe_model: aind_data_schema.ephys.ephys_rig.ProbeModel#
class aind_data_schema.ephys.ephys_rig.EphysRig(*, describedBy: str = 'https://raw.githubusercontent.com/AllenNeuralDynamics/aind-data-schema/main/src/aind_data_schema/ephys/ephys_rig.py', schema_version: str = '0.6.3', rig_id: str, ephys_assemblies: Optional[types.ConstrainedListValue[aind_data_schema.ephys.ephys_rig.EphysAssembly]] = None, stick_microscopes: Optional[List[aind_data_schema.ephys.ephys_rig.StickMicroscopeAssembly]] = None, laser_assemblies: Optional[types.ConstrainedListValue[aind_data_schema.ephys.ephys_rig.LaserAssembly]] = None, cameras: Optional[types.ConstrainedListValue[aind_data_schema.device.CameraAssembly]] = None, visual_monitors: Optional[types.ConstrainedListValue[aind_data_schema.device.Monitor]] = None, mouse_platform: Optional[Union[aind_data_schema.device.Tube, aind_data_schema.device.Treadmill, aind_data_schema.device.Disc]] = None, daqs: Optional[List[Union[aind_data_schema.device.HarpDevice, aind_data_schema.ephys.ephys_rig.NeuropixelsBasestation, aind_data_schema.ephys.ephys_rig.OpenEphysAcquisitionBoard, aind_data_schema.device.DAQDevice]]] = None, additional_devices: Optional[types.ConstrainedListValue[aind_data_schema.device.Device]] = None, notes: Optional[str] = None)#

Bases: aind_data_schema.base.AindCoreModel

Description of an ephys rig

additional_devices: Optional[List[aind_data_schema.device.Device]]#
cameras: Optional[List[aind_data_schema.device.CameraAssembly]]#
daqs: Optional[List[Union[aind_data_schema.device.HarpDevice, aind_data_schema.ephys.ephys_rig.NeuropixelsBasestation, aind_data_schema.ephys.ephys_rig.OpenEphysAcquisitionBoard, aind_data_schema.device.DAQDevice]]]#
describedBy: str#
ephys_assemblies: Optional[List[aind_data_schema.ephys.ephys_rig.EphysAssembly]]#
laser_assemblies: Optional[List[aind_data_schema.ephys.ephys_rig.LaserAssembly]]#
mouse_platform: Optional[Union[aind_data_schema.device.Tube, aind_data_schema.device.Treadmill, aind_data_schema.device.Disc]]#
notes: Optional[str]#
rig_id: str#
schema_version: str#
stick_microscopes: Optional[List[aind_data_schema.ephys.ephys_rig.StickMicroscopeAssembly]]#
classmethod validate_device_names(values)#

validate that all DAQ channels are connected to devices that actually exist

classmethod validate_probe_names(values)#

validate that all DAQ probe ports are connected to probes that actually exist

visual_monitors: Optional[List[aind_data_schema.device.Monitor]]#
class aind_data_schema.ephys.ephys_rig.Headstage(*, name: Optional[str] = None, serial_number: Optional[str] = None, manufacturer: Optional[aind_data_schema.device.Manufacturer] = None, model: Optional[str] = None, notes: Optional[str] = None, headstage_model: Optional[aind_data_schema.ephys.ephys_rig.HeadstageModel] = None)#

Bases: aind_data_schema.device.Device

Headstage used with an ephys probe

headstage_model: Optional[aind_data_schema.ephys.ephys_rig.HeadstageModel]#
class aind_data_schema.ephys.ephys_rig.HeadstageModel(value)#

Bases: enum.Enum

Headstage model name

RHD_16_CH = 'Intan RHD 16-channel'#
RHD_32_CH = 'Intan RHD 32-channel'#
RHD_64_CH = 'Intan RHD 64-channel'#
class aind_data_schema.ephys.ephys_rig.LaserAssembly(*, laser_assembly_name: str, manipulator: aind_data_schema.ephys.ephys_rig.Manipulator, lasers: List[aind_data_schema.device.Laser])#

Bases: aind_data_schema.base.AindModel

Assembly for optogenetic stimulation

laser_assembly_name: str#
lasers: List[aind_data_schema.device.Laser]#
manipulator: aind_data_schema.ephys.ephys_rig.Manipulator#
class aind_data_schema.ephys.ephys_rig.Manipulator(*, name: Optional[str] = None, serial_number: Optional[str] = None, manufacturer: typing_extensions.Literal[New Scale Technologies], model: Optional[str] = None, notes: Optional[str] = None)#

Bases: aind_data_schema.device.Device

Manipulator used on a dome module

manufacturer: typing_extensions.Literal[New Scale Technologies]#
class aind_data_schema.ephys.ephys_rig.NeuropixelsBasestation(*, name: Optional[str] = None, serial_number: Optional[str] = None, manufacturer: aind_data_schema.device.Manufacturer = Manufacturer.IMEC, model: Optional[str] = None, notes: Optional[str] = None, data_interface: aind_data_schema.device.DataInterface = 'PXI', computer_name: str, channels: Optional[List[aind_data_schema.device.DAQChannel]] = None, basestation_firmware_version: str, bsc_firmware_version: str, slot: int, ports: List[aind_data_schema.ephys.ephys_rig.ProbePort])#

Bases: aind_data_schema.device.DAQDevice

PXI-based Neuropixels DAQ

basestation_firmware_version: str#
bsc_firmware_version: str#
data_interface: DataInterface#
manufacturer: Manufacturer#
ports: List[ProbePort]#
slot: int#
class aind_data_schema.ephys.ephys_rig.OpenEphysAcquisitionBoard(*, name: Optional[str] = None, serial_number: Optional[str] = None, manufacturer: aind_data_schema.device.Manufacturer = Manufacturer.OEPS, model: Optional[str] = None, notes: Optional[str] = None, data_interface: aind_data_schema.device.DataInterface = 'USB', computer_name: str, channels: Optional[List[aind_data_schema.device.DAQChannel]] = None, ports: List[aind_data_schema.ephys.ephys_rig.ProbePort])#

Bases: aind_data_schema.device.DAQDevice

Multichannel electrophysiology DAQ

data_interface: DataInterface#
manufacturer: Manufacturer#
ports: List[ProbePort]#
class aind_data_schema.ephys.ephys_rig.ProbeModel(value)#

Bases: enum.Enum

Probe model name

MI_ULED_PROBE = 'Michigan uLED Probe (Version 1)'#
MP_PHOTONIC_V1 = 'MPI Photonic Probe (Version 1)'#
NP1 = 'Neuropixels 1.0'#
NP2_MULTI_SHANK = 'Neuropixels 2.0 (Multi Shank)'#
NP2_QUAD_BASE = 'Neuropixels 2.0 (Quad Base)'#
NP2_SINGLE_SHANK = 'Neuropixels 2.0 (Single Shank)'#
NP_OPTO_DEMONSTRATOR = 'Neuropixels Opto (Demonstrator)'#
NP_UHD_FIXED = 'Neuropixels UHD (Fixed)'#
NP_UHD_SWITCHABLE = 'Neuropixels UHD (Switchable)'#
class aind_data_schema.ephys.ephys_rig.ProbePort(*, index: int, probes: List[str])#

Bases: aind_data_schema.base.AindModel

Port for a probe connection

index: int#
probes: List[str]#
class aind_data_schema.ephys.ephys_rig.StickMicroscopeAssembly(*, scope_assembly_name: str, camera: aind_data_schema.device.Camera, lens: aind_data_schema.device.Lens)#

Bases: aind_data_schema.base.AindModel

Stick microscope used to monitor probes during insertion

camera: aind_data_schema.device.Camera#
lens: aind_data_schema.device.Lens#
scope_assembly_name: str#

aind_data_schema.ephys.ephys_session module#

ephys session description and related objects

class aind_data_schema.ephys.ephys_session.Camera(*, name: str)#

Bases: aind_data_schema.base.AindModel

Camera recorded in a Stream

name: str#
class aind_data_schema.ephys.ephys_session.CcfCoords(*, ml: float, ap: float, dv: float, unit: aind_data_schema.device.SizeUnit = SizeUnit.UM, ccf_version: aind_data_schema.ephys.ephys_session.CcfVersion = CcfVersion.CCFv3)#

Bases: aind_data_schema.base.AindModel

Coordinates in CCF template space

ap: float#
ccf_version: aind_data_schema.ephys.ephys_session.CcfVersion#
dv: float#
ml: float#
unit: aind_data_schema.device.SizeUnit#
class aind_data_schema.ephys.ephys_session.CcfVersion(value)#

Bases: enum.Enum

CCF version

CCFv3 = 'CCFv3'#
class aind_data_schema.ephys.ephys_session.DAQDevice(*, name: str)#

Bases: aind_data_schema.base.AindModel

Data acquisition device recorded in a Stream

name: str#
class aind_data_schema.ephys.ephys_session.DomeModule(*, assembly_name: str, arc_angle: float, module_angle: float, angle_unit: aind_data_schema.device.AngleUnit = AngleUnit.DEG, rotation_angle: Optional[float] = 0.0, coordinate_transform: Optional[str] = None, calibration_date: Optional[datetime.datetime] = None, notes: Optional[str] = None)#

Bases: aind_data_schema.base.AindModel

Movable module that is mounted on the ephys dome insertion system

angle_unit: aind_data_schema.device.AngleUnit#
arc_angle: float#
assembly_name: str#
calibration_date: Optional[datetime.datetime]#
coordinate_transform: Optional[str]#
module_angle: float#
notes: Optional[str]#
rotation_angle: Optional[float]#
class aind_data_schema.ephys.ephys_session.EphysModule(*, assembly_name: str, arc_angle: float, module_angle: float, angle_unit: aind_data_schema.device.AngleUnit = AngleUnit.DEG, rotation_angle: Optional[float] = 0.0, coordinate_transform: Optional[str] = None, calibration_date: Optional[datetime.datetime] = None, notes: Optional[str] = None, primary_targeted_structure: str, targeted_ccf_coordinates: Optional[List[aind_data_schema.ephys.ephys_session.CcfCoords]] = None, manipulator_coordinates: aind_data_schema.device.Coordinates3d, ephys_probes: List[aind_data_schema.ephys.ephys_session.EphysProbe])#

Bases: aind_data_schema.ephys.ephys_session.ManipulatorModule

Probe recorded in a Stream

ephys_probes: List[aind_data_schema.ephys.ephys_session.EphysProbe]#
class aind_data_schema.ephys.ephys_session.EphysProbe(*, name: str, other_targeted_structures: Optional[List[str]] = None)#

Bases: aind_data_schema.base.AindModel

Probes in a EphysProbeModule

name: str#
other_targeted_structures: Optional[List[str]]#
class aind_data_schema.ephys.ephys_session.EphysSession(*, describedBy: str = 'https://raw.githubusercontent.com/AllenNeuralDynamics/aind-data-schema/main/src/aind_data_schema/ephys/ephys_session.py', schema_version: str = '0.4.5', experimenter_full_name: List[str], session_start_time: datetime.datetime, session_end_time: datetime.datetime, subject_id: str, session_type: aind_data_schema.ephys.ephys_session.SessionType, session_description: Optional[str] = None, iacuc_protocol: Optional[str] = None, rig_id: str, stick_microscopes: Optional[List[aind_data_schema.ephys.ephys_session.DomeModule]], data_streams: types.ConstrainedListValue[aind_data_schema.ephys.ephys_session.Stream], ccf_coordinate_transform: Optional[str] = None, notes: Optional[str] = None)#

Bases: aind_data_schema.base.AindCoreModel

Description of an ephys recording session

ccf_coordinate_transform: Optional[str]#
data_streams: List[aind_data_schema.ephys.ephys_session.Stream]#
describedBy: str#
experimenter_full_name: List[str]#
iacuc_protocol: Optional[str]#
notes: Optional[str]#
rig_id: str#
schema_version: str#
session_description: Optional[str]#
session_end_time: datetime.datetime#
session_start_time: datetime.datetime#
session_type: aind_data_schema.ephys.ephys_session.SessionType#
stick_microscopes: Optional[List[aind_data_schema.ephys.ephys_session.DomeModule]]#
subject_id: str#
class aind_data_schema.ephys.ephys_session.Laser(*, name: str, power_level: float, power_unit: aind_data_schema.device.PowerUnit = PowerUnit.MW)#

Bases: aind_data_schema.base.AindModel

Laser used in a LaserModule

name: str#
power_level: float#
power_unit: aind_data_schema.device.PowerUnit#
class aind_data_schema.ephys.ephys_session.LaserModule(*, assembly_name: str, arc_angle: float, module_angle: float, angle_unit: aind_data_schema.device.AngleUnit = AngleUnit.DEG, rotation_angle: Optional[float] = 0.0, coordinate_transform: Optional[str] = None, calibration_date: Optional[datetime.datetime] = None, notes: Optional[str] = None, primary_targeted_structure: str, targeted_ccf_coordinates: Optional[List[aind_data_schema.ephys.ephys_session.CcfCoords]] = None, manipulator_coordinates: aind_data_schema.device.Coordinates3d, lasers: List[aind_data_schema.ephys.ephys_session.Laser])#

Bases: aind_data_schema.ephys.ephys_session.ManipulatorModule

Laser Module used in a Stream

lasers: List[aind_data_schema.ephys.ephys_session.Laser]#
class aind_data_schema.ephys.ephys_session.ManipulatorModule(*, assembly_name: str, arc_angle: float, module_angle: float, angle_unit: aind_data_schema.device.AngleUnit = AngleUnit.DEG, rotation_angle: Optional[float] = 0.0, coordinate_transform: Optional[str] = None, calibration_date: Optional[datetime.datetime] = None, notes: Optional[str] = None, primary_targeted_structure: str, targeted_ccf_coordinates: Optional[List[aind_data_schema.ephys.ephys_session.CcfCoords]] = None, manipulator_coordinates: aind_data_schema.device.Coordinates3d)#

Bases: aind_data_schema.ephys.ephys_session.DomeModule

A module connected to a 3-axis manipulator

manipulator_coordinates: aind_data_schema.device.Coordinates3d#
primary_targeted_structure: str#
targeted_ccf_coordinates: Optional[List[aind_data_schema.ephys.ephys_session.CcfCoords]]#
class aind_data_schema.ephys.ephys_session.SessionType(value)#

Bases: enum.Enum

Session type name

OPTO = 'Optotagging'#
RF_MAPPING = 'Receptive field mapping'#
TEST = 'Test'#
class aind_data_schema.ephys.ephys_session.Stream(*, stream_start_time: datetime.datetime, stream_end_time: datetime.datetime, ephys_modules: Optional[types.ConstrainedListValue[aind_data_schema.ephys.ephys_session.EphysModule]] = None, laser_modules: Optional[types.ConstrainedListValue[aind_data_schema.ephys.ephys_session.LaserModule]] = None, daqs: Optional[types.ConstrainedListValue[aind_data_schema.ephys.ephys_session.DAQDevice]] = None, cameras: Optional[types.ConstrainedListValue[aind_data_schema.ephys.ephys_session.Camera]] = None, stimulus_presentations: Optional[List[aind_data_schema.stimulus.StimulusPresentation]] = None, notes: Optional[str] = None)#

Bases: aind_data_schema.base.AindModel

Stream of data with a start and stop time

cameras: Optional[List[aind_data_schema.ephys.ephys_session.Camera]]#
daqs: Optional[List[aind_data_schema.ephys.ephys_session.DAQDevice]]#
ephys_modules: Optional[List[aind_data_schema.ephys.ephys_session.EphysModule]]#
laser_modules: Optional[List[aind_data_schema.ephys.ephys_session.LaserModule]]#
notes: Optional[str]#
stimulus_presentations: Optional[List[aind_data_schema.stimulus.StimulusPresentation]]#
stream_end_time: datetime.datetime#
stream_start_time: datetime.datetime#

Module contents#

ephys schemas