tile_layer = new deck.GeoJsonLayer({
id: 'nbhd_layer',
data: tiles_geojson,
stroked: false,
filled: true,
getFillColor: d => {
var inst_color
var inst_cat = d.properties[cat_name]
if (select_meta === cat_name){
var rgb = d3.color(cat_colors[inst_cat])
inst_color = [rgb.r, rgb.g, rgb.b, 255 * cat_opacity]
} else if (available_cats.includes(select_meta)){
var rgb = d3.color(cat_colors[inst_cat])
if (inst_cat === select_meta){
inst_color = [rgb.r, rgb.g, rgb.b, 255 * cat_opacity]
} else {
inst_color = [rgb.r, rgb.g, rgb.b, unselected_opacity_255]
}
} else if (gene_list.includes(select_meta) || select_meta === 'dendro_select_rows') {
var inst_index = network.col_nodes.map(x => x.name).indexOf(d.id)
var inst_data = dimension_data[inst_index]
var inst_opacity = gene_opacity_scale(Math.abs(inst_data))
if (inst_data > 0){
inst_color = [255, 0, 0, inst_opacity]
} else {
inst_color = [0, 0, 255, inst_opacity]
}
} else if (select_meta === 'dendro_select_cols'){
var rgb = d3.color(cat_colors[d.properties[cat_name]])
if (dendro_selected_leidens.includes(d.id)){
inst_color = [rgb.r, rgb.g, rgb.b, 255 * cat_opacity]
} else {
inst_color = [rgb.r, rgb.g, rgb.b, unselected_opacity_255]
}
} else if (select_meta === 'col_select'){
var rgb = d3.color(cat_colors[d.properties[cat_name]])
if (d.id === heatmap_col){
inst_color = [rgb.r, rgb.g, rgb.b, 255 * cat_opacity]
} else {
inst_color = [rgb.r, rgb.g, rgb.b, unselected_opacity_255]
}
}
return inst_color
},
updateTriggers: {
getFillColor: [select_meta, dendro_selected_leidens, dendro_selected_genes],
},
onClick: (info, event) => {
var inst_cat = info.object.properties[cat_name]
if (select_meta !== inst_cat){
mutable select_meta = inst_cat
d3.select('#meta_dropdown').select('select').node().value = inst_cat
} else {
mutable select_meta = cat_name
d3.select('#meta_dropdown').select('select').node().value = cat_name
}
},
pickable: true
});