Esempio n. 1
0
def test_scene_slice():
    s = Scene()
    s.add_brain_region("TH")

    s.slice("frontal")

    ret = s.slice("frontal",)
    assert ret is None

    s.slice("sagittal", close_actors=True)

    s = Scene()
    th = s.add_brain_region("TH")

    plane = s.atlas.get_plane(pos=[1999, 1312, 3421], norm=[1, -1, 2])
    s.slice(plane, actors=th)
    ret = s.slice(plane, actors=[th, s.root],)

    s.render(interactive=False)
    del s
scene.root._needs_silhouette = False
scene.root.alpha(0.5)

# add brain regions
pag = scene.add_brain_region("PAG", alpha=0.4, silhouette=False, color=pagcol)
scm = scene.add_brain_region("SCm", alpha=0.3, silhouette=False, color=scmcol)

# add neuron mesh
neuron = scene.add("paper/data/yulins_neuron.stl")
neuron.c(neuroncol)

# add sphere at soma location
soma_pos = [9350.51912036, 2344.33986638, 5311.18297796]
point = scene.add(Point(soma_pos, color=neuroncol, radius=25))
scene.add_silhouette(point, lw=1, color="k")
scene.add_silhouette(neuron, lw=1, color="k")

# slice scene repeatedly to cut out region of interest
p = [9700, 1, 800]
plane = scene.atlas.get_plane(pos=p, plane="frontal")
scene.slice(plane, actors=[scm, pag, scene.root])

p = [11010, 5000, 5705]
plane = scene.atlas.get_plane(pos=p, norm=[0, -1, 0])
scene.slice(plane, actors=[scene.root])

# render
scene.render(zoom=9, camera=cam)
scene.screenshot(name="single_neuron")
scene.close()
Esempio n. 3
0
# Explicitly initiliase a scene with the screenshot folder set
# If the screenshot folder is not set, by default screenshots
# Will save to the current working directory
screenshot_folder = "./examples/screenshots"
scene = Scene(
    title=f"Screenshots will be saved to {screenshot_folder}",
    inset=True,
    screenshots_folder=screenshot_folder,
)

# Add some actors to the scene
scene.add_brain_region("TH", alpha=0.2, silhouette=True, color=salmon)
scene.add_brain_region("VISp", alpha=0.4, silhouette=False, color=[50, 2, 155])

scene.slice("sagittal")

# Set up a camera. Can use string, such as "sagittal".
# During render runtime, press "c" to print the current camera parameters.
camera = {
    "pos": (8777, 1878, -44032),
    "viewup": (0, -1, 0),
    "clippingRange": (24852, 54844),
    "focalPoint": (7718, 4290, -3507),
    "distance": 40610,
}
zoom = 1.5

# If you only want a screenshot and don't want to move the camera
# around the scene, set interactive to False.
scene.render(interactive=False, camera=camera, zoom=zoom)
Esempio n. 4
0
from brainrender import Scene

from rich import print
from myterial import orange
from pathlib import Path

print(f"[{orange}]Running example: {Path(__file__).name}")

# Create a brainrender scene
scene = Scene(title="slice")

# Add brain regions
th = scene.add_brain_region("TH")

# You can specify color, transparency...
mos, ca1 = scene.add_brain_region("MOs", "CA1", alpha=0.2, color="green")

# Slice actors with frontal plane
scene.slice("frontal", actors=[th])

# Slice with a custom plane
plane = scene.atlas.get_plane(pos=mos.centerOfMass(), norm=(1, 1, 0))
scene.slice(plane, actors=[mos, ca1])

# Render!
scene.render()
Esempio n. 5
0
    "clippingRange": (34734, 54273),
    "focalPoint": (7150, 3510, -5283),
    "distance": 42972,
}

# create scene
scene = Scene(inset=INSET, screenshots_folder="paper/screenshots")
scene.root._needs_silhouette = True
scene.root._silhouette_kwargs["lw"] = 1
scene.root.alpha(0.5)

# get streamlines data
streams = get_streamlines_for_region("MOp")

# add Streamlines actors
s = scene.add(Streamlines(streams[0], color=streamlinescol, alpha=1))

# add brain regions
th = scene.add_brain_region("TH",
                            alpha=0.45,
                            silhouette=False,
                            color=blue_grey)

# slice scene
scene.slice("horizontal", actors=[scene.root])

# render
scene.render(camera=cam, zoom=2)
scene.screenshot(name="streamlines")
scene.close()