byte-physics / x-to-nwb

Convert various patch-clamp data formats to NWBv2
Other
3 stars 6 forks source link

Determine clamp type #8

Closed luiztauffer closed 3 years ago

luiztauffer commented 3 years ago

I’ve been trying to use the package to convert abf files to nwb, but the results are a bit dubious. The resulting NWB contains IzeroClampSeries objects, when the original file actually contains VoltageClamp recordings.

In the current code, the clamp mode is found by comparison of abf._adcSection.nTelegraphMode[channel] with these variables:

V_CLAMP_MODE = 0
I_CLAMP_MODE = 1
I0_CLAMP_MODE = 2

Now, I couldn’t find any references for these values in the online documentation of abf files or the pyabf package. Could you point me to the reference you used to find the clamp mode in this way?

In the end, what I’m interested in is the most reliable source of truth to determine the type of clamp experiment performed.

t-b commented 3 years ago

I've taken that from the Axon Multiclamp Commander SDK (we are always using a MultiClamp 700B Commander).

Lines 521 to 525 of AxMultiClampMsg.h has:

// Parameters for MCCMSG_SetMode() and MCCMSG_GetMode()
// uModeID filled in / or puModeID filled out as:
const UINT MCCMSG_MODE_VCLAMP                          = 0;
const UINT MCCMSG_MODE_ICLAMP                           = 1;   
const UINT MCCMSG_MODE_ICLAMPZERO                   = 2;

For determining the type of clamp experiment I'm deriving it from units in the DatConverter, see https://github.com/byte-physics/x-to-nwb/blob/597e5bbab026f50d849b2e0fc0464e87b9e1e7a3/src/x_to_nwb/DatConverter.py#L121. Maybe that should be done here as well.

luiztauffer commented 3 years ago

thanks @t-b !