AllenNeuralDynamics / AllenNeuralDynamics/exa-spim-control

Add instrument.json generation to ExA-SPIM

Đang mở
#53 0 bình luận 0 reaction 1 người được giao Được @micahwoodard nhận Xem trên GitHub
Ngôn ngữ chính
Python
Star
2
Fork
0
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

Use this to generate a JSON. Read that JSON in and resave it as a TOML file. Then in the launch script, use the TOML read dictionary to resave a JSON using something like the code below.

```python
from aind_data_schema.device import DAQChannel, DAQDevice, Manufacturer
from aind_data_schema.imaging import instrument

#ADD MPB manufacturer
#ADD AAOpto manufacturer
#ADD Navitar manufacturer
#ADD Mitutuyo manufacturer

inst = instrument.Instrument(
instrument_id='exaSPIM1-01',
instrument_type='exaSPIM',
manufacturer=Manufacturer.CUSTOM,
objectives=[
instrument.Objective(
name='Detection objective',
model='JM_DIAMOND 5.0X/1.3',
manufacturer=Manufacturer.VIEWORKS,
numerical_aperture=0.305,
magnification=5.0,
immersion='air',
serial_number='15618844',
notes='detection objective. manufacturer collaboration between Schneider-Kreuznach and Vieworks',
),
],
objectives=[
instrument.Objective(
name='Excitation objective',
model='TL2X-SAP',
manufacturer=Manufacturer.THORLABS,
numerical_aperture=0.1,
magnification=2.0,
immersion='air',
serial_number=None,
notes='excitation objective. magnification assuming 200 mm tube lens focal length',
),
],
lenses=[
instrument.Lens(
name='L1',
model='LMPLANFL N 50X',
manufacturer=Manufacturer.OLYMPUS,
focal_length=3.6,
focal_length_unit=SizeUnit.MM,
serial_number=None,
notes='L1. first beam expander lens.',
),
instrument.Lens(
name='L2',
model='7.5X Mitutoyo Plan Apo',
manufacturer=Manufacturer.MITUTUYO,
focal_length=26.67,
focal_length_unit=SizeUnit.MM,
serial_number=None,
notes='L2. second beam expander lens.',
),
instrument.Lens(
name='L3',
model='ACY254-050-A-ML',
manufacturer=Manufacturer.THORLABS,
focal_length=50,
focal_length_unit=SizeUnit.MM,
serial_number=None,
notes='L3. cylindrical lens.',
),
instrument.Lens(
name='L4',
model='AC508-200-A-ML',
manufacturer=Manufacturer.THORLABS,
focal_length=200,
focal_length_unit=SizeUnit.MM,
serial_number=None,
notes='L4. first relay lens.',
),
instrument.Lens(
name='L5',
model='AC508-300-A-ML',
manufacturer=Manufacturer.THORLABS,
focal_length=300,
focal_length_unit=SizeUnit.MM,
serial_number=None,
notes='L5. second relay lens.',
),
],
detectors=[
instrument.Detector(
name='Imaging camera',
type=CameraType.CAMERA,
model='VP-151MX-M6H0',
manufacturer=Manufacturer.VIEWORKS,
max_frame_rate=6.4,
frame_rate_unit=Frequency.HZ,
pixel_width=3.76,
pixel_height=3.76,
size_unit=SizeUnit.UM,
chroma=CameraChroma.BW,
data_interface='Coax',
cooling='air',
serial_number='MP151BBX006',
),
],
light_sources=[
instrument.Lightsource(
name='488 nm laser',
type=LightsourceType.LASER,
model='Genesis MX488-1000 STM OPSLaser-Diode System',
manufacturer=Manufacturer.COHERENT,
coupling=Coupling.FREE_SPACE,
wavelength=488,
wavelength_unit=SizeUnit.NM,
max_power=1000,
power_unit=PowerUnit.MW,
serial_number='MX1275',
notes='Housed in custom laser combiner. Water cooled.',
),
instrument.Lightsource(
name='561 nm laser',
type=LightsourceType.LASER,
model='Genesis MX561-1000 STM OPSLaser-Diode System',
manufacturer=Manufacturer.COHERENT,
coupling=Coupling.FREE_SPACE,
wavelength=561,
wavelength_unit=SizeUnit.NM,
max_power=1000,
power_unit=PowerUnit.MW,
serial_number='MX1276',
notes='Housed in custom laser combiner. Water cooled.',
),
instrument.Lightsource(
name='639 nm laser',
type=LightsourceType.LASER,
model='Genesis MX639-1000 STM OPSLaser-Diode System',
manufacturer=Manufacturer.COHERENT,
coupling=Coupling.FREE_SPACE,
wavelength=639,
wavelength_unit=SizeUnit.NM,
max_power=1000,
power_unit=PowerUnit.MW,
serial_number='MX1274',
notes='Housed in custom laser combiner. Water cooled.',
)
],
fluorescence_filters=[
instrument.Filter(
name='Emission filter',
model='ZET488/561m',
manufacturer=Manufacturer.CHROMA,
filter_type=FilterType.MULTIBAND,
diameter=44.05,
size_unit=SizeUnit.MM,
thickness=1.0,
thickness_unit=SizeUnit.MM,
notes='Custom made filter. No filter wheel.',
serial_number=None,
)
],
daqs=[
DAQDevice(
name='NIDAQ',
model='PCIe-6738',
manufacturer=Manufacturer.NATIONAL_INSTRUMENTS,
data_interface='USB',
computer_name='Dev2',
name='Dev2',
serial_number=None,
channels=[
DAQChannel(channel_name='0', channel_type='Analog Output', device_name='ETL', sample_rate=10000),
DAQChannel(channel_name='1', channel_type='Analog Output', device_name='Imaging camera', sample_rate=10000),
DAQChannel(channel_name='2', channel_type='Analog Output', device_name='Z scanning stage', sample_rate=10000),
DAQChannel(channel_name='3', channel_type='Analog Output', device_name='AOTF RF driver, 488 nm', sample_rate=10000),
DAQChannel(channel_name='3', channel_type='Analog Output', device_name='AOTF RF driver, 488 nm', sample_rate=10000),
DAQChannel(channel_name='4', channel_type='Analog Output', device_name='AOTF RF driver, 639 nm', sample_rate=10000),
DAQChannel(channel_name='13', channel_type='Analog Output', device_name='AOTF RF driver, 561 nm', sample_rate=10000),
DAQChannel(channel_name='17', channel_type='Analog Output', device_name='Galvo servo 1', sample_rate=10000),
DAQChannel(channel_name='19', channel_type='Analog Output', device_name='Galvo servo 2', sample_rate=10000),
],
)
],
scanning_stages=[
instrument.ScanningStage(
name='X scanning stage',
model='MS-8000',
manufacturer=Manufacturer.ASI,
stage_axis_direction='Detection axis',
stage_axis_name='X',
travel=1000,
travel_unit=SizeUnit.MM,
serial_number=None,
),
instrument.ScanningStage(
name='Y scanning stage',
model='MS-8000',
manufacturer=Manufacturer.ASI,
stage_axis_direction='Perpendicular axis',
stage_axis_name='Y',
travel=1000,
travel_unit=SizeUnit.MM,
serial_number=None,
),
instrument.ScanningStage(
name='Z scanning stage',
model='LS-100',
manufacturer=Manufacturer.ASI,
stage_axis_direction='Illumination axis',
stage_axis_name='Z',
travel=100,
travel_unit=SizeUnit.MM,
serial_number=None,
),
],
motorized_stages=[
instrument.MotorizedStage(
name='Illumination objective stage 1',
model='LS-50',
manufacturer=Manufacturer.ASI,
travel=50,
travel_unit=SizeUnit.MM,
stage_axis_name='M',
serial_number=None,
notes='translates illumination objective along detection axis'

),
instrument.MotorizedStage(
name='Illumination objective stage 2',
model='LS-50',
manufacturer=Manufacturer.ASI,
travel=50,
travel_unit=SizeUnit.MM,
stage_axis_name='N',
serial_number=None,
notes='translates illumination objective perpendicular to detection axis'

),
],
additional_devices=[
instrument.AdditionalImagingDevice(
name='ETL',
type=ImagingDeviceType.OTHER,
manufacturer=Manufacturer.OPTOTUNE,
model='EL-16-40-TC-VIS-20D-C',
serial_number='ANAC4286',
),
instrument.AdditionalImagingDevice(
name='Cylindrical lens rotation stage',
type='Rotation mount',
manufacturer=Manufacturer.ASI,
model='C60-3060-CMR-MO',
serial_number=None,
),
instrument.AdditionalImagingDevice(
name='AOTF',
type=ImagingDeviceType.OTHER,
manufacturer=Manufacturer.AAOPTO,
model='AOTFnC-400.650-TN',
serial_number='1002-Q220234',
),
instrument.AdditionalImagingDevice(
name='AOTF RF driver',
type=ImagingDeviceType.OTHER,
manufacturer=Manufacturer.AAOPTO,
model='MPDS8C-D65-22-74.158-RS',
serial_number='2001-Q220234',
),
instrument.AdditionalImagingDevice(
name='Tiger controller',
type=ImagingDeviceType.OTHER,
manufacturer=Manufacturer.ASI,
model='TG8-XY:A(Xb)H-Z/F:5A:FTP',
serial_number='2112-2317-8584-5632-5631',
),
instrument.AdditionalImagingDevice(
name='NIDAQ breakout board',
type=ImagingDeviceType.OTHER,
manufacturer=Manufacturer.NATIONAL_INSTRUMENTS,
model='SCB-68A',
serial_number='1FCD210',
),
instrument.AdditionalImagingDevice(
name='Galvo 1',
type=ImagingDeviceType.OTHER,
manufacturer=Manufacturer.THORLABS,
model='QS20Y-AG',
serial_number='20375',
),
instrument.AdditionalImagingDevice(
name='Galvo 2',
type=ImagingDeviceType.OTHER,
manufacturer=Manufacturer.THORLABS,
model='QS20Y-AG',
serial_number='20385',
),
instrument.AdditionalImagingDevice(
type='Galvo servo 1',
type=ImagingDeviceType.OTHER,
manufacturer=Manufacturer.THORLABS,
model='QS20Y-AG',
serial_number='02232',
),
instrument.AdditionalImagingDevice(
type='Galvo servo 2',
type=ImagingDeviceType.OTHER,
manufacturer=Manufacturer.THORLABS,
model='QS20Y-AG',
serial_number='02216',
),
instrument.AdditionalImagingDevice(
name='488 nm laser 210 Watt Thermoelectric Chiller with Coherent Logo',
type=ImagingDeviceType.OTHER,
manufacturer=Manufacturer.COHERENT,
model='0P9T257P30',
serial_number='A76636',
),
instrument.AdditionalImagingDevice(
name='561 nm laser 210 Watt Thermoelectric Chiller with Coherent Logo',
type=ImagingDeviceType.OTHER,
manufacturer=Manufacturer.COHERENT,
model='0P9T257P30',
serial_number='A76626',
),
instrument.AdditionalImagingDevice(
name='639 nm laser 210 Watt Thermoelectric Chiller with Coherent Logo',
type=ImagingDeviceType.OTHER,
manufacturer=Manufacturer.COHERENT,
model='0P9T257P30',
serial_number='A76606',
),
],
optical_tables=[
instrument.OpticalTable(
manufacturer=Manufacturer.MKS_NEWPORT,
model='VIS3648-PG2-325A',
length=36,
width=48,
vibration_control=True,
serial_number='10349925',
)
],
com_ports=[
instrument.Com(
hardware_name='AOTF RF driver',
com_port='COM13',
),
instrument.Com(
hardware_name='Tiger Controller',
com_port='COM5',
),
],
humidity_control=False,
temperature_control=False,
)

inst.write_standard_file()
```

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.