From c576ba9a782c03e13cb8aebbb4740d690e91cee0 Mon Sep 17 00:00:00 2001 From: Dan Birman Date: Sun, 3 May 2026 10:01:49 -0700 Subject: [PATCH 1/6] examples: draft instrument --- examples/isi_instrument.py | 273 +++++++++++++++++++++++++++++++++++++ 1 file changed, 273 insertions(+) create mode 100644 examples/isi_instrument.py diff --git a/examples/isi_instrument.py b/examples/isi_instrument.py new file mode 100644 index 000000000..0eab68819 --- /dev/null +++ b/examples/isi_instrument.py @@ -0,0 +1,273 @@ +"""Generates an example JSON file for an ISI (Intrinsic Signal Imaging) instrument + +Based on the ISI Full Rig BOM (AIBS part 0113_000-00, Rev A). +The rig consists of: + - ISI Table Assembly (0113_100-00) + - ISI System Structure (0113_200-00) + - Camera, Stage, and Mount Assembly (0113_300-00) + - Headframe Clamp Assembly (0113_400-00) + - ISI Eye Tracking Assembly (0123_500-00) + - Camera/Lens Assembly (0113_550-00) with tandem Nikon lenses and Andor Zyla sCMOS + - LED Light Ring Assembly (0113_530-00) +""" + +import argparse +from datetime import date + +from aind_data_schema_models.coordinates import AnatomicalRelative +from aind_data_schema_models.devices import ( + CameraChroma, + CameraTarget, + DataInterface, + DetectorType, + FilterType, +) +from aind_data_schema_models.modalities import Modality +from aind_data_schema_models.organizations import Organization +from aind_data_schema_models.units import FrequencyUnit, SizeUnit + +from aind_data_schema.components.coordinates import CoordinateSystemLibrary +from aind_data_schema.components.devices import ( + Camera, + CameraAssembly, + Computer, + DAQDevice, + Device, + Filter, + Lens, + LightEmittingDiode, + Monitor, + MotorizedStage, +) +from aind_data_schema.core.instrument import Instrument + +acquisition_computer = Computer( + name="Acquisition Computer", + notes="3U custom rackmount, Intel Xeon E5-1620v3 3.5GHz, Nvidia GT 730 2GB, Advantech PCIE-1672PC frame grabber, 240GB SSD + 2x1TB HDD. Pogo Linux quote 90846.", +) + +stim_computer = Computer( + name="Stim Computer", + notes="Intel Xeon E5-1620v3 3.5GHz, 16GB DDR4 ECC, Western Digital RE4 500GB. Pogo Linux quote 90854.", +) + +ni_daq = DAQDevice( + name="NI USB-6008", + manufacturer=Organization.NATIONAL_INSTRUMENTS, + model="USB-6008", + data_interface=DataInterface.USB, +) + +newport_linear_stage = MotorizedStage( + name="Newport M-ILS100PP Linear Stage", + manufacturer=Organization.MKS_NEWPORT, + model="M-ILS100PP", + travel=100, + travel_unit=SizeUnit.MM, + notes="High performance linear stage, 100 mm travel, stepper motor, metric. Controlled by Newport SMC100PP.", +) + +newport_motor_controller = Device( + name="Newport SMC100PP Motor Controller", + manufacturer=Organization.MKS_NEWPORT, + model="SMC100PP", + notes="Single-axis stepper motor controller/driver for Newport M-ILS100PP stage. USB interface.", +) + +isi_camera = Camera( + name="Andor Zyla 5.5 sCMOS", + manufacturer=Organization.OTHER, + model="Zyla 5.5 sCMOS", + detector_type=DetectorType.CAMERA, + data_interface=DataInterface.USB, + chroma=CameraChroma.BW, + notes="Andor Technology Zyla 5.5 sCMOS scientific camera used for intrinsic signal imaging. " + "Vendor part: Zyla 5.5 sCMOS. Manufacturer is Andor (Oxford Instruments).", +) + +isi_lens_35mm = Lens( + name="Nikon NIKKOR 35mm f/1.4", + manufacturer=Organization.NIKON, + model="NIKKOR 35mm f/1.4", + notes="Front lens of tandem-lens assembly for ISI. B&H part NI3514.", +) + +isi_lens_105mm = Lens( + name="Nikon Micro-NIKKOR 105mm f/2.8", + manufacturer=Organization.NIKON, + model="Micro-NIKKOR 105mm f/2.8", + notes="Rear lens of tandem-lens assembly for ISI, facing the camera. B&H part NI10528M.", +) + +isi_bandpass_filter = Filter( + name="Semrock FF01-630/92-50 Bandpass Filter", + manufacturer=Organization.SEMROCK, + model="FF01-630/92-50", + filter_type=FilterType.BANDPASS, + center_wavelength=630, + wavelength_unit=SizeUnit.NM, + notes="630/92 nm BrightLine single-band bandpass filter, 50 mm diameter, housed and mounted.", +) + +isi_camera_assembly = CameraAssembly( + name="ISI Brain Camera Assembly", + target=CameraTarget.BRAIN, + relative_position=[AnatomicalRelative.SUPERIOR], + camera=isi_camera, + lens=isi_lens_35mm, + filter=isi_bandpass_filter, +) + +eye_tracking_camera = Camera( + name="Allied Vision MAKO G-125C", + manufacturer=Organization.ALLIED, + model="MAKO G-125C", + detector_type=DetectorType.CAMERA, + data_interface=DataInterface.ETH, + chroma=CameraChroma.BW, + notes="Allied Vision Technologies GigE camera, PoE, 1.2 MP, 30 fps. Used for eye tracking. " + "1st Vision part AVT-GK-125C.", +) + +eye_tracking_lens = Lens( + name="InfiniStix 130mm W.D. 0.73x", + manufacturer=Organization.INFINITY_PHOTO_OPTICAL, + model="InfiniStix Proximity Series 130mm W.D./0.73x", + notes="Infinity Photo-Optical InfiniStix proximity series lens for eye tracking camera.", +) + +eye_tracking_camera_assembly = CameraAssembly( + name="Eye Tracking Camera Assembly", + target=CameraTarget.EYE, + relative_position=[AnatomicalRelative.ANTERIOR], + camera=eye_tracking_camera, + lens=eye_tracking_lens, +) + +eye_tracking_dichroic = Filter( + name="Semrock FF750-SDi02-25x36 Dichroic", + manufacturer=Organization.SEMROCK, + model="FF750-SDi02-25x36", + filter_type=FilterType.DICHROIC, + cut_off_wavelength=750, + wavelength_unit=SizeUnit.NM, + notes="Dichroic beamsplitter used in eye tracking light path to separate 850 nm IR illumination.", +) + +eye_tracking_ir_led = LightEmittingDiode( + name="Eye Tracking IR LED 850nm", + manufacturer=Organization.OTHER, + model="LZ4-40R608-0000", + wavelength=850, + wavelength_unit=SizeUnit.NM, + notes="LED Engin Inc. (now ams OSRAM) LZ4-40R608-0000 infrared LED for eye tracking illumination. " + "Digikey part 1537-1045-ND.", +) + +eye_tracking_collimating_lens = Lens( + name="Thorlabs LB1092-B-ML Bi-Convex Lens", + manufacturer=Organization.THORLABS, + model="LB1092-B-ML", + notes="Mounted N-BK7 bi-convex lens, 1/2 inch diameter, f=15.0 mm, ARC 650-1050 nm. " + "Used in eye tracking IR illumination path.", +) + +led_ring_green = LightEmittingDiode( + name="LED Ring Green 527nm", + manufacturer=Organization.OTHER, + model="C503B-GCN-CY0C0791", + wavelength=527, + wavelength_unit=SizeUnit.NM, + notes="Cree Inc. 5mm green clear LED, 527 nm, 30 deg. 19 units in LED light ring assembly (0113_530-00). " + "Digikey part C503B-GCN-CY0C0791-ND.", +) + +led_ring_red = LightEmittingDiode( + name="LED Ring Red 635nm", + manufacturer=Organization.OTHER, + model="HLMP-EG08-Y2000", + wavelength=635, + wavelength_unit=SizeUnit.NM, + notes="Avago Technologies 5mm red clear LED, 635 nm. 9 units in LED light ring assembly (0113_530-00). " + "Digikey part 516-1377-ND.", +) + +stimulus_monitor = Monitor( + name="ASUS PA248Q Stimulus Monitor", + manufacturer=Organization.ASUS, + model="PA248Q", + refresh_rate=60, + width=1920, + height=1200, + size_unit=SizeUnit.PX, + viewing_distance=15, + viewing_distance_unit=SizeUnit.CM, + relative_position=[AnatomicalRelative.ANTERIOR], + notes="24-inch widescreen LED-backlit LCD monitor used for visual stimulation. " + "2 units per rig. Viewing distance must be set at time of use.", +) + +temperature_controller = Device( + name="WPI ATC2000 Animal Temperature Controller", + manufacturer=Organization.OTHER, + model="ATC2000", + notes="World Precision Instruments ATC2000 animal temperature controller. " + "Regulates heating plate temperature during imaging.", +) + +somnosuite = Device( + name="Kent Scientific SomnoSuite", + manufacturer=Organization.OTHER, + model="SOMNO", + notes="Kent Scientific SomnoSuite low-flow digital vaporizer for isoflurane anesthesia delivery. " + "Used with low profile facemasks (SOMNO-0801) and induction chamber (SOMNO-0705).", +) + +physiosuite = Device( + name="Kent Scientific PhysioSuite", + manufacturer=Organization.OTHER, + model="PS-MSTAT-RT", + notes="Kent Scientific PhysioSuite with MouseSTAT pulse oximeter and heart rate monitor. " + "Includes RightTemp module for temperature monitoring.", +) + +inst = Instrument( + location="ISI Full Rig", + instrument_id="ISI1", + modification_date=date(2016, 7, 18), + modalities=[Modality.ISI], + coordinate_system=CoordinateSystemLibrary.BREGMA_ARI, + temperature_control=True, + notes="AIBS Intrinsic Signal Imaging full rig (0113_000-00, Rev A). " + "Tandem-lens ISI camera assembly uses Nikon 35mm f/1.4 (front) face-to-face with Nikon 105mm f/2.8 (rear). " + "Eye tracking arm (0123_500-00) uses 850 nm IR illumination with dichroic beamsplitter. " + "LED light ring contains 19x green (527 nm) and 9x red (635 nm) LEDs for cortical illumination.", + components=[ + acquisition_computer, + stim_computer, + ni_daq, + newport_linear_stage, + newport_motor_controller, + isi_camera_assembly, + isi_lens_105mm, + eye_tracking_camera_assembly, + eye_tracking_dichroic, + eye_tracking_ir_led, + eye_tracking_collimating_lens, + led_ring_green, + led_ring_red, + stimulus_monitor, + temperature_controller, + somnosuite, + physiosuite, + ], +) + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument("--output-dir", default=None, help="Output directory for generated JSON file") + args = parser.parse_args() + + serialized = inst.model_dump_json() + deserialized = Instrument.model_validate_json(serialized) + deserialized.write_standard_file(prefix="isi", output_directory=args.output_dir) From 0489dbbd501d75c3471117337094649eeecc70e5 Mon Sep 17 00:00:00 2001 From: Dan Birman Date: Fri, 15 May 2026 15:43:14 -0700 Subject: [PATCH 2/6] chore: bump version, clean up notes, add organizations --- examples/isi_instrument.py | 53 +++++++++++--------------------------- pyproject.toml | 2 +- 2 files changed, 16 insertions(+), 39 deletions(-) diff --git a/examples/isi_instrument.py b/examples/isi_instrument.py index 0eab68819..42a1095d2 100644 --- a/examples/isi_instrument.py +++ b/examples/isi_instrument.py @@ -64,39 +64,36 @@ model="M-ILS100PP", travel=100, travel_unit=SizeUnit.MM, - notes="High performance linear stage, 100 mm travel, stepper motor, metric. Controlled by Newport SMC100PP.", + notes="Controlled by Newport SMC100PP.", ) newport_motor_controller = Device( name="Newport SMC100PP Motor Controller", manufacturer=Organization.MKS_NEWPORT, model="SMC100PP", - notes="Single-axis stepper motor controller/driver for Newport M-ILS100PP stage. USB interface.", ) isi_camera = Camera( name="Andor Zyla 5.5 sCMOS", - manufacturer=Organization.OTHER, + manufacturer=Organization.OXFORD_INSTRUMENTS, model="Zyla 5.5 sCMOS", detector_type=DetectorType.CAMERA, data_interface=DataInterface.USB, chroma=CameraChroma.BW, - notes="Andor Technology Zyla 5.5 sCMOS scientific camera used for intrinsic signal imaging. " - "Vendor part: Zyla 5.5 sCMOS. Manufacturer is Andor (Oxford Instruments).", ) isi_lens_35mm = Lens( name="Nikon NIKKOR 35mm f/1.4", manufacturer=Organization.NIKON, model="NIKKOR 35mm f/1.4", - notes="Front lens of tandem-lens assembly for ISI. B&H part NI3514.", + notes="Front lens of tandem-lens assembly.", ) isi_lens_105mm = Lens( name="Nikon Micro-NIKKOR 105mm f/2.8", manufacturer=Organization.NIKON, model="Micro-NIKKOR 105mm f/2.8", - notes="Rear lens of tandem-lens assembly for ISI, facing the camera. B&H part NI10528M.", + notes="Rear lens of tandem-lens assembly, facing the camera.", ) isi_bandpass_filter = Filter( @@ -106,7 +103,6 @@ filter_type=FilterType.BANDPASS, center_wavelength=630, wavelength_unit=SizeUnit.NM, - notes="630/92 nm BrightLine single-band bandpass filter, 50 mm diameter, housed and mounted.", ) isi_camera_assembly = CameraAssembly( @@ -125,15 +121,12 @@ detector_type=DetectorType.CAMERA, data_interface=DataInterface.ETH, chroma=CameraChroma.BW, - notes="Allied Vision Technologies GigE camera, PoE, 1.2 MP, 30 fps. Used for eye tracking. " - "1st Vision part AVT-GK-125C.", ) eye_tracking_lens = Lens( name="InfiniStix 130mm W.D. 0.73x", manufacturer=Organization.INFINITY_PHOTO_OPTICAL, - model="InfiniStix Proximity Series 130mm W.D./0.73x", - notes="Infinity Photo-Optical InfiniStix proximity series lens for eye tracking camera.", + model="Proximity Series 130mm W.D./0.73x", ) eye_tracking_camera_assembly = CameraAssembly( @@ -151,25 +144,21 @@ filter_type=FilterType.DICHROIC, cut_off_wavelength=750, wavelength_unit=SizeUnit.NM, - notes="Dichroic beamsplitter used in eye tracking light path to separate 850 nm IR illumination.", + notes="Separates 850 nm IR illumination for eye tracking.", ) eye_tracking_ir_led = LightEmittingDiode( name="Eye Tracking IR LED 850nm", - manufacturer=Organization.OTHER, + manufacturer=Organization.AMS_OSRAM, model="LZ4-40R608-0000", wavelength=850, wavelength_unit=SizeUnit.NM, - notes="LED Engin Inc. (now ams OSRAM) LZ4-40R608-0000 infrared LED for eye tracking illumination. " - "Digikey part 1537-1045-ND.", ) eye_tracking_collimating_lens = Lens( name="Thorlabs LB1092-B-ML Bi-Convex Lens", manufacturer=Organization.THORLABS, model="LB1092-B-ML", - notes="Mounted N-BK7 bi-convex lens, 1/2 inch diameter, f=15.0 mm, ARC 650-1050 nm. " - "Used in eye tracking IR illumination path.", ) led_ring_green = LightEmittingDiode( @@ -178,8 +167,7 @@ model="C503B-GCN-CY0C0791", wavelength=527, wavelength_unit=SizeUnit.NM, - notes="Cree Inc. 5mm green clear LED, 527 nm, 30 deg. 19 units in LED light ring assembly (0113_530-00). " - "Digikey part C503B-GCN-CY0C0791-ND.", + notes="19 units in LED light ring assembly (0113_530-00).", ) led_ring_red = LightEmittingDiode( @@ -188,8 +176,7 @@ model="HLMP-EG08-Y2000", wavelength=635, wavelength_unit=SizeUnit.NM, - notes="Avago Technologies 5mm red clear LED, 635 nm. 9 units in LED light ring assembly (0113_530-00). " - "Digikey part 516-1377-ND.", + notes="9 units in LED light ring assembly (0113_530-00).", ) stimulus_monitor = Monitor( @@ -203,45 +190,35 @@ viewing_distance=15, viewing_distance_unit=SizeUnit.CM, relative_position=[AnatomicalRelative.ANTERIOR], - notes="24-inch widescreen LED-backlit LCD monitor used for visual stimulation. " - "2 units per rig. Viewing distance must be set at time of use.", ) temperature_controller = Device( name="WPI ATC2000 Animal Temperature Controller", - manufacturer=Organization.OTHER, + manufacturer=Organization.WPI, model="ATC2000", - notes="World Precision Instruments ATC2000 animal temperature controller. " - "Regulates heating plate temperature during imaging.", ) somnosuite = Device( name="Kent Scientific SomnoSuite", - manufacturer=Organization.OTHER, + manufacturer=Organization.KENT_SCIENTIFIC_CORPORATION, model="SOMNO", - notes="Kent Scientific SomnoSuite low-flow digital vaporizer for isoflurane anesthesia delivery. " - "Used with low profile facemasks (SOMNO-0801) and induction chamber (SOMNO-0705).", + notes="Used with accessory facemasks (SOMNO-0801) and induction chamber (SOMNO-0705).", ) physiosuite = Device( name="Kent Scientific PhysioSuite", - manufacturer=Organization.OTHER, + manufacturer=Organization.KENT_SCIENTIFIC_CORPORATION, model="PS-MSTAT-RT", - notes="Kent Scientific PhysioSuite with MouseSTAT pulse oximeter and heart rate monitor. " - "Includes RightTemp module for temperature monitoring.", ) inst = Instrument( - location="ISI Full Rig", + location="", instrument_id="ISI1", modification_date=date(2016, 7, 18), modalities=[Modality.ISI], coordinate_system=CoordinateSystemLibrary.BREGMA_ARI, temperature_control=True, - notes="AIBS Intrinsic Signal Imaging full rig (0113_000-00, Rev A). " - "Tandem-lens ISI camera assembly uses Nikon 35mm f/1.4 (front) face-to-face with Nikon 105mm f/2.8 (rear). " - "Eye tracking arm (0123_500-00) uses 850 nm IR illumination with dichroic beamsplitter. " - "LED light ring contains 19x green (527 nm) and 9x red (635 nm) LEDs for cortical illumination.", + notes="AIBS Intrinsic Signal Imaging full rig (0113_000-00, Rev A). ", components=[ acquisition_computer, stim_computer, diff --git a/pyproject.toml b/pyproject.toml index f81612231..6d3388d68 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,7 +14,7 @@ readme = "README.md" dynamic = ["version"] dependencies = [ - 'aind-data-schema-models>=5.4.1,<6', + 'aind-data-schema-models>=5.7.1,<6', 'pydantic>=2.7, <2.12', 'pydantic-extra-types', 'tzdata', From bcd83b40607843d591324a8d1d81fc60199cbd7e Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 15 May 2026 22:44:33 +0000 Subject: [PATCH 3/6] update docs --- docs/source/aind_data_schema_models/harp_types.md | 1 + docs/source/aind_data_schema_models/organizations.md | 6 ++++++ docs/source/aind_data_schema_models/process_names.md | 2 ++ .../aind_data_schema_models/specimen_procedure_types.md | 1 - 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/source/aind_data_schema_models/harp_types.md b/docs/source/aind_data_schema_models/harp_types.md index f89b1bad1..56297cc39 100644 --- a/docs/source/aind_data_schema_models/harp_types.md +++ b/docs/source/aind_data_schema_models/harp_types.md @@ -18,6 +18,7 @@ Harp device types | `CURRENTDRIVER` | `CurrentDriver` | `1282` | | `CUTTLEFISH` | `cuTTLefish` | `1403` | | `CUTTLEFISHFIP` | `cuTTLefishFip` | `1407` | +| `DELUXDRIVER` | `deLuxDriver` | `1410` | | `DRIVER12VOLTS` | `Driver12Volts` | `1072` | | `ENVIRONMENTSENSOR` | `EnvironmentSensor` | `1405` | | `FLYPAD` | `FlyPad` | `1200` | diff --git a/docs/source/aind_data_schema_models/organizations.md b/docs/source/aind_data_schema_models/organizations.md index 6a7fd7db5..4853d3ba0 100644 --- a/docs/source/aind_data_schema_models/organizations.md +++ b/docs/source/aind_data_schema_models/organizations.md @@ -22,6 +22,7 @@ Organization | `ASUS` | `None` | `ASUS` | `Research Organization Registry (ROR)` | `00bxkz165` | | `BASLER` | `None` | `Basler` | `None` | `None` | | `BCM` | `BCM` | `Baylor College of Medicine` | `Research Organization Registry (ROR)` | `02pttbw34` | +| `BROADCOM` | `None` | `Broadcom` | `Research Organization Registry (ROR)` | `035gt5s03` | | `BRUKER` | `None` | `Bruker` | `Research Organization Registry (ROR)` | `04r739x86` | | `BU` | `BU` | `Boston University` | `Research Organization Registry (ROR)` | `05qwgg493` | | `CAJAL` | `Cajal` | `Cajal Neuroscience` | `Research Organization Registry (ROR)` | `05pdc0q70` | @@ -47,6 +48,7 @@ Organization | `EDMUND_OPTICS` | `None` | `Edmund Optics` | `Research Organization Registry (ROR)` | `01j1gwp17` | | `EMORY` | `Emory` | `Emory University` | `Research Organization Registry (ROR)` | `03czfpz43` | | `EURESYS` | `None` | `Euresys` | `None` | `None` | +| `EXCELITAS_TECHNOLOGIES` | `None` | `Excelitas Technologies` | `Research Organization Registry (ROR)` | `01tpbbf75` | | `FILTER_MANUFACTURERS` | `N/A` | `N/A` | `N/A` | `N/A` | | `FLIR` | `FLIR` | `Teledyne FLIR` | `Research Organization Registry (ROR)` | `01j1gwp17` | | `FUJINON` | `None` | `Fujinon` | `None` | `None` | @@ -66,6 +68,7 @@ Organization | `JENOPTIK` | `None` | `Jenoptik` | `Research Organization Registry (ROR)` | `05g7t5c49` | | `JHU` | `JHU` | `Johns Hopkins University` | `Research Organization Registry (ROR)` | `00za53h95` | | `JULABO` | `None` | `Julabo` | `None` | `None` | +| `KENT_SCIENTIFIC_CORPORATION` | `None` | `Kent Scientific Corporation` | `Research Organization Registry (ROR)` | `03xkj6a08` | | `KOWA` | `None` | `Kowa` | `Research Organization Registry (ROR)` | `03zbwg482` | | `LASER_MANUFACTURERS` | `N/A` | `N/A` | `N/A` | `N/A` | | `LASOS` | `LASOS` | `LASOS Lasertechnik` | `None` | `None` | @@ -104,6 +107,7 @@ Organization | `OLYMPUS` | `None` | `Olympus` | `Research Organization Registry (ROR)` | `02vcdte90` | | `OPTOTUNE` | `None` | `Optotune` | `None` | `None` | | `OTHER` | `None` | `Other` | `None` | `None` | +| `OXFORD_INSTRUMENTS` | `None` | `Oxford Instruments` | `Research Organization Registry (ROR)` | `01age2z78` | | `OXXIUS` | `None` | `Oxxius` | `None` | `None` | | `PLACID_INDUSTRIES` | `None` | `Placid Industries` | `None` | `None` | | `PRIZMATIX` | `None` | `Prizmatix` | `None` | `None` | @@ -112,6 +116,7 @@ Organization | `RESEARCH_INSTITUTIONS` | `N/A` | `N/A` | `N/A` | `N/A` | | `SAME_SKY` | `None` | `Same Sky` | `None` | `None` | | `SCHNEIDER_KREUZNACH` | `None` | `Schneider-Kreuznach` | `None` | `None` | +| `SCIENTIFICA` | `None` | `Scientifica` | `Research Organization Registry (ROR)` | `00z72df47` | | `SECOND_ORDER_EFFECTS` | `None` | `Second Order Effects` | `None` | `None` | | `SEMROCK` | `None` | `Semrock` | `None` | `None` | | `SICGEN` | `None` | `SICGEN` | `None` | `None` | @@ -137,5 +142,6 @@ Organization | `UPENN` | `UPENN` | `University of Pennsylvania` | `Research Organization Registry (ROR)` | `00b30xv10` | | `VIEWORKS` | `None` | `Vieworks` | `None` | `None` | | `VORTRAN` | `None` | `Vortran` | `None` | `None` | +| `WPI` | `WPI` | `World Precision Intstruments` | `Research Organization Registry (ROR)` | `03st5df34` | diff --git a/docs/source/aind_data_schema_models/process_names.md b/docs/source/aind_data_schema_models/process_names.md index 45a1b3028..557b8d904 100644 --- a/docs/source/aind_data_schema_models/process_names.md +++ b/docs/source/aind_data_schema_models/process_names.md @@ -17,6 +17,7 @@ Process names | `EPHYS_VISUALIZATION` | `Ephys visualization` | | `FIDUCIAL_SEGMENTATION` | `Fiducial segmentation` | | `FILE_FORMAT_CONVERSION` | `File format conversion` | +| `FIX_COLOR_RANGE` | `Fix color range` | | `FLUORESCENCE_EVENT_DETECTION` | `Fluorescence event detection` | | `IMAGE_ATLAS_ALIGNMENT` | `Image atlas alignment` | | `IMAGE_BACKGROUND_SUBTRACTION` | `Image background subtraction` | @@ -28,6 +29,7 @@ Process names | `IMAGE_FLAT_FIELD_CORRECTION` | `Image flat-field correction` | | `IMAGE_IMPORTING` | `Image importing` | | `IMAGE_MIP_VISUALIZATION` | `Image mip visualization` | +| `IMAGE_MULTISCALING` | `Image multiscaling` | | `IMAGE_RADIAL_CORRECTION` | `Image radial correction` | | `IMAGE_SPOT_DETECTION` | `Image spot detection` | | `IMAGE_SPOT_SPECTRAL_UNMIXING` | `Image spot spectral unmixing` | diff --git a/docs/source/aind_data_schema_models/specimen_procedure_types.md b/docs/source/aind_data_schema_models/specimen_procedure_types.md index d7b3895ba..6b9956d60 100644 --- a/docs/source/aind_data_schema_models/specimen_procedure_types.md +++ b/docs/source/aind_data_schema_models/specimen_procedure_types.md @@ -25,6 +25,5 @@ Specimen procedures | `SOAK` | `Soak` | | `STORAGE` | `Storage` | | `STRIPPING` | `Stripping` | -| `TAMOXIFEN_INDUCTION` | `Tamoxifen induction` | From b368f9f35fc3663adad744a48aa46c6c00da4c3d Mon Sep 17 00:00:00 2001 From: Dan Birman Date: Fri, 15 May 2026 16:02:31 -0700 Subject: [PATCH 4/6] chore: some more cleanup --- examples/isi_instrument.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/examples/isi_instrument.py b/examples/isi_instrument.py index 42a1095d2..c6ab71808 100644 --- a/examples/isi_instrument.py +++ b/examples/isi_instrument.py @@ -24,7 +24,7 @@ ) from aind_data_schema_models.modalities import Modality from aind_data_schema_models.organizations import Organization -from aind_data_schema_models.units import FrequencyUnit, SizeUnit +from aind_data_schema_models.units import SizeUnit from aind_data_schema.components.coordinates import CoordinateSystemLibrary from aind_data_schema.components.devices import ( @@ -43,12 +43,10 @@ acquisition_computer = Computer( name="Acquisition Computer", - notes="3U custom rackmount, Intel Xeon E5-1620v3 3.5GHz, Nvidia GT 730 2GB, Advantech PCIE-1672PC frame grabber, 240GB SSD + 2x1TB HDD. Pogo Linux quote 90846.", ) stim_computer = Computer( name="Stim Computer", - notes="Intel Xeon E5-1620v3 3.5GHz, 16GB DDR4 ECC, Western Digital RE4 500GB. Pogo Linux quote 90854.", ) ni_daq = DAQDevice( @@ -213,12 +211,12 @@ inst = Instrument( location="", - instrument_id="ISI1", - modification_date=date(2016, 7, 18), + instrument_id="ISIV.1", + modification_date=date(2026, 5, 15), modalities=[Modality.ISI], coordinate_system=CoordinateSystemLibrary.BREGMA_ARI, temperature_control=True, - notes="AIBS Intrinsic Signal Imaging full rig (0113_000-00, Rev A). ", + notes="", components=[ acquisition_computer, stim_computer, From 7980d746a552ae0c18be58d00f96d257dfc8a544 Mon Sep 17 00:00:00 2001 From: Dan Birman Date: Tue, 19 May 2026 14:08:58 -0700 Subject: [PATCH 5/6] refactor: rename devices --- examples/isi_instrument.py | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/examples/isi_instrument.py b/examples/isi_instrument.py index c6ab71808..021e40b31 100644 --- a/examples/isi_instrument.py +++ b/examples/isi_instrument.py @@ -50,14 +50,14 @@ ) ni_daq = DAQDevice( - name="NI USB-6008", + name="DAQ", manufacturer=Organization.NATIONAL_INSTRUMENTS, model="USB-6008", data_interface=DataInterface.USB, ) newport_linear_stage = MotorizedStage( - name="Newport M-ILS100PP Linear Stage", + name="Linear Stage", manufacturer=Organization.MKS_NEWPORT, model="M-ILS100PP", travel=100, @@ -66,13 +66,13 @@ ) newport_motor_controller = Device( - name="Newport SMC100PP Motor Controller", + name="Motor Controller", manufacturer=Organization.MKS_NEWPORT, model="SMC100PP", ) isi_camera = Camera( - name="Andor Zyla 5.5 sCMOS", + name="ISI Camera", manufacturer=Organization.OXFORD_INSTRUMENTS, model="Zyla 5.5 sCMOS", detector_type=DetectorType.CAMERA, @@ -81,21 +81,21 @@ ) isi_lens_35mm = Lens( - name="Nikon NIKKOR 35mm f/1.4", + name="Front Lens", manufacturer=Organization.NIKON, model="NIKKOR 35mm f/1.4", notes="Front lens of tandem-lens assembly.", ) isi_lens_105mm = Lens( - name="Nikon Micro-NIKKOR 105mm f/2.8", + name="Rear Lens", manufacturer=Organization.NIKON, model="Micro-NIKKOR 105mm f/2.8", notes="Rear lens of tandem-lens assembly, facing the camera.", ) isi_bandpass_filter = Filter( - name="Semrock FF01-630/92-50 Bandpass Filter", + name="Bandpass Filter", manufacturer=Organization.SEMROCK, model="FF01-630/92-50", filter_type=FilterType.BANDPASS, @@ -113,7 +113,7 @@ ) eye_tracking_camera = Camera( - name="Allied Vision MAKO G-125C", + name="Eye Tracking Camera", manufacturer=Organization.ALLIED, model="MAKO G-125C", detector_type=DetectorType.CAMERA, @@ -122,7 +122,7 @@ ) eye_tracking_lens = Lens( - name="InfiniStix 130mm W.D. 0.73x", + name="Eye Tracking Lens", manufacturer=Organization.INFINITY_PHOTO_OPTICAL, model="Proximity Series 130mm W.D./0.73x", ) @@ -136,7 +136,7 @@ ) eye_tracking_dichroic = Filter( - name="Semrock FF750-SDi02-25x36 Dichroic", + name="Dichroic Filter", manufacturer=Organization.SEMROCK, model="FF750-SDi02-25x36", filter_type=FilterType.DICHROIC, @@ -146,7 +146,7 @@ ) eye_tracking_ir_led = LightEmittingDiode( - name="Eye Tracking IR LED 850nm", + name="Eye Tracking IR LED", manufacturer=Organization.AMS_OSRAM, model="LZ4-40R608-0000", wavelength=850, @@ -154,13 +154,13 @@ ) eye_tracking_collimating_lens = Lens( - name="Thorlabs LB1092-B-ML Bi-Convex Lens", + name="Collimating Lens", manufacturer=Organization.THORLABS, model="LB1092-B-ML", ) led_ring_green = LightEmittingDiode( - name="LED Ring Green 527nm", + name="LED Ring Green", manufacturer=Organization.OTHER, model="C503B-GCN-CY0C0791", wavelength=527, @@ -169,7 +169,7 @@ ) led_ring_red = LightEmittingDiode( - name="LED Ring Red 635nm", + name="LED Ring Red", manufacturer=Organization.OTHER, model="HLMP-EG08-Y2000", wavelength=635, @@ -178,7 +178,7 @@ ) stimulus_monitor = Monitor( - name="ASUS PA248Q Stimulus Monitor", + name="Stimulus Monitor", manufacturer=Organization.ASUS, model="PA248Q", refresh_rate=60, @@ -191,20 +191,20 @@ ) temperature_controller = Device( - name="WPI ATC2000 Animal Temperature Controller", + name="Temperature Controller", manufacturer=Organization.WPI, model="ATC2000", ) somnosuite = Device( - name="Kent Scientific SomnoSuite", + name="SomnoSuite", manufacturer=Organization.KENT_SCIENTIFIC_CORPORATION, model="SOMNO", notes="Used with accessory facemasks (SOMNO-0801) and induction chamber (SOMNO-0705).", ) physiosuite = Device( - name="Kent Scientific PhysioSuite", + name="PhysioSuite", manufacturer=Organization.KENT_SCIENTIFIC_CORPORATION, model="PS-MSTAT-RT", ) From 0aad25480f2bb7a38c9a2718436d4a779cb308f2 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 19 May 2026 21:09:51 +0000 Subject: [PATCH 6/6] update docs --- docs/source/aind_data_schema_models/process_names.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/source/aind_data_schema_models/process_names.md b/docs/source/aind_data_schema_models/process_names.md index 557b8d904..1bafd1836 100644 --- a/docs/source/aind_data_schema_models/process_names.md +++ b/docs/source/aind_data_schema_models/process_names.md @@ -37,6 +37,7 @@ Process names | `IMAGE_TILE_ALIGNMENT` | `Image tile alignment` | | `IMAGE_TILE_FUSING` | `Image tile fusing` | | `IMAGE_TILE_PROJECTION` | `Image tile projection` | +| `MANUAL_CURATION` | `Manual curation` | | `MODEL_EVALUATION` | `Model evaluation` | | `MODEL_TRAINING` | `Model training` | | `NEURON_SKELETON_PROCESSING` | `Neuron skeleton processing` |