scene = Scene(inset=False, screenshots_folder="paper/screenshots", root=True) 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()
# create scene and makes sure root has silhouette scene = Scene(inset=INSET, screenshots_folder="paper/screenshots") scene.root._needs_silhouette = True scene.root._silhouette_kwargs["lw"] = 1 # add meshes from file files = [ "paper/data/CC_134_2_ch1inj.obj", "paper/data/CC_134_1_ch1inj.obj", ] colors = [ inj1col, inj2col, ] injections = [scene.add(f, color=c) for f, c in zip(files, colors)] scene.add_silhouette(*injections, lw=2) # add brain regions scm = scene.add_brain_region("SCm", alpha=0.4, silhouette=False, color=blue_grey_darker) pag = scene.add_brain_region("PAG", alpha=0.3, silhouette=False, color=blue_grey) # make brain region as wireframe scm.wireframe() pag.wireframe()
from brainrender import Scene from brainrender import settings from brainrender.atlas_specific import GeneExpressionAPI settings.SHOW_AXES = False scene = Scene(inset=False) gene = "Gpr161" geapi = GeneExpressionAPI() expids = geapi.get_gene_experiments(gene) data = geapi.get_gene_data(gene, expids[1]) gene_actor = geapi.griddata_to_volume(data, min_quantile=99, cmap="inferno") act = scene.add(gene_actor) ca1 = scene.add_brain_region("CA1", alpha=0.2, color="skyblue") ca3 = scene.add_brain_region("CA3", alpha=0.5, color="salmon") scene.add_silhouette(act) scene.render(zoom=1.6)
print("[bold red]Running: ", Path(__file__).name) # define camera parmeters cam = { "pos": (5792, 431, 36893), "viewup": (0, -1, 0), "clippingRange": (39051, 53300), "focalPoint": (5865, 4291, -8254), "distance": 45311, } # make scene scene = Scene(inset=INSET, screenshots_folder="paper/screenshots") scene.add_brain_region("TH", alpha=0.2, silhouette=False, color=thcol) # load cell coordinates and add as a Points actor coords = np.load("paper/data/cell-detect-paper-cells.npy") cells = scene.add(Points(coords, radius=30, colors=salmon)) # add a silhouette around the cells scene.add_silhouette(cells, lw=1) # slice scene with a sagittal plane scene.slice("sagittal") # render and save screenshotq scene.render(interactive=True, camera="sagittal", zoom=2.6) scene.screenshot(name="cellfinder_cells") scene.close()
screenshots_folder="paper/screenshots", atlas_name="mpin_zfish_1um", ) scene.root.alpha(0.2) # get neurons data api = MpinMorphologyAPI() neurons_ids = api.get_neurons_by_structure(837) neurons = api.load_neurons(neurons_ids) # create neurons meshes neurons = [ neuron.create_mesh(soma_radius=0.75, neurite_radius=1) for neuron in neurons ][:N] # color neurons parts and add to scene for (neu_dict, neu) in track(neurons, total=N): col = choice((c1, c2)) neuron = scene.add(neu_dict["axon"], alpha=1, color=col) soma = scene.add( Point(neu_dict["soma"].centerOfMass(), color=col, radius=8, alpha=1) ) scene.add_silhouette(soma) # render scene.render(zoom=1.7, camera=cam) scene.screenshot(name="zfish_neurons") scene.close()
k = int(len(probes_locs) / 374.0) for i in range(k): points = probes_locs[i * 374:(i + 1) * 374] color = "#adadac" alpha = 1 LW = 1 spheres = Points( points[["ccf_ap", "ccf_dv", "ccf_lr"]].values, colors=color, alpha=alpha, radius=30, ) spheres = scene.add(spheres, names="probe") scene.add_silhouette(spheres, lw=LW) # --------------------------------- Animation -------------------------------- # anim = Animation(scene, "videos", "probes", size=None) fps = 30 anim.add_keyframe( 0, duration=7, callback=spiker, zoom=1.9, cam1=cameras["three_quarters"], cam2=cam0, end=int(fps * 7), prev=0, )
"viewup": (1, -1, -1), "clippingRange": (1773, 4018), "focalPoint": (478, 210, -296), "distance": 2759, } # load cluster data and get cell coordinates cluster_data = h5py.File("paper/data/zfish_rois_clusters.h5", "r") cluster_ids = cluster_data["cluster_ids"][:] roi_coords = cluster_data["coords"][:] # create scene scene = Scene( inset=INSET, screenshots_folder="paper/screenshots", atlas_name="mpin_zfish_1um", ) # add cells colored by cluster colors = [c1, c2, c3] for i, col in enumerate(colors): rois_in_cluster = roi_coords[cluster_ids == i, :] coords = pd.DataFrame(rois_in_cluster, columns=["x", "y", "z"]).values pts = scene.add(Points(coords, colors=col, radius=2, alpha=1)) scene.add_silhouette(pts, lw=1) # render scene.render(camera=cam, zoom=2.5) scene.screenshot(name="zfish_functional_clusters")
alpha = 1 sil = 0.5 else: continue # render channels as points spheres = Points( points[["ccf_ap", "ccf_dv", "ccf_lr"]].values, colors=color, alpha=alpha, radius=30, ) spheres = scene.add(spheres) if SILHOUETTE and sil: scene.add_silhouette(spheres, lw=sil) # Add brain regions visp, lgd = scene.add_brain_region( "VISp", "LGd", hemisphere="right", alpha=0.3, silhouette=False, color=blue_grey_dark, ) visa = scene.add_brain_region( "VISa", hemisphere="right", alpha=0.2, silhouette=False,