From eec559292d7c3b596546a6d72ec8cdc96e1473db Mon Sep 17 00:00:00 2001 From: Eric Denovellis Date: Wed, 7 Feb 2024 14:46:30 -0800 Subject: [PATCH] Remove raster from mua figurl, update notebooks --- notebooks/51_MUA_Detection.ipynb | 141 ++++++++++------------- notebooks/py_scripts/51_MUA_Detection.py | 5 - src/spyglass/mua/v1/mua.py | 37 +++--- src/spyglass/ripple/v1/ripple.py | 5 +- 4 files changed, 84 insertions(+), 104 deletions(-) diff --git a/notebooks/51_MUA_Detection.ipynb b/notebooks/51_MUA_Detection.ipynb index 244449d19..d9bc782d0 100644 --- a/notebooks/51_MUA_Detection.ipynb +++ b/notebooks/51_MUA_Detection.ipynb @@ -9,8 +9,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "[2024-02-06 13:11:28,336][INFO]: Connecting edeno@lmf-db.cin.ucsf.edu:3306\n", - "[2024-02-06 13:11:28,362][INFO]: Connected edeno@lmf-db.cin.ucsf.edu:3306\n" + "[2024-02-07 14:44:16,324][INFO]: Connecting edeno@lmf-db.cin.ucsf.edu:3306\n", + "[2024-02-07 14:44:16,357][INFO]: Connected edeno@lmf-db.cin.ucsf.edu:3306\n" ] } ], @@ -202,17 +202,24 @@ "

mua_times_object_id

\n", " \n", " \n", - " \n", + " default\n", + "mediumnwb20230802_.nwb\n", + "default_exclusion\n", + "test_group\n", + "4eb59a18-045a-5768-d12e-b6473415ae1c\n", + "pos 0 valid times\n", + "mediumnwb20230802_235KSEV39O.nwb\n", + "a93532eb-2947-4552-8877-19ea0d2dcc4f \n", " \n", " \n", - "

Total: 0

\n", + "

Total: 1

\n", " " ], "text/plain": [ "*mua_param_nam *nwb_file_name *unit_filter_p *sorted_spikes *pos_merge_id *detection_int analysis_file_ mua_times_obje\n", "+------------+ +------------+ +------------+ +------------+ +------------+ +------------+ +------------+ +------------+\n", - "\n", - " (Total: 0)" + "default mediumnwb20230 default_exclus test_group 4eb59a18-045a- pos 0 valid ti mediumnwb20230 a93532eb-2947-\n", + " (Total: 1)" ] }, "execution_count": 3, @@ -365,66 +372,6 @@ "execution_count": 6, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[13:11:30][WARNING] Spyglass: Upsampled position data, frame indices are invalid. Setting add_frame_ind=False\n", - "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-common' version 1.6.0 because version 1.5.1 is already loaded.\n", - " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", - "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'core' version 2.6.0-alpha because version 2.5.0 is already loaded.\n", - " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", - "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-experimental' version 0.3.0 because version 0.2.0 is already loaded.\n", - " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", - "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-common' version 1.6.0 because version 1.5.1 is already loaded.\n", - " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", - "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'core' version 2.6.0-alpha because version 2.5.0 is already loaded.\n", - " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", - "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-experimental' version 0.3.0 because version 0.2.0 is already loaded.\n", - " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", - "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-common' version 1.6.0 because version 1.5.1 is already loaded.\n", - " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", - "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'core' version 2.6.0-alpha because version 2.5.0 is already loaded.\n", - " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", - "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-experimental' version 0.3.0 because version 0.2.0 is already loaded.\n", - " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", - "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-common' version 1.6.0 because version 1.5.1 is already loaded.\n", - " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", - "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'core' version 2.6.0-alpha because version 2.5.0 is already loaded.\n", - " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", - "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-experimental' version 0.3.0 because version 0.2.0 is already loaded.\n", - " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", - "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-common' version 1.6.0 because version 1.5.1 is already loaded.\n", - " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", - "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'core' version 2.6.0-alpha because version 2.5.0 is already loaded.\n", - " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", - "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-experimental' version 0.3.0 because version 0.2.0 is already loaded.\n", - " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", - "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-common' version 1.6.0 because version 1.5.1 is already loaded.\n", - " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", - "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'core' version 2.6.0-alpha because version 2.5.0 is already loaded.\n", - " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", - "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-experimental' version 0.3.0 because version 0.2.0 is already loaded.\n", - " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", - "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-common' version 1.6.0 because version 1.5.1 is already loaded.\n", - " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", - "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'core' version 2.6.0-alpha because version 2.5.0 is already loaded.\n", - " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", - "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-experimental' version 0.3.0 because version 0.2.0 is already loaded.\n", - " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", - "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-common' version 1.6.0 because version 1.5.1 is already loaded.\n", - " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", - "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'core' version 2.6.0-alpha because version 2.5.0 is already loaded.\n", - " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", - "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-experimental' version 0.3.0 because version 0.2.0 is already loaded.\n", - " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", - "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/pynwb/ecephys.py:90: UserWarning: ElectricalSeries 'e-series': The second dimension of data does not match the length of electrodes. Your data may be transposed.\n", - " warnings.warn(\"%s '%s': The second dimension of data does not match the length of electrodes. \"\n", - "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/pynwb/base.py:193: UserWarning: TimeSeries 'analog': Length of data does not match length of timestamps. Your data may be transposed. Time should be on the 0th dimension\n", - " warn(\"%s '%s': Length of data does not match length of timestamps. Your data may be transposed. \"\n", - "[13:11:34][INFO] Spyglass: Writing new NWB file mediumnwb20230802_235KSEV39O.nwb\n" - ] - }, { "data": { "text/html": [ @@ -847,8 +794,50 @@ "name": "stderr", "output_type": "stream", "text": [ - "[13:11:36][WARNING] Spyglass: Upsampled position data, frame indices are invalid. Setting add_frame_ind=False\n", - "[13:11:40][WARNING] Spyglass: Upsampled position data, frame indices are invalid. Setting add_frame_ind=False\n" + "[14:44:19][WARNING] Spyglass: Upsampled position data, frame indices are invalid. Setting add_frame_ind=False\n", + "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-common' version 1.6.0 because version 1.5.1 is already loaded.\n", + " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", + "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'core' version 2.6.0-alpha because version 2.5.0 is already loaded.\n", + " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", + "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-experimental' version 0.3.0 because version 0.2.0 is already loaded.\n", + " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", + "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-common' version 1.6.0 because version 1.5.1 is already loaded.\n", + " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", + "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'core' version 2.6.0-alpha because version 2.5.0 is already loaded.\n", + " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", + "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-experimental' version 0.3.0 because version 0.2.0 is already loaded.\n", + " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", + "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-common' version 1.6.0 because version 1.5.1 is already loaded.\n", + " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", + "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'core' version 2.6.0-alpha because version 2.5.0 is already loaded.\n", + " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", + "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-experimental' version 0.3.0 because version 0.2.0 is already loaded.\n", + " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", + "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-common' version 1.6.0 because version 1.5.1 is already loaded.\n", + " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", + "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'core' version 2.6.0-alpha because version 2.5.0 is already loaded.\n", + " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", + "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-experimental' version 0.3.0 because version 0.2.0 is already loaded.\n", + " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", + "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-common' version 1.6.0 because version 1.5.1 is already loaded.\n", + " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", + "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'core' version 2.6.0-alpha because version 2.5.0 is already loaded.\n", + " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", + "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-experimental' version 0.3.0 because version 0.2.0 is already loaded.\n", + " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", + "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-common' version 1.6.0 because version 1.5.1 is already loaded.\n", + " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", + "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'core' version 2.6.0-alpha because version 2.5.0 is already loaded.\n", + " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", + "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-experimental' version 0.3.0 because version 0.2.0 is already loaded.\n", + " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", + "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-common' version 1.6.0 because version 1.5.1 is already loaded.\n", + " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", + "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'core' version 2.6.0-alpha because version 2.5.0 is already loaded.\n", + " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", + "/home/edeno/miniconda3/envs/spyglass/lib/python3.9/site-packages/hdmf/spec/namespace.py:531: UserWarning: Ignoring cached namespace 'hdmf-experimental' version 0.3.0 because version 0.2.0 is already loaded.\n", + " warn(\"Ignoring cached namespace '%s' version %s because version %s is already loaded.\"\n", + "[14:44:24][WARNING] Spyglass: Upsampled position data, frame indices are invalid. Setting add_frame_ind=False\n" ] }, { @@ -906,8 +895,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "[13:11:40][WARNING] Spyglass: Upsampled position data, frame indices are invalid. Setting add_frame_ind=False\n", - "[13:11:43][WARNING] Spyglass: Upsampled position data, frame indices are invalid. Setting add_frame_ind=False\n" + "[14:44:25][WARNING] Spyglass: Upsampled position data, frame indices are invalid. Setting add_frame_ind=False\n", + "[14:44:29][WARNING] Spyglass: Upsampled position data, frame indices are invalid. Setting add_frame_ind=False\n" ] }, { @@ -920,7 +909,7 @@ { "data": { "text/plain": [ - "'https://figurl.org/f?v=gs://figurl/spikesortingview-10&d=sha1://ad1b2f082a47f72cf1ecca346f3a9e953319b07c&label=Multiunit%20Detection&zone=franklab.default'" + "'https://figurl.org/f?v=gs://figurl/spikesortingview-10&d=sha1://08d7c35434e8469686fca8aff3ec9319bccb44f9&label=Multiunit%20Detection&zone=franklab.default'" ] }, "execution_count": 9, @@ -931,19 +920,9 @@ "source": [ "(MuaEventsV1 & mua_key).create_figurl(\n", " zscore_mua=True,\n", - " plot_speed=True,\n", ")" ] }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "# need to figure out how to exclude time in position time" - ] - }, { "cell_type": "code", "execution_count": null, diff --git a/notebooks/py_scripts/51_MUA_Detection.py b/notebooks/py_scripts/51_MUA_Detection.py index 8db18414f..b12ffc98a 100644 --- a/notebooks/py_scripts/51_MUA_Detection.py +++ b/notebooks/py_scripts/51_MUA_Detection.py @@ -107,9 +107,4 @@ (MuaEventsV1 & mua_key).create_figurl( zscore_mua=True, - plot_speed=True, ) - -# + -# need to figure out how to exclude time in position time -# - diff --git a/src/spyglass/mua/v1/mua.py b/src/spyglass/mua/v1/mua.py index 9d3431ad2..bc1fb3401 100644 --- a/src/spyglass/mua/v1/mua.py +++ b/src/spyglass/mua/v1/mua.py @@ -130,7 +130,7 @@ def get_speed(key): def create_figurl( self, zscore_mua=True, - mua_times_color="red", + mua_times_color="#7570b3", speed_color="black", mua_color="black", view_height=800, @@ -168,22 +168,21 @@ def create_figurl( multiunit_firing_rate, dtype=np.float32 ).squeeze() * zscore_threshold, - color="red", + color=mua_times_color, width=1, ) - spike_times = SortedSpikesGroup.fetch_spike_data(key) - raster_view = vv.RasterPlot( - start_time_sec=time[0], - end_time_sec=time[-1], - plots=[ - vv.RasterPlotItem( - unit_id=str(i), - spike_times_sec=np.asarray(times, dtype=np.float32), - ) - for i, times in enumerate(spike_times) - ], - ) - + # spike_times = SortedSpikesGroup.fetch_spike_data(key) + # raster_view = vv.RasterPlot( + # start_time_sec=time[0], + # end_time_sec=time[-1], + # plots=[ + # vv.RasterPlotItem( + # unit_id=str(i), + # spike_times_sec=np.asarray(times, dtype=np.float32), + # ) + # for i, times in enumerate(spike_times) + # ], + # ) speed_view = vv.TimeseriesGraph().add_line_series( name="Speed [cm/s]", t=np.asarray(time), @@ -191,11 +190,17 @@ def create_figurl( color=speed_color, width=1, ) + speed_view.add_interval_series( + name="MUA Events", + t_start=mua_times.start_time.to_numpy(), + t_end=mua_times.end_time.to_numpy(), + color=mua_times_color, + ) vertical_panel_content = [ vv.LayoutItem( multiunit_firing_rate_view, stretch=2, title="Multiunit" ), - vv.LayoutItem(raster_view, stretch=8, title="Raster"), + # vv.LayoutItem(raster_view, stretch=8, title="Raster"), vv.LayoutItem(speed_view, stretch=2, title="Speed"), ] diff --git a/src/spyglass/ripple/v1/ripple.py b/src/spyglass/ripple/v1/ripple.py index ab72fd137..06e5a20e3 100644 --- a/src/spyglass/ripple/v1/ripple.py +++ b/src/spyglass/ripple/v1/ripple.py @@ -365,7 +365,7 @@ def plot_ripple( def create_figurl( self, zscore_ripple=False, - ripple_times_color="red", + ripple_times_color="#d95f02", consensus_color="black", speed_color="black", view_height=800, @@ -416,7 +416,7 @@ def create_figurl( ripple_consensus_trace, dtype=np.float32 ).squeeze() * zscore_threshold, - color="red", + color=ripple_times_color, width=1, ) @@ -454,6 +454,7 @@ def create_figurl( color=speed_color, width=1, ) + _add_ripple_times(speed_view, ripple_times, ripple_times_color) vertical_panel_content = [ vv.LayoutItem(consensus_view, stretch=2, title="Consensus"), vv.LayoutItem(lfp_view, stretch=8, title="LFPs"),