Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit d3d6e1b

Browse filesBrowse files
committed
working example
1 parent 54225c8 commit d3d6e1b
Copy full SHA for d3d6e1b

File tree

1 file changed

+15
-6
lines changed
Filter options

1 file changed

+15
-6
lines changed

‎examples/selection_tools/optical_physiology.py

Copy file name to clipboardExpand all lines: examples/selection_tools/optical_physiology.py
+15-6Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,10 @@ def decomposition(movie, n_components=5):
8989

9090
ica = FastICA(n_components=n_components, fun="exp", random_state=0)
9191

92-
spatial_components = np.abs(ica.fit_transform(X).reshape(*dims, n_components).T)
92+
spatial_components = np.abs(ica.fit_transform(X))
9393
temporal_components = np.abs(ica.mixing_)
94+
temporal_components *= spatial_components.max(axis=0)
95+
spatial_components = spatial_components.reshape(*dims, n_components).T
9496

9597
contours = list()
9698
for index in range(n_components):
@@ -121,13 +123,13 @@ def decomposition(movie, n_components=5):
121123
figure = fpl.Figure(
122124
(3, 1),
123125
size=(700, 1024),
124-
names=["movie", "heatmap", "selected"]
126+
names=["movie", "heatmap", "selected"],
125127
)
126128

127129
figure["heatmap"].camera.maintain_aspect = False
128130
figure["selected"].camera.maintain_aspect = False
129131

130-
movie_graphic = figure["movie"].add_image(movie[0], cmap="viridis")
132+
movie_graphic = figure["movie"].add_image(movie[0], cmap="viridis", vmin=movie.min(), vmax=movie.max())
131133
contours_graphic = figure["movie"].add_line_collection(contours, cmap="tab10")
132134

133135
heatmap_graphic = figure["heatmap"].add_image(time_series, cmap="viridis")
@@ -138,17 +140,22 @@ def decomposition(movie, n_components=5):
138140
selector_time_line = temporal_selected_graphic.add_linear_selector()
139141

140142
def set_timepoint(ev):
141-
timepoint = ev.info["selection"]
142-
movie_graphic.data[:] = movie[round(timepoint)]
143+
timepoint = ev.info["value"]
144+
movie_graphic.data[:] = movie[int(timepoint)]
143145
selector_time_heatmap.selection = timepoint
144146
selector_time_line.selection = timepoint
145147

148+
selector_time_line.add_event_handler(set_timepoint, "selection")
149+
selector_time_heatmap.add_event_handler(set_timepoint, "selection")
146150

147151
@movie_graphic.add_event_handler("click")
148152
def image_clicked(ev):
149153
contours_graphic.cmap = "tab10"
150-
nearest_contour = fpl.utils.get_nearest_graphics((ev.x, ev.y), contours_graphic)[0]
154+
pos = figure["movie"].map_screen_to_world(ev)
155+
index = fpl.utils.get_nearest_graphics_indices(pos, contours_graphic)[0]
156+
nearest_contour = contours_graphic.graphics[index]
151157
nearest_contour.colors = "w"
158+
selector_component_heatmap.selection = index
152159

153160

154161
@selector_component_heatmap.add_event_handler("selection")
@@ -157,6 +164,8 @@ def heatmap_component_changed(ev):
157164
contours_graphic.cmap = "tab10"
158165
contours_graphic.graphics[index].colors = "w"
159166

167+
temporal_selected_graphic.data[:, 1] = time_series[index]
168+
160169

161170
figure.show()
162171
fpl.loop.run()

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.