Skip to content

Commit 47a23c5

Browse files
committed
feat: more examples and updates
1 parent 198b9bb commit 47a23c5

File tree

6 files changed

+131
-10
lines changed

6 files changed

+131
-10
lines changed

examples/allen_zarr_volume.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ def make_cordinate_space(state):
4747
scales=[748, 748, 1, 1],
4848
)
4949
state.dimensions = co_ords
50+
state.enable_adaptive_downsampling = False
51+
state.wireFrame = True
5052

5153

5254
if __name__ == "__main__":

examples/logo.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import neuroglancer
2+
3+
from neuroglancer_utils.create_datasets.create_mc_logo import create_mc_logo
4+
from neuroglancer_utils.viewer_utils import (
5+
launch_nglancer,
6+
open_browser,
7+
)
8+
9+
from time import sleep
10+
11+
12+
def add_image_layer(state):
13+
data = create_mc_logo()
14+
dimensions = neuroglancer.CoordinateSpace(
15+
names=["x", "y", "z"], units="nm", scales=[1, 1, 1]
16+
)
17+
local_volume = neuroglancer.LocalVolume(data, dimensions)
18+
state.layers["image"] = neuroglancer.ImageLayer(
19+
source=local_volume,
20+
volume_rendering=True,
21+
shader="""
22+
#uicontrol invlerp normalized
23+
void main() {
24+
emitRGBA(vec4(0.0, 0.0, normalized(), normalized()));
25+
}
26+
""",
27+
)
28+
state.show_axis_lines = False
29+
30+
31+
if __name__ == "__main__":
32+
viewer = launch_nglancer()
33+
open_browser(viewer, hang=False)
34+
sleep(2)
35+
36+
with viewer.txn() as s:
37+
add_image_layer(s)

examples/single_data_point_transfer_function.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def colormap_version(viewer):
2626
},
2727
"colormap": {
2828
"controlPoints": [[0, "#000000", 0.0], [84, "#ffffff", 1.0]],
29-
"window": [0, 100],
29+
"window": [0, 50],
3030
"channel": [],
3131
"defaultColor": "#ff00ff",
3232
},
@@ -41,7 +41,7 @@ def colormap_version(viewer):
4141
layer=neuroglancer.ImageLayer(
4242
source=neuroglancer.LocalVolume(
4343
dimensions=s.dimensions,
44-
data=np.full(shape=(1, 1), dtype=np.uint32, fill_value=42),
44+
data=np.full(shape=(1, 1), dtype=np.uint64, fill_value=63),
4545
),
4646
panels=[add_render_panel()],
4747
),

examples/small_minimal.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import neuroglancer
2+
import numpy as np
3+
4+
from neuroglancer_utils.viewer_utils import (
5+
launch_nglancer,
6+
open_browser,
7+
)
8+
9+
from time import sleep
10+
11+
12+
def add_image_layer(state):
13+
data = np.full(shape=(10,) * 3, fill_value=255, dtype=np.uint8)
14+
dimensions = neuroglancer.CoordinateSpace(
15+
names=["x", "y", "z"], units="nm", scales=[1, 1, 1]
16+
)
17+
local_volume = neuroglancer.LocalVolume(data, dimensions)
18+
state.layers["image"] = neuroglancer.ImageLayer(
19+
source=local_volume,
20+
volume_rendering=True,
21+
shader="""
22+
void main() {
23+
emitRGBA(vec4(1.0, 1.0, 1.0, 0.001));
24+
}
25+
""",
26+
)
27+
state.show_axis_lines = False
28+
state.projection_scale = 1e-8
29+
state.position = [5, 5, 5]
30+
state.layout = "3d"
31+
32+
33+
if __name__ == "__main__":
34+
viewer = launch_nglancer()
35+
open_browser(viewer, hang=False)
36+
sleep(2)
37+
38+
with viewer.txn() as s:
39+
add_image_layer(s)

examples/sphere.py

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from time import sleep
1616

1717
import neuroglancer
18-
from neuroglancer_utils.create_datasets.create_sphere import create_sphere
18+
from neuroglancer_utils.create_datasets.create_sphere import create_sphere_in_cube
1919
from neuroglancer_utils.local_server import create_server
2020

2121
from neuroglancer_utils.layer_utils import add_render_panel
@@ -29,9 +29,19 @@
2929
update_title,
3030
)
3131

32-
def add_image_layer(state, **kwargs):
32+
33+
def add_image_layer(state, data, **kwargs):
34+
dimensions = neuroglancer.CoordinateSpace(
35+
names=["x", "y", "z"], units="nm", scales=[40, 40, 40]
36+
)
37+
local_volume = neuroglancer.LocalVolume(
38+
data,
39+
dimensions,
40+
max_downsampling=float("inf"),
41+
max_downsampled_size=8,
42+
)
3343
state.layers["image"] = neuroglancer.ImageLayer(
34-
source="precomputed://http://127.0.0.1:9000/sphere",
44+
source=local_volume,
3545
volume_rendering_mode="max",
3646
tool_bindings={
3747
"A": neuroglancer.VolumeRenderingGainTool(),
@@ -45,23 +55,20 @@ def get_shader():
4555
return """#uicontrol invlerp normalized(range=[0,255], clamp=true)
4656
void main() {
4757
float val = normalized();
48-
emitIntensity(val);
4958
emitGrayscale(val);
5059
}
5160
"""
5261

5362

5463
if __name__ == "__main__":
55-
create_sphere()
64+
data = create_sphere_in_cube(400, 0.9)
5665
create_server(directory="datasets")
5766
viewer = launch_nglancer()
5867
with viewer.txn() as s:
59-
add_image_layer(s, shader=get_shader())
68+
add_image_layer(s, data, shader=get_shader())
6069
threedee_view(viewer)
6170
remove_axis_lines(viewer)
6271
update_title(viewer, "Sphere example")
6372
set_gpu_memory(viewer, gpu_memory=2)
6473
update_projection(viewer, orientation=[0.25, 0.6, 0.65, 0.3])
6574
open_browser(viewer, hang=False)
66-
sleep(4) # TODO this is a hack to wait for viewer to open
67-
update_projection(viewer, scale=1500, depth=3000)
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
from cloudvolume import CloudVolume
2+
import numpy as np
3+
from PIL import Image
4+
from pathlib import Path
5+
6+
7+
HOMEPATH = Path.home()
8+
FILEPATH = HOMEPATH / "Documents" / "mc_logo.png"
9+
10+
11+
def create_mc_logo(output_path="file://datasets/mc_logo"):
12+
img = Image.open(FILEPATH)
13+
luminance = np.array(img)[:, :, -1]
14+
Image.fromarray(luminance).save(HOMEPATH / "Documents" / "mc_logo_gray.png")
15+
imgdata = luminance.T
16+
dim_size = int((imgdata.shape[0] + imgdata.shape[1]) / 2)
17+
rawdata = np.zeros(
18+
shape=(imgdata.shape[0], imgdata.shape[1], dim_size),
19+
dtype=np.uint8,
20+
)
21+
for i in range(dim_size):
22+
rawdata[:, :, i] = imgdata
23+
24+
# CloudVolume.from_numpy(
25+
# rawdata,
26+
# vol_path=output_path,
27+
# resolution=(1, 1, 1),
28+
# layer_type="image",
29+
# progress=True,
30+
# compress=False,
31+
# )
32+
return rawdata
33+
34+
35+
if __name__ == "__main__":
36+
create_mc_logo()

0 commit comments

Comments
 (0)