AllenInstitute / MIES

Multichannel Igor Electrophysiology Suite
https://alleninstitute.github.io/MIES/user.html
Other
23 stars 7 forks source link

Logfile asserts: "The control check_Settings_TP_SaveTP in the panel ITC18USB_Dev_0 is disabled. ..." #1741

Open t-b opened 1 year ago

t-b commented 1 year ago

Example:

{
  "action": "assert",
  "exp": "2023_03_09_141758",
  "id": "b53f850",
  "message": "The control check_Settings_TP_SaveTP in the panel ITC18USB_Dev_0 is disabled. The control state cannot be changed when disabled.",
  "source": "ASSERT",
  "stacktrace": "Stacktrace:
   PGC_SetAndActivateControlVar(...)#L133 [MIES_ProgrammaticGUIControl.ipf]
   PGC_SetAndActivateControl(...)#L202 [MIES_ProgrammaticGUIControl.ipf]
   ",
  "ts": "2023-03-09T15:04:00.289-08:00"
}

Experiments:

... [a lot more]
"662393/1247731795/Gad2-IRES-Cre;Ai14-662393.07.01.01"
"664678/1252010989/Ndnf-IRES2-dgCre;Ai14-664678.09.01.01"
"665265/1253682024/C57BL6J-665265.07.04.01"
"667037/1256036345/Pvalb-IRES-Cre;Ai14-667037.04.01.01"
"667552/1254755684/C57BL6J-667552.08.04.01"
"667553/1254758089/C57BL6J-667553.08.06.01"
"667556/1258044386/C57BL6J-667556.04.06.01"
"668017/1258648896/Sst-IRES-Cre;Ai14-668017.03.02.01"
"669336/1260880704/Rbp4-Cre_KL100;Ai14-669336.09.06.01"
"670421/1262553481/Sst-IRES-Cre;Ai14-670421.05.02.01"
"670831/1264654721/Slc17a6-IRES-Cre;Ai14-670831.09.06.01"
"670838/1262545968/Gad2-IRES-Cre;Ai14-670838.12.06.03"
"H23.03.303/1250938210/H23.03.303.12.65.01.04"
"H23.26.404/1260936953/H23.26.404.11.73.01.01"
"H23.26.404/1260936953/H23.26.404.11.73.01.05"
"Untitled"
"Z12034/1258416629/QN23.26.010.16.10A.06"
"Z15061/1246122589/QN23.26.003.14.10B.05"

Files:

.\W10DT1120232-08-svc-ivscc-2023-05-17T21_23_57Z\Log.jsonl.1FYznC
.\W10DT1120232-08-svc-ivscc-2023-05-09T17_16_49Z\Log.jsonl.0Ffw7Y
.\W10DT1120232-08-svc-ivscc-2023-05-02T20_58_40Z\Log.jsonl.yw9v5Y
.\W10DT1120232-08-svc-ivscc-2023-05-08T19_59_38Z\Log.jsonl.xGo6YL
.\W10DT1120232-08-svc-ivscc-2023-04-28T16_33_57Z\Log.jsonl.lQg82w
.\W10DT1120232-08-svc-ivscc-2023-02-15T19_16_15Z\Log.jsonl.ZPVQbp
.\W10DT1120232-08-svc-ivscc-2023-02-03T01_35_14Z\Log.jsonl.KT1QiL
.\W10DT1120232-08-audrey.mcc-2023-04-18T16_29_55Z\Log.jsonl.1SESuX
.\W10DT1120232-08-audrey.mcc-2023-04-18T16_29_55Z\Log.jsonl.Gj0eLr
.\W10DT1120232-08-audrey.mcc-2023-03-24T22_53_53Z\Log.jsonl.ZoifDo
.\W10DT1120232-08-audrey.mcc-2023-03-24T22_53_53Z\Log.jsonl.PN15yf
.\W10DT1120232-07-krista.blake-2023-04-25T17_05_58Z\Log.jsonl.PJTnkq
.\W10DT1120232-07-krista.blake-2023-04-25T17_05_58Z\Log.jsonl.gTRHph
.\W10DT1120232-07-krista.blake-2023-04-06T17_57_25Z\Log.jsonl.GfwCfJ
.\W10DT1120232-07-krista.blake-2023-04-07T17_58_08Z\Log.jsonl.uI1Cw1
.\W10DT1120232-07-krista.blake-2023-04-06T17_57_25Z\Log.jsonl.KkJggB
.\W10DT1120232-07-krista.blake-2023-03-28T16_24_28Z\Log.jsonl.dPmTEP
.\W10DT1120232-07-krista.blake-2023-04-07T17_58_08Z\Log.jsonl.CrL360
.\W10DT1120232-07-krista.blake-2023-03-31T21_23_46Z\Log.jsonl.Lwk7CN
.\W10DT1120232-07-krista.blake-2023-03-23T20_03_48Z\Log.jsonl.nJVbqD
.\W10DT1120232-07-krista.blake-2023-03-16T17_48_00Z\Log.jsonl.Amd11D
.\W10DT1120232-07-krista.blake-2023-03-28T16_24_28Z\Log.jsonl.lyAoEc
.\W10DT1120232-07-krista.blake-2023-03-23T20_03_48Z\Log.jsonl.5pI4cf
.\W10DT1120232-07-krista.blake-2023-03-31T21_23_46Z\Log.jsonl.tCVbox
.\W10DT1120232-07-krista.blake-2023-03-16T17_48_00Z\Log.jsonl.bQppac
.\W10DT1120232-03-svc-ivscc-2023-01-12T19_07_36Z\Log.jsonl.drub4t
.\W10DT1120232-03-svc-ivscc-2023-01-18T17_03_13Z\Log.jsonl.nttB9h
.\W10DT1120232-03-svc-ivscc-2023-01-13T19_16_08Z\Log.jsonl.elQyig
.\W10DT1120232-03-svc-ivscc-2023-01-10T17_08_03Z\Log.jsonl.1sJliC
.\W10DT1120232-01-svc-mpe-2023-01-06T21_05_29Z\Log.jsonl.JcTKdb
.\W10DT1120232-03-svc-ivscc-2023-01-11T18_34_49Z\Log.jsonl.1E26e9
.\W10DT1120232-01-svc-ivscc-2023-03-01T00_34_31Z\Log.jsonl.ani09U
.\W10DT1120232-01-svc-mpe-2023-01-06T21_05_29Z\Log.jsonl.vyqPuE
.\W10DT1120232-01-marshall.vanness-2023-02-21T17_43_50Z\Log.jsonl.MN5oiF
.\W10DT1120232-03-svc-ivscc-2023-01-04T16_51_35Z\Log.jsonl.wFsyLo
.\W10DT1120232-01-svc-ivscc-2023-03-01T00_34_31Z\Log.jsonl.knzzKY
.\W10DT1120232-01-marshall.vanness-2023-02-21T17_43_50Z\Log.jsonl.zkW01E
.\W10DT1120232-01-balreet.pawar-2023-04-13T18_04_40Z\Log.jsonl.ORN297
.\W10DT1120232-01-balreet.pawar-2023-04-13T18_04_40Z\Log.jsonl.RfTGFh
.\W10DT1120232-01-balreet.pawar-2023-04-05T16_14_27Z\Log.jsonl.0QZkau
.\W10DT1120232-01-balreet.pawar-2023-03-21T15_57_10Z\Log.jsonl.rFGNWi
.\W10DT1120232-01-balreet.pawar-2023-04-05T16_14_27Z\Log.jsonl.eDPvzV
.\W10DT1120232-01-balreet.pawar-2023-03-13T19_22_57Z\Log.jsonl.Fw3A1d
.\W10DT1120232-01-balreet.pawar-2023-03-10T17_56_28Z\Log.jsonl.1oOw0Y
.\W10DT1120232-01-balreet.pawar-2023-03-13T19_22_57Z\Log.jsonl.oelIjE
.\W10DT1120232-01-balreet.pawar-2023-02-14T17_31_37Z\Log.jsonl.skmzeq
.\W10DT1120232-01-balreet.pawar-2023-03-21T15_57_10Z\Log.jsonl.jLOD7m
.\W10DT1120232-01-balreet.pawar-2023-02-14T17_31_37Z\Log.jsonl.KKojsW
.\W10DT1120232-01-balreet.pawar-2023-03-10T17_56_28Z\Log.jsonl.Sb5IS6

The ZeroMQ log file has

{
  "direction": "Incoming",
  "exp": "2023_03_16_142849",
  "id": "2f543ff",
  "json": {
    "CallFunction": {
      "name": "PGC_SetAndActivateControlVar",
      "params": [
        "ITC18USB_Dev_0",
        "check_Settings_TP_SaveTP",
        "0"
      ]
    },
    "messageID": "save_test_pulse",
    "version": 1
  },
  "source": "XOP",
  "ts": "2023-03-16T14:28:49.059-07:00"
}

so the Save TP control is set from ZeroMQ XOP aka WSE.

MIES version: "Release_2.6_20220606-720-g11874eca8"

With Auto TP we also adjust the save TP checkbox regularly and also disable it via AdaptDependentControls.

For internal MIES use one can call PGC_SetAndActivateControl with a mode flag which allows to turn off the disabled check of a control. But I would prefer to not allow that for outside users.

Questions:

ru57y34nn commented 1 year ago

@t-b sorry for the late response here but I have uploaded a few experiments from the above list to your server and they are in the folder called /issue-1741. Let me know if you would like me to upload any additional files

t-b commented 1 year ago

Thanks for the uploaded experiments. I've looked into them and found what I expected.

There are assertion messages like

  !!! Assertion FAILED !!!
  Message: "The control check_Settings_TP_SaveTP in the panel ITC18USB_Dev_0 is disabled. The control state cannot be changed when disabled."
  Please provide the following information if you contact the MIES developers:
  ################################
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  Stacktrace:
PGC_SetAndActivateControlVar(...)#L133 [MIES_ProgrammaticGUIControl.ipf]
PGC_SetAndActivateControl(...)#L202 [MIES_ProgrammaticGUIControl.ipf]
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  Time: 2023-03-30T10:24:48-07:00
  Locked device: [ITC18USB_Dev_0]
  Current sweep: [10]
  DAQ: [DAQ_BG_MULTI_DEVICE]
  Testpulse: [TEST_PULSE_NOT_RUNNING]
  Experiment: 2023_03_30_094323 (Packed)
  Igor Pro version: 9.0.1.1 (38961)
  MIES version:
  Release_2.6_20220606-720-g11874eca8
Date and time of last commit: 2023-01-13T17:42:47+01:00
Submodule status:
 e46385bee5c53a0daa1eca0c1d6af44d19677c13 Packages/IPNWB (e46385b)
 d229d451f35e88b8c38edb8c26533acfbc3fd10f Packages/doc/doxygen-filter-ipf (heads/main)
 873dee901d747ceedfce01e66c058c8791a3b046 Packages/unit-testing (873dee9)
  ################################

in there.

And the culprit is really that the WSE tries to change the check_Settings_TP_SaveTP checkbox while that checkbox is disabled. It get's disabled by AutoTP as that requires check_Settings_TP_SaveTP to be checked.

@ru57y34nn

Questions:

ru57y34nn commented 11 months ago

@t-b the way that the WSE works right now is when we first switch from voltage clamp to current clamp after we complete the cell attached sweep, the WSE will first check the "save each testpulse" button and then it will check the "Auto testpulse" button. The "Auto testpulse" button will get checked each time we switch from voltage clamp to current clamp, but the "save each testpulse" button will only be checked if we are at the appropriate state in the WSE, the state where we run the resting membrane potential sweep, which is the state at which we want to save each testpulse.

I actually have not been able to recreate this issue. I am not sure how helpful this will be but I have attached a screenshot of the relevant WSE code for your reference. Let me know if you have anymore questions but I will also see if we can implement a check of the Auto TP state before checking the save testpulse button.

WSE_python_code

t-b commented 11 months ago

@ru57y34nn So the only reason you are checking "save each testpulse" is because "Auto TP" requires it?

ru57y34nn commented 10 months ago

@t-b we are checking "save each testpulse" here because we want to save the testpulses while the user is at this state (which is the first current clamp sweep we run) for analysis later. This first current clamp sweep is ran without autobias so we can measure the average voltage that the cell wants to sit at over a 6 second sweep and then we hold the cell at that potential, but we want to be able to analyze the test pulses that were collected during that sweep (I forget that exact reason at this moment). Sorry about the late reply but let me know if you have more questions and I will try to better about responding more immediately going forward, thanks.

t-b commented 9 months ago

Tim and me had a brief look here and we think it would be beneficial to inspect the WSE logfiles. It might also be helpful to check if WSE's write_to_igor checks the error code in the zmq return message.