figpack 0.2.2__py3-none-any.whl → 0.2.4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of figpack might be problematic. Click here for more details.

@@ -5,7 +5,7 @@
5
5
  <link rel="icon" type="image/png" href="./assets/neurosift-logo-CLsuwLMO.png" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>figpack figure</title>
8
- <script type="module" crossorigin src="./assets/index-DUR9Dmwh.js"></script>
8
+ <script type="module" crossorigin src="./assets/index-CuFseOGX.js"></script>
9
9
  <link rel="stylesheet" crossorigin href="./assets/index-Cmae55E4.css">
10
10
  </head>
11
11
  <body>
@@ -0,0 +1,77 @@
1
+ """
2
+ RasterPlot view for figpack - displays multiple raster plots
3
+ """
4
+
5
+ from typing import List
6
+ import numpy as np
7
+ import zarr
8
+
9
+ from ...core.figpack_view import FigpackView
10
+ from .RasterPlotItem import RasterPlotItem
11
+
12
+
13
+ class RasterPlot(FigpackView):
14
+ """
15
+ A view that displays multiple raster plots for spike sorting analysis
16
+ """
17
+
18
+ def __init__(
19
+ self,
20
+ *,
21
+ start_time_sec: float,
22
+ end_time_sec: float,
23
+ plots: List[RasterPlotItem],
24
+ height: int = 500,
25
+ ):
26
+ """
27
+ Initialize a RasterPlot view
28
+
29
+ Args:
30
+ start_time_sec: Start time in seconds for the plot range
31
+ end_time_sec: End time in seconds for the plot range
32
+ plots: List of RasterPlotItem objects
33
+ height: Height of the plot in pixels (default: 500)
34
+ """
35
+ self.start_time_sec = float(start_time_sec)
36
+ self.end_time_sec = float(end_time_sec)
37
+ self.plots = plots
38
+ self.height = height
39
+
40
+ def _write_to_zarr_group(self, group: zarr.Group) -> None:
41
+ """
42
+ Write the RasterPlot data to a Zarr group
43
+
44
+ Args:
45
+ group: Zarr group to write data into
46
+ """
47
+ # Set the view type
48
+ group.attrs["view_type"] = "RasterPlot"
49
+
50
+ # Store view-level attributes
51
+ group.attrs["start_time_sec"] = self.start_time_sec
52
+ group.attrs["end_time_sec"] = self.end_time_sec
53
+ group.attrs["height"] = self.height
54
+ group.attrs["num_plots"] = len(self.plots)
55
+
56
+ # Store metadata for each plot
57
+ plot_metadata = []
58
+ for i, plot in enumerate(self.plots):
59
+ plot_name = f"plot_{i}"
60
+
61
+ # Store metadata
62
+ metadata = {
63
+ "name": plot_name,
64
+ "unit_id": str(plot.unit_id),
65
+ "num_spikes": len(plot.spike_times_sec),
66
+ }
67
+ plot_metadata.append(metadata)
68
+
69
+ # Create arrays for this plot
70
+ group.create_dataset(
71
+ f"{plot_name}/spike_times_sec",
72
+ data=plot.spike_times_sec,
73
+ dtype=np.float32,
74
+ )
75
+
76
+ # Store the plot metadata
77
+ group.attrs["plots"] = plot_metadata
@@ -0,0 +1,28 @@
1
+ """
2
+ RasterPlotItem for figpack - represents a single unit's raster plot
3
+ """
4
+
5
+ from typing import Union
6
+ import numpy as np
7
+
8
+
9
+ class RasterPlotItem:
10
+ """
11
+ Represents spike times for a single unit in a raster plot
12
+ """
13
+
14
+ def __init__(
15
+ self,
16
+ *,
17
+ unit_id: Union[str, int],
18
+ spike_times_sec: np.ndarray,
19
+ ):
20
+ """
21
+ Initialize a RasterPlotItem
22
+
23
+ Args:
24
+ unit_id: Identifier for the unit
25
+ spike_times_sec: Numpy array of spike times in seconds
26
+ """
27
+ self.unit_id = unit_id
28
+ self.spike_times_sec = np.array(spike_times_sec, dtype=np.float32)
@@ -13,6 +13,8 @@ from .UnitsTableRow import UnitsTableRow
13
13
  from .AverageWaveforms import AverageWaveforms
14
14
  from .SpikeAmplitudesItem import SpikeAmplitudesItem
15
15
  from .SpikeAmplitudes import SpikeAmplitudes
16
+ from .RasterPlotItem import RasterPlotItem
17
+ from .RasterPlot import RasterPlot
16
18
 
17
19
  __all__ = [
18
20
  "AutocorrelogramItem",
@@ -26,4 +28,6 @@ __all__ = [
26
28
  "AverageWaveforms",
27
29
  "SpikeAmplitudesItem",
28
30
  "SpikeAmplitudes",
31
+ "RasterPlotItem",
32
+ "RasterPlot",
29
33
  ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: figpack
3
- Version: 0.2.2
3
+ Version: 0.2.4
4
4
  Summary: A Python package for creating shareable, interactive visualizations in the browser
5
5
  Author-email: Jeremy Magland <jmagland@flatironinstitute.org>
6
6
  License: Apache-2.0
@@ -1,15 +1,15 @@
1
- figpack/__init__.py,sha256=BlI-Bj-E91wj4Sbs7MKpLjKuVrld9nLGeiNTSjNHoGw,124
1
+ figpack/__init__.py,sha256=9I8fC_RO4PRKHgMbTZqh-HfikC6KBrpKRaaJ4WQUKDg,124
2
2
  figpack/cli.py,sha256=DYV-DxzWnQTMNywW-ZzhlTEFOEIt11rAKdobdBmRQFk,12051
3
3
  figpack/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  figpack/core/_bundle_utils.py,sha256=73E6FinAvrt1QATGncIqyg6JLeiWVmlGF8NOcFyeYSs,1913
5
- figpack/core/_server_manager.py,sha256=8uxJftMgJ7EcVXtLo_VQuaiCZIyqgE89yDfCXKEgyeQ,10922
6
- figpack/core/_show_view.py,sha256=muuz0jMptAz7Z63kHlQzaBstKDwYWx4aM912xUD7Vrs,4892
7
- figpack/core/_upload_bundle.py,sha256=5nVNfHJewhu0oPPrBDkf9pzYj4T7ZyQFyZBgpK2v4qQ,12960
8
- figpack/core/config.py,sha256=6EU9CMvzGk9308Xlx8iJ2cIHJV6pqhXyiZGkK2snA4g,108
9
- figpack/core/figpack_view.py,sha256=85wb_oom0MSOk7eV8Xm96lOKYo0ggYyQJ_NC4F79qn8,2474
10
- figpack/figpack-gui-dist/index.html,sha256=HU8Dv1EzISPzQjibGxDA6tAz7VpzjL6o-HXOPKv4s4E,486
5
+ figpack/core/_server_manager.py,sha256=5-OUZ9Np9aKIjkYxGkjKjJKVL44FOydNWHpGuPm_Qs8,11085
6
+ figpack/core/_show_view.py,sha256=8OOuicYEvqN3wwuioKpffHChOpH5Gm_G564HArFo1FA,5302
7
+ figpack/core/_upload_bundle.py,sha256=lZQHl7pmXD-jQjyCBMN_w79xnHSDgxAx430qeImTyuE,13401
8
+ figpack/core/config.py,sha256=oOR7SlP192vuFhYlS-h14HnG-kd_3gaz0vshXch2RNc,173
9
+ figpack/core/figpack_view.py,sha256=h5D67h_71bb1kW3U0yRH34ZZN_4PGr8OwNL1U8fb5fg,4032
10
+ figpack/figpack-gui-dist/index.html,sha256=rObLsUTtDMwDG5vpeCsQC94MhnbNsVGjUVw0w7q2dIM,486
11
11
  figpack/figpack-gui-dist/assets/index-Cmae55E4.css,sha256=Yg0apcYehJwQvSQIUH13S7tsfqWQDevpJsAho0dDf0g,5499
12
- figpack/figpack-gui-dist/assets/index-DUR9Dmwh.js,sha256=iHbhpBXkfKoDzn-ZDxh2_uktWyzSTwes9gzgdBEM7PU,1590964
12
+ figpack/figpack-gui-dist/assets/index-CuFseOGX.js,sha256=wNJFCDKOVSoTMyipnTvnsTRv2tvB3FkxPAmsceAL2W4,1593545
13
13
  figpack/figpack-gui-dist/assets/neurosift-logo-CLsuwLMO.png,sha256=g5m-TwrGh5f6-9rXtWV-znH4B0nHgc__0GWclRDLUHs,9307
14
14
  figpack/franklab/__init__.py,sha256=HkehqGImJE_sE2vbPDo-HbgtEYaMICb9-230xTYvRTU,56
15
15
  figpack/franklab/views/TrackAnimation.py,sha256=3Jv1Ri4FIwTyqNahinqhHsBH1Bv_iZrEGx12w6diJ2M,5636
@@ -20,13 +20,15 @@ figpack/spike_sorting/views/Autocorrelograms.py,sha256=43EgKHvUmXUA9QSOJQZiTeLHq
20
20
  figpack/spike_sorting/views/AverageWaveforms.py,sha256=mvMkS3wf6MpI95tlGqKxBjxZlHqJr4aqG7SZvHigIsI,5193
21
21
  figpack/spike_sorting/views/CrossCorrelogramItem.py,sha256=uSd0i2hupteuILi_aKp7bYPYpL_PdC3CUDRMOEKUEM0,880
22
22
  figpack/spike_sorting/views/CrossCorrelograms.py,sha256=gqPXbEgg-GE3NCJQT2bahp1ITSW33F3q9ZuJRGrR68M,4061
23
+ figpack/spike_sorting/views/RasterPlot.py,sha256=gFdfH9SEm-tf8Ptqw4M1Q7IHRytUOULpBZfM2TdMfZQ,2215
24
+ figpack/spike_sorting/views/RasterPlotItem.py,sha256=iW7fuDEjSfvf5YMIwrF_6cmKvD76oCigOUMHtGgBsPI,638
23
25
  figpack/spike_sorting/views/SpikeAmplitudes.py,sha256=vQYWdJM-3qu568bcfGDC9k9LW_PgvU8j4tN9QYc08Mo,2665
24
26
  figpack/spike_sorting/views/SpikeAmplitudesItem.py,sha256=j5Na-diY-vRUAPu0t0VkyFCSKFnQ_f5HT077mB3Cy8c,1134
25
27
  figpack/spike_sorting/views/UnitSimilarityScore.py,sha256=cJA9MkETos9qHhV1tqgA7SfNEaPo-duXYCE76hSFGnA,948
26
28
  figpack/spike_sorting/views/UnitsTable.py,sha256=kQZvMlnPk8MAMPr3GlL4T3cAvGfSHBbB52jvMJ2-YAU,2173
27
29
  figpack/spike_sorting/views/UnitsTableColumn.py,sha256=zBnuoeILTuiVLDvtcOxqa37E5WlbR12rlwNJUeWXxY4,847
28
30
  figpack/spike_sorting/views/UnitsTableRow.py,sha256=rEb2hMTA_pl2fTW1nOvnGir0ysfNx4uww3aekZzfWjk,720
29
- figpack/spike_sorting/views/__init__.py,sha256=WdGhMcptNM5OJ5hG3PXOIyjGRsFcp12DtABocMehVSU,849
31
+ figpack/spike_sorting/views/__init__.py,sha256=iRq7xPmyhnQ3GffnPC0GxKGEWnlqXY_8IOxsMqYZ1IM,967
30
32
  figpack/views/Box.py,sha256=TfhPFNtVEq71LCucmWk3XX2WxQLdaeRiWGm5BM0k2l4,2236
31
33
  figpack/views/Image.py,sha256=xbnkmiqlrYD9_BGsQgSGgqXJbvNECTI7iJhLsEd3kSg,2990
32
34
  figpack/views/LayoutItem.py,sha256=wy8DggkIzZpU0F1zFIBceS7HpBb6lu-A3hpYINQzedk,1595
@@ -39,9 +41,9 @@ figpack/views/TabLayout.py,sha256=5g3nmL95PfqgI0naqZXHMwLVo2ebDlGX01Hy9044bUw,18
39
41
  figpack/views/TabLayoutItem.py,sha256=xmHA0JsW_6naJze4_mQuP_Fy0Nm17p2N7w_AsmVRp8k,880
40
42
  figpack/views/TimeseriesGraph.py,sha256=OAaCjO8fo86u_gO_frNfRGxng3tczxGDGKcJEvZo3rE,7469
41
43
  figpack/views/__init__.py,sha256=8y4KdRtrdDF0-xtQQkj4k_d8Ajk44Q7myztl3StdZcU,407
42
- figpack-0.2.2.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
43
- figpack-0.2.2.dist-info/METADATA,sha256=vbtrTDAXwFUDxLwYY_7DsjhXY6gHjMvl3r_5UH8Ectk,5886
44
- figpack-0.2.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
45
- figpack-0.2.2.dist-info/entry_points.txt,sha256=l6d3siH2LxXa8qJGbjAqpIZtI5AkMSyDeoRDCzdrUto,45
46
- figpack-0.2.2.dist-info/top_level.txt,sha256=lMKGaC5xWmAYBx9Ac1iMokm42KFnJFjmkP2ldyvOo-c,8
47
- figpack-0.2.2.dist-info/RECORD,,
44
+ figpack-0.2.4.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
45
+ figpack-0.2.4.dist-info/METADATA,sha256=6sTrCsnt0haWZvUyuQdXXajQU8fyKtEtX0yFYN2JJ0U,5886
46
+ figpack-0.2.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
47
+ figpack-0.2.4.dist-info/entry_points.txt,sha256=l6d3siH2LxXa8qJGbjAqpIZtI5AkMSyDeoRDCzdrUto,45
48
+ figpack-0.2.4.dist-info/top_level.txt,sha256=lMKGaC5xWmAYBx9Ac1iMokm42KFnJFjmkP2ldyvOo-c,8
49
+ figpack-0.2.4.dist-info/RECORD,,