def CellsScene(): # Load and clean data data = pd.read_csv('/Users/federicoclaudi/Downloads/41593_2019_354_MOESM3_ESM.csv') data = data[['genotype', 'Xpos', 'Ypos', 'z.position']] data.columns = ['genotype', 'x', 'y', 'z'] # Visualise data scene = Scene() scene.add_cells(data) set_camera(scene) scene.render()
def test_labelled_cells(): # Create a scene scene = Scene() # specify that you want a view from the top # Gerate the coordinates of N cells across 3 regions regions = ["MOs", "VISp", "ZI"] N = 1000 # getting 1k cells per region, but brainrender can deal with >1M cells easily. # Render regions scene.add_brain_regions(regions, alpha=.2) # Get fake cell coordinates cells = [] # to store x,y,z coordinates for region in regions: region_cells = scene.get_n_random_points_in_region(region=region, N=N) cells.extend(region_cells) x, y, z = [c[0] for c in cells], [c[1] for c in cells], [c[2] for c in cells] cells = pd.DataFrame(dict(x=x, y=y, z=z)) # Add cells scene.add_cells(cells, color='darkseagreen', res=12, radius=25)
import brainrender brainrender.SHADER_STYLE = 'cartoon' from brainrender.scene import Scene # Create a scene scene = Scene() # specify that you want a view from the top # Gerate the coordinates of N cells across 3 regions regions = ["MOs", "VISp", "ZI"] N = 1000 # getting 1k cells per region, but brainrender can deal with >1M cells easily. # Render regions scene.add_brain_regions(regions, alpha=.2) # Get fake cell coordinates cells = [] # to store x,y,z coordinates for region in regions: region_cells = scene.get_n_random_points_in_region(region=region, N=N) cells.extend(region_cells) x, y, z = [c[0] for c in cells], [c[1] for c in cells], [c[2] for c in cells] cells = pd.DataFrame(dict( x=x, y=y, z=z)) # ! <- coordinates should be stared as a pandas dataframe # Add cells scene.add_cells(cells, color='darkseagreen', res=12, radius=25) # render scene.render()
print(f'Transforming all data with dimension: {rates.shape}') iso20 = load_pickle(iso20path) print('All data to 20') proj_data = iso20.transform(np.sqrt(rates)) print('All data to 3') proj_data = iso_instance.transform(proj_data) starts = proj_data[1:, :] ends = proj_data[:-1, :] lines = Lines(starts, endPoints=ends) coords = pd.DataFrame( dict(x=proj_data[:, 0], y=proj_data[:, 1], z=proj_data[:, 2])) isoscene = Scene(add_root=False, display_inset=False, title='isomap') isoscene.add_cells(coords, radius=0.1, color='salmon', res=24) isoscene.add_vtkactor(lines) isoscene.render() isoscene.close() # %% # ----------------------------------- UMAP ----------------------------------- # print('Umap') _umap_params = dict( n_neighbors=5, # higher values favour global vs local structure n_components=3, min_dist= 0.1, # min distance between point in low D embedding space. Low vals favour clustering ) if not load_umap:
prob['size'] = prob['rate'].values/10. prob['mod'] = prob['mod'] probes = [(np.array([[880,-230,-300,],[880,130,-300]]),'k',30), (np.array([[880,-230,-320,],[880,130,-320]]),'k',30), # (np.array([[895,15 ,-335,],[895,290,-90 ]]),(229,191,80),100), # (np.array([[895,15 ,-335,],[635,290,-335 ]]),(229,191,80),100), # (np.array([[0,-250,0,],[0,134,0]]),'r'), ] for probe_points in probes: scene.add_probe_from_coordinates(ccf_shape + probe_points[0],color=probe_points[1],radius =probe_points[2]) import matplotlib.cm as cm cmap = cm.get_cmap('inferno') scene.add_cells(prob1[prob1['color']<=0.01],radius=100,res=10,color=cmap(prob1['color'][prob1['color']<=0.01].values/2.)[:,:3],alpha=0.1) scene.add_cells(prob1[prob1['color']>=0.01],radius=100,res=10,color=cmap(prob1['color'][prob1['color']>=0.01].values/2.)[:,:3],alpha=1) scene.add_cells(prob2,radius=100,res=10,color=cmap(prob2['color'].values/2.)[:,:3],alpha=0.1) # path = '/Users/danieljdenman/Academics/grants/20200602_r01BRAIN/figs/' # filename = 'br'+len(glob.glob(os.path.join(path,'br*')))+'.png' # scene.export_for_web(os.path.join(path,filename)) scene.render() # np.linspace(start[0],end[i][0],np.max(prob['pxos'].values))[prob.xpos.values.astype(int)] # np.linspace(start[0],end[i][0],)