Closed aferguso2 closed 2 years ago
It turns out I was trying to look at ks1 sorted data in phy2. This causes the GUI to crash. Is that always the case? If so, can you add it to the README so others don't deal with this too.
@afergu thanks you for the information. No, it is not expected, and phy2 ought to work with ks1 data. If you're able to send me your dataset I can try opening it on my Linux machine as well as a Macbook Pro.
I can send you data. It's large and I'd rather not have it on this issue publicly. Can I pm you a dropbox link?
Thanks, I was able to open your dataset on my Linux machine, and I couldn't reproduce the issue. I'll try on macOS within the next few days.
But looking at the stack trace it seems that the problem comes from the Web-based cluster view which has caused many issues. This might only be fixable via https://github.com/cortex-lab/phy/issues/951 which will only happen in a few months...
When I used ks2 to sort my data, it reported many 'bad channels' (~40/64channels) but it opened successfully without crashing the GUI.
However I changed
ops.minfr_goodchannels = 0
to stop ks2 from removing those channels.
Now when I try to load this dataset in phy, it crashes in the same way as for ks1 data. I will also pm you this data set
I tried both datasets on my macOS 10.15.6 (macbook pro 2015) on master and was unable to reproduce the issue. I'm out of suggestions unfortunately :(
Thanks so much for taking a look! I'll try it on another machine and see what happens.
I open phy successfully. I click on one unit and all windows update to show the waveform. When I click on a second unit in Cluster View or Similarity View, it crashes. Occasionally if I click one unit and then wait a while, it will also crash. This happens on any file I try.
master
(currently at2.0b2.dev-git-v2.0a1-201-g38ff8e29
); before I checked out the dev build I was having this same issue on the most recently released version (which is why I checked out the dev build in the first place!)Full stack trace
``` Process: python3.7 [25048] Path: /opt/anaconda3/*/python Identifier: python3.7 Version: 0 Code Type: X86-64 (Native) Parent Process: bash [24631] Responsible: Terminal [480] User ID: 501 Date/Time: 2020-09-14 10:46:07.515 -0400 OS Version: Mac OS X 10.15.6 (19G2021) Report Version: 12 Bridge OS Version: 4.6 (17P6610) Anonymous UUID: 3C8EE0FC-52A5-2DD6-F822-278DBFD8DE82 Sleep/Wake UUID: 7F9D6E23-1A11-4CCB-BB3A-C48D43DBCE8F Time Awake Since Boot: 34000 seconds Time Since Wake: 7900 seconds System Integrity Protection: enabled Crashed Thread: 39 Thread (pooled) Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000018 Exception Note: EXC_CORPSE_NOTIFY Termination Signal: Segmentation fault: 11 Termination Reason: Namespace SIGNAL, Code 0xb Terminating Process: exc handler [25048] VM Regions Near 0x18: --> __TEXT 000000010bc10000-000000010becf000 [ 2812K] r-x/rwx SM=COW /opt/anaconda3/*/*.7 Thread 0:: CrBrowserMain Dispatch queue: com.apple.main-thread 0 QtCore 0x000000011942019c QHashData::nextNode(QHashData::Node*) + 28 1 QtCore 0x00000001195d783a buildMetaObject(QMetaObjectBuilderPrivate*, char*, int, bool) + 5466 2 QtCore 0x00000001195d62d1 QMetaObjectBuilder::toMetaObject() const + 65 3 QtCore.abi3.so 0x00000001192104ce PyQtSlotProxy::PyQtSlotProxy(_object*, QObject*, Chimera::Signature const*, bool) + 398 4 QtCore.abi3.so 0x000000011920bc11 get_receiver_slot_signature(_object*, QObject*, Chimera::Signature const*, bool, QObject**, QByteArray&, bool, int) + 289 5 QtCore.abi3.so 0x000000011920bfb0 pyqtBoundSignal_connect(_object*, _object*, _object*) + 272 6 python 0x000000010bc3c2fb _PyMethodDef_RawFastCallKeywords + 395 7 python 0x000000010bd6cb7c call_function + 364 8 python 0x000000010bd64ebb _PyEval_EvalFrameDefault + 22187 9 python 0x000000010bd5e157 _PyEval_EvalCodeWithName + 551 10 python 0x000000010bc3a842 _PyFunction_FastCallDict + 450 11 python 0x000000010bc3eaaa method_call + 122 12 python 0x000000010bc3c83f PyObject_Call + 127 13 python 0x000000010be2e7c6 partial_call + 262 14 python 0x000000010bc3c83f PyObject_Call + 127 15 python 0x000000010bd65066 _PyEval_EvalFrameDefault + 22614 16 python 0x000000010bd5e157 _PyEval_EvalCodeWithName + 551 17 python 0x000000010bc3a842 _PyFunction_FastCallDict + 450 18 python 0x000000010bc3eaaa method_call + 122 19 python 0x000000010bc3c83f PyObject_Call + 127 20 python 0x000000010bd65066 _PyEval_EvalFrameDefault + 22614 21 python 0x000000010bc3a770 _PyFunction_FastCallDict + 240 22 python 0x000000010bc3eaaa method_call + 122 23 python 0x000000010bc3c83f PyObject_Call + 127 24 python 0x000000010bd65066 _PyEval_EvalFrameDefault + 22614 25 python 0x000000010bd5e157 _PyEval_EvalCodeWithName + 551 26 python 0x000000010bc3a842 _PyFunction_FastCallDict + 450 27 python 0x000000010bc3eaaa method_call + 122 28 python 0x000000010bc3c83f PyObject_Call + 127 29 python 0x000000010bd65066 _PyEval_EvalFrameDefault + 22614 30 python 0x000000010bc3bf1b _PyFunction_FastCallKeywords + 235 31 python 0x000000010bd6cacc call_function + 188 32 python 0x000000010bd64697 _PyEval_EvalFrameDefault + 20103 33 python 0x000000010bd5e157 _PyEval_EvalCodeWithName + 551 34 python 0x000000010bc3a842 _PyFunction_FastCallDict + 450 35 python 0x000000010bc3eaaa method_call + 122 36 python 0x000000010bc3c83f PyObject_Call + 127 37 python 0x000000010bd65066 _PyEval_EvalFrameDefault + 22614 38 python 0x000000010bc3a770 _PyFunction_FastCallDict + 240 39 python 0x000000010bc3eaaa method_call + 122 40 python 0x000000010bc3c83f PyObject_Call + 127 41 QtCore.abi3.so 0x000000011920ff67 PyQtSlot::call(_object*, _object*) const + 39 42 QtCore.abi3.so 0x000000011920fe76 PyQtSlot::invoke(void**, _object*, void*, bool) const + 374 43 QtCore.abi3.so 0x000000011920ff0c PyQtSlot::invoke(void**, _object*, void*) const + 12 44 QtCore.abi3.so 0x0000000119212ceb qt_metacall_worker(_sipSimpleWrapper*, _typeobject*, _sipTypeDef*, QMetaObject::Call, int, void**) + 683 45 QtCore.abi3.so 0x0000000119144674 sipQObject::qt_metacall(QMetaObject::Call, int, void**) + 68 46 QtCore 0x00000001195c1029 QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const + 1897 47 QtWebChannel 0x0000000118ef8069 QMetaObjectPublisher::invokeMethod(QObject*, QMetaMethod const&, QJsonArray const&) + 6153 48 QtWebChannel 0x0000000118ef9583 QMetaObjectPublisher::invokeMethod(QObject*, QByteArray const&, QJsonArray const&) + 2115 49 QtWebChannel 0x0000000118efd0c7 QMetaObjectPublisher::handleMessage(QJsonObject const&, QWebChannelAbstractTransport*) + 2087 50 QtCore 0x00000001195e92e5 void doActivateConsole log
``` 10:56:00.936 [D] __init__:68 Start capturing exceptions. 10:56:01.094 [D] model:607 Loading spike clusters. 10:56:01.209 [D] model:557 No channel shank file found. 10:56:01.210 [D] model:680 Loading templates. 10:56:01.220 [D] model:709 Templates are dense. 10:56:01.220 [W] model:656 Skipping spike waveforms that do not exist, they will be extracted on the fly from the raw data as needed. 10:56:01.220 [D] model:715 Loading the whitening matrix. 10:56:01.222 [D] model:722 Loading the inverse of the whitening matrix. 10:56:01.225 [D] model:751 Loading features. 10:56:01.228 [D] model:766 Features are sparse. 10:56:01.228 [D] model:788 Loading template features. 10:56:01.230 [D] model:798 Template features are sparse. 10:56:01.383 [D] context:100 Initialize joblib cache dir at `/Users/alex/Desktop/spike_data/lalo_20200326_RSnGm/.phy`. 10:56:01.384 [D] context:101 Reducing the size of the cache if needed. 10:56:01.387 [D] base:102 Add filter `high_pass`. 10:56:01.388 [D] config:31 Load config file `/Users/alex/.phy/phy_config.py`. 10:56:01.388 [D] plugin:145 Loading 0 plugins. 10:56:01.390 [D] context:209 The file `/Users/alex/Desktop/spike_data/lalo_20200326_RSnGm/.phy/new_cluster_id.pkl` doesn't exist. 10:56:01.436 [D] context:185 Save data to `/Users/alex/Desktop/spike_data/lalo_20200326_RSnGm/.phy/spikes_per_cluster.pkl`. 10:56:01.454 [D] gui:463 Creating GUI. 10:56:01.490 [D] state:46 Load /Users/alex/.phy/TemplateGUI/state.json for GUIState. 10:56:01.745 [D] gui:718 Add view ClusterView to GUI. 10:56:01.794 [D] gui:718 Add view SimilarityView to GUI. 10:56:01.840 [D] gui:718 Add view WaveformView to GUI. 10:56:01.897 [D] base:334 Set state for WaveformView. 10:56:01.909 [D] gui:718 Add view CorrelogramView to GUI. 10:56:01.912 [D] base:334 Set state for CorrelogramView. 10:56:01.935 [D] gui:718 Add view ISIView to GUI. 10:56:01.937 [D] base:334 Set state for ISIView. 10:56:01.997 [D] gui:718 Add view FeatureView to GUI. 10:56:02.000 [D] base:334 Set state for FeatureView. 10:56:02.024 [D] gui:718 Add view AmplitudeView to GUI. 10:56:02.026 [D] base:334 Set state for AmplitudeView. 10:56:02.048 [D] gui:718 Add view FiringRateView to GUI. 10:56:02.051 [D] base:334 Set state for FiringRateView. 10:56:02.187 [D] gui:718 Add view TraceView to GUI. 10:56:02.190 [D] base:334 Set state for TraceView. 10:56:02.190 [D] base:490 Set color scheme to depth. 10:56:02.209 [D] base:1623 Adding default color schemes to TraceView. 10:56:02.270 [D] gui:718 Add view ProbeView to GUI. 10:56:02.272 [D] base:334 Set state for ProbeView. 10:56:02.288 [D] gui:718 Add view TemplateFeatureView to GUI. 10:56:02.290 [D] base:334 Set state for TemplateFeatureView. 10:56:02.310 [D] gui:718 Add view ClusterScatterView to GUI. 10:56:02.312 [D] base:334 Set state for ClusterScatterView. 10:56:02.313 [D] base:490 Set color scheme to firing_rate. 10:56:02.313 [D] base:1623 Adding default color schemes to ClusterScatterView. 10:56:02.455 [D] gui:519 Load the geometry state. 10:56:08.089 [D] supervisor:813 Clusters selected: [33] (26) 10:56:09.165 [D] supervisor:835 Similar clusters selected: [23] (104) Segmentation fault: 11 ```