-
Notifications
You must be signed in to change notification settings - Fork 35
Description
Hi All (and Scott!)!
First off, thanks so much for developing pyabf, it is incredibly useful, well written, and well documented. It has become instrumental in the development of our SanPy software for whole-call current-clamp analysis...
Issue
I have a users abf file where they specify a userList to specify the delay to the onset of a digital pulse. I can find the pyabf userList easy enough, great!
What I can't find is the epoch to associate the user list with? Looking at screenshots of the pClamp configuration, it appears they have specified the user list as follows:
Parameter To Change: Epoch E Duration (ms)
userList = [150.0, 300.0, 600.0, 1500.0, 3000.0, 6000.0, 150.0, 300.0, 600.0, 1500.0, 3000.0, 6000.0, 150.0, 300.0, 600.0, 1500.0, 3000.0, 6000.0]
Here is a print of the pyabf EpochTable from the file
EPOCH A B C D E F
Type Step Step Step Step Step Step
First Level 0.00 -10.00 0.00 0.00 0.00 0.00
Delta Level 0.00 0.00 0.00 0.00 0.00 0.00
First Duration (points) 10000 5000 20000 1 150 10
Delta Duration (points) 0 0 0 0 0 0
Digital Pattern #3-0 0000 0000 0000 0100 0000 0100
Digital Pattern #7-4 0000 0000 0000 0000 0000 0000
Train Period (points) 0 0 0 0 0 0
Pulse Width (points) 0 0 0 0 0 0
And here is some pyabf info I can pull out about the user list
userList: [150.0, 300.0, 600.0, 1500.0, 3000.0, 6000.0, 150.0, 300.0, 600.0, 1500.0, 3000.0, 6000.0, 150.0, 300.0, 600.0, 1500.0, 3000.0, 6000.0]
userListEnable: [1]
userListParamToVary: [115]
userListParamToVaryName: ['EPOCHTRAINPERIOD']
userListRepeat: [0]
Question 1
The abf.sweepD(digitalChannel) is not showing/reflecting the changes (from sweep to sweep) as expected. I would expect plotting sweepD(digitalChannel) would show the changes in the timing of the pulse that increases from sweep to sweep using the userList values but it does not.
Question 2
I have the userList and can hard code offsets from the time of epoch E. Is there a way I can read the epoch that is being modified by a userList?
Plots
-
Top:
sweepDacross all sweeps and all digital channel (0..7). This is where I expect to find the increasing delays following theuserList, but do not :( -
Middle:
sweepCplot, none expected, good! -
Bottom: Plot of recording with
sweepY, you can see the extracellular stimulations that was actually delivered at different delays according to theuserList. Yet, they are not reflected insweepD(top plot).
System
- macOS Ventura 13.3.1 (a)
- Python: 3.11.5
- pyabf: 2.3.8
Thanks again for pyAbf, I am a huge fan.
