示例#1
0
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() 
示例#2
0
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()
示例#4
0
    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],)