Visual properties of unselected glyphs in Bokeh based on what is selected
In order to avoid tripling (or quintupling) memory usage in the browser, Bokeh only supports setting "single values" for non-selection colors and alphas. That is, non-selection properties can't be vectorized by pointing them at a ColumnDataSource column. So there's only two options I can think of:

Split the glyphs into different groups of glyphs, that each have a different different nonselection_color. This might be feasible if you only have a few groups. Of course now you have to partition your data to have e.g. five calls to p.circle instead of one, but it would entirely avoid JS. 
Use a tiny amount of JavaScript in a CustomJS callback. You can have an additional column in the CDS that provides the non-selected colors. When a selection happens, the CustomJS callback switches the glyph's normal color field to point to the other column and when a selection is cleared, changes it back to the "normal" field.
I have a glyph that's a series of Circles. I want to click on one point and change the colour / alpha of the unselected glyphs such that each unselected glyph has a custom colour based on it's relationship with the selected point. 
For example, I'd want the closest points to the selected point to have alpha near to 1 and the furthest to have alpha near to 0.
I've seen other questions where the unselected glyphs have different alphas, but the alphas are independent of what is selected. Is it possible to do this without using JavaScript?
Edited for more details:
The specific dataset I'm working on is a dataset of a bike sharing system, with data on trips made between specific stations. When I click on a specific station, I want to show the destination stations to which users go to when they start from the station selected. For n stations, the data thus has a n * n format: for each station, we have the probability of going to every other station. Ideally, this probability will be the alpha of the unselected stations, such the most popular destinations would have alpha near to 1, and the less popular ones an alpha near to 0.