Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview:
There are some important metadata such as settings for the patch clamp amplifier that scientists need to be able to use in order to do their data analysis. Many of these metatada are not included in the sweep table and adding all of them could slow IPFX down considerably. If the experiment is recorded using MIES, the Lab Notebook associated with the experiment contains these metadata needed for experimental analysis. Unfortunately, the lab notebook associated with the experiment is part of a protected class for the end user and is not easily accessible. This pull request includes wrapper functions so that the end user can easily access the metadata that they need.
Addresses:
Addresses issue #360
Type of Fix:
functionality to not work as expected)
Solution:
Some Multiclamp Commander settings are not accessible through IPFX without accessing a protected class. This PR includes a wrapper around
LabNotebookReader.get_value()
, which will allow IPFX users to access any value in the Lab Notebook without accessing a protected class.Changes:
Wrapper functions for
get_notebook_value()
were inserted into the following classes:EphysDataSet
~ wrapper aroundEPhysDataInterface.get_notebook_value()
EphysDataInterface
~ abstractEphysNWBData
~ abstractMIESNWBData
~ wrapper aroundLabNotebookReader.get_value()
"Neut Cap Enable"
to"Neut Cap Enabled"
on line 29 oflabnotebook.py
in order to fix and error when entering"Neut Cap Value"
as a parameter forget_notebook_value()
Unit tests were updated as follows:
EphysDataFixture
test class and added newtest_get_notebook_value()
function fortest_ephys_dataset.py
Notebook
test class and added newtest_get_notebook_value()
function fortest_mies_nwb_data.py
Validation:
The unit tests that were updated should provide good coverage of inner and outer wrapper functionality. Here is a quick script to make sure that the values being returned make sense. Make sure there are .nwb files in the
nwb_dir
.Screenshots:
A screenshot of the console output from the above script for a voltage clamp sweep:
A screenshot of the console output from the above script for a current clamp sweep:
Unit Tests:
See
test_ephys_dataset.py
andtest_mies_nwb_data.py
Script to reproduce error and fix:
See above validation section
Configuration details:
The nwb file used for the screenshots was
Chrna2-Cre_OE25;Sst-IRES-FlpO;Ai65-533973.04.02.01.nwb
Checklist
Allen Institute Contribution Guidelines
Numpy Standards
appropriate
Notes:
There are really two wrapper functions here: one for
EphysDataInterface
and another forEphysDataSet
. I called both of themget_notebook_value()
, but it might be worthwhile naming them something different to avoid confusion.