-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Mesoscope rig example #901
base: dev
Are you sure you want to change the base?
Conversation
Adding mesosocpe_ophys_rig.py and mesoscope_ophys_rig.json to repository |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Identified fields that need to be updated. Please let me know if I missed anything.
In addition to the missing items, we will also need to know from Alex (or inform on) the following items:
- Automatic uploads will be happening soon. Can we use this as the current rig for now; that said, what are the plans for logging the current rig state?
- Need to know when the face camera was added. The earlier rig json did not come with a date (afaict)
examples/mesoscope_ophys_rig.py
Outdated
ephys_assemblies=[], | ||
fiber_assemblies=[], | ||
stick_microscopes=[], | ||
laser_assemblies=[], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Needs Laser class
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For 2P, the laser should go in the light_sources
, not in laser_assemblies. (and yes, this is confusing. These are lasers on manipulators used on the ephysdome)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is something that Natalia handled in the past, she was not in Engineering and thus I do not know. I believe Manni He is now responsible for this.
examples/mesoscope_ophys_rig.py
Outdated
laser_assemblies=[], | ||
patch_cords=[], | ||
light_sources=[], | ||
detectors=[], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Epi camera and PMTs
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is something that Natalia handled in the past, she was not in Engineering and thus I do not know. I believe Manni He is now responsible for this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have these added
examples/mesoscope_ophys_rig.py
Outdated
patch_cords=[], | ||
light_sources=[], | ||
detectors=[], | ||
objectives=[], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Needs to be defined
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is something that Natalia handled in the past, she was not in Engineering and thus I do not know. I believe Manni He is now responsible for this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
examples/mesoscope_ophys_rig.py
Outdated
lenses=[], | ||
digital_micromirror_devices=[], | ||
polygonal_scanners=[], | ||
pockels_cells=[], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Needs to be defined
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same as the others.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
examples/mesoscope_ophys_rig.py
Outdated
hardware_version=None, | ||
), | ||
], | ||
calibrations=[], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
stimulus screen calibrations
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I need advice on how to enter this information. The screen calibration is a file with a bunch of information encoded inside of it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@axlec if you want to send me an example of the calibration file, I can help. I expect for gamma calibration there are some input values and some readout values, which is what I would put in here, but I'm happy to demo an example if you send me a file
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Gamma calibration would be valuable. was this resolved?
examples/multiplane_ophys_rig.py
Outdated
data_interface=DataInterface.PCIE, | ||
) | ||
], | ||
objectives=[], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
still missing objective!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The objective is one part that I could not get from Keith. I can ask Manni but she is out of town
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@axlec I need your help with this. I have no clue where to find this
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can check the order. Those are custom from an optic company in Florida. I know at some point, there was some effort to switch to a thorlabs slimmer design.
examples/multiplane_ophys_rig.py
Outdated
Detector( | ||
name="PMT", | ||
detector_type="Photomultiplier Tube", | ||
manufacturer=Hamamatsu(name="Hamamatsu"), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can we get a model number/serial number for this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Manni could not find one
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can get this. Those are standard and I think I have the record of it. It is possible Natalia changed them. Usually there is a sticker on the back end face of the PMT.
examples/multiplane_ophys_rig.py
Outdated
name="Pockels Cell 1", | ||
polygonal_scanner="something", | ||
on_time=12.0, | ||
off_time=13.0, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm guessing on and off need to add to 100. But let me check on that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These were bogus ints :/ until it's an optional parameter
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This has been added in the latest version of aind-data-schema
examples/multiplane_ophys_rig.py
Outdated
), | ||
Axis(name="Y", direction="defined by the right hand rule and the other two axis"), | ||
], | ||
modalities=set(), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
missing modalities!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
Is this PR still being worked on? |
@saskiad I have added what I believe to be all the missing parts I was able to define and track. For the parts missing, I would ask Alex and team to help fill in the gaps especially with respect to how items (e.g. calibrations) get updated and tracked. |
examples/multiplane_ophys_rig.py
Outdated
Detector( | ||
name="PMT", | ||
detector_type="Photomultiplier Tube", | ||
manufacturer=Hamamatsu(name="Hamamatsu"), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can get this. Those are standard and I think I have the record of it. It is possible Natalia changed them. Usually there is a sticker on the back end face of the PMT.
examples/multiplane_ophys_rig.py
Outdated
data_interface=DataInterface.PCIE, | ||
) | ||
], | ||
objectives=[], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can check the order. Those are custom from an optic company in Florida. I know at some point, there was some effort to switch to a thorlabs slimmer design.
examples/mesoscope_ophys_rig.py
Outdated
hardware_version=None, | ||
), | ||
], | ||
calibrations=[], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Gamma calibration would be valuable. was this resolved?
Note the mesoscope there is called "429_mesoscope_20220321" which is a slight change of text from before "429-mesoscope-2022321" I am not sure of the implications. Please tell me how it should be called. This is meant to be MESO.1 |
@@ -18,7 +17,7 @@ | |||
subject_id="12345", | |||
session_type="Mesoscope", | |||
iacuc_protocol="12345", | |||
rig_id="MESO.1", | |||
rig_id="429_mesoscope_20220321", | |||
mouse_platform_name="disc", | |||
active_mouse_platform=True, | |||
data_streams=[ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
are there no active daq devices in the data stream?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, the camera names listed here don't match the camera names in the rig.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add the names of the DAQ devices used in the session specified in the rig json
examples/multiplane_ophys_rig.py
Outdated
pockels_cells=[ | ||
PockelsCell( | ||
name="Pockels Cell 1", | ||
polygonal_scanner="no polygon scanner", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
polygonal_scanner
is an optional field - I think it's better to leave it empty rather than put in a name that says there is none.
notes=None, | ||
data_interface="USB", | ||
computer_name="STIM", | ||
channels=[], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what is the DAQ connected to?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Go to DAQChannel object of the device module and fill in the blanks for the configuration of the DAQ
notes=None, | ||
data_interface="PCIe", | ||
computer_name="SYNC", | ||
channels=[], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ditto above
notes=None, | ||
data_interface="PCIe", | ||
computer_name="STIM", | ||
channels=[], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ditto
@@ -0,0 +1,49 @@ | |||
COMMAND_MODE=unix2003 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what is this file? Does this need to go into aind-data-schema?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very close - a few things.
It should be dashes. |
its 6mm according to the thorlabs website.
________________________________
From: arielleleon ***@***.***>
Sent: Wednesday, November 20, 2024 3:08 PM
To: AllenNeuralDynamics/aind-data-schema ***@***.***>
Cc: Alex Cahoon ***@***.***>; Mention ***@***.***>
Subject: Re: [AllenNeuralDynamics/aind-data-schema] Add Mesoscope rig example (PR #901)
@arielleleon commented on this pull request.
________________________________
In examples/multiplane_ophys_rig.json<#901 (comment)>:
+ "manufacturer": {
+ "name": "Thorlabs",
+ "abbreviation": null,
+ "registry": {
+ "name": "Research Organization Registry",
+ "abbreviation": "ROR"
+ },
+ "registry_identifier": "04gsnvb07"
+ },
+ "model": "MVL6WA",
+ "path_to_cad": null,
+ "port_index": null,
+ "additional_settings": {},
+ "notes": null,
+ "focal_length": "6",
+ "focal_length_unit": "millimeter",
Will check with Alex - this may be 6"
—
Reply to this email directly, view it on GitHub<#901 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/A7SAEYY5FSN7X5NHXBAECKT2BUJAPAVCNFSM6AAAAABGX2N73SVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDINBZHA3TOMRZGU>.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
I think we should remove any metadata for off the shelf parts. It is endless otherwise. I would recommend just storing the part numbers and manufacturer, this is sufficient information. This is the practice in methods of papers. |
Agreed, 100%
…________________________________
From: Jerome Lecoq ***@***.***>
Sent: Wednesday, November 20, 2024 3:24 PM
To: AllenNeuralDynamics/aind-data-schema ***@***.***>
Cc: Alex Cahoon ***@***.***>; Mention ***@***.***>
Subject: Re: [AllenNeuralDynamics/aind-data-schema] Add Mesoscope rig example (PR #901)
its 6mm according to the thorlabs website.
________________________________ From: arielleleon @.> Sent: Wednesday, November 20, 2024 3:08 PM To: AllenNeuralDynamics/aind-data-schema @.> Cc: Alex Cahoon @.>; Mention @.> Subject: Re: [AllenNeuralDynamics/aind-data-schema] Add Mesoscope rig example (PR #901<#901>) @arielleleon<https://github.com/arielleleon> commented on this pull request.
________________________________ In examples/multiplane_ophys_rig.json<#901 (comment)<#901 (comment)>>:
* "manufacturer": {
* "name": "Thorlabs", + "abbreviation": null, + "registry": { + "name": "Research Organization Registry", + "abbreviation": "ROR" + }, + "registry_identifier": "04gsnvb07" + }, + "model": "MVL6WA", + "path_to_cad": null, + "port_index": null, + "additional_settings": {}, + "notes": null, + "focal_length": "6", + "focal_length_unit": "millimeter", Will check with Alex - this may be 6" — Reply to this email directly, view it on GitHub<#901 (comment)<#901 (comment)>>, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A7SAEYY5FSN7X5NHXBAECKT2BUJAPAVCNFSM6AAAAABGX2N73SVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDINBZHA3TOMRZGU. You are receiving this because you were mentioned.Message ID: @.***>
I think we should remove any metadata for off the shelf parts. It is endless otherwise. I would recommend just storing the part numbers and manufacturer, this is sufficient information.
—
Reply to this email directly, view it on GitHub<#901 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/A7SAEY5MJMRDQGDFIWYQ2PD2BUK2RAVCNFSM6AAAAABGX2N73SVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOBZG42DAMRRGU>.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
No description provided.