Efficient visualisation of arrangements

142 Views Asked by At

First, I don't know the word for the set. I have n cases and the set I have is 2^n which lists all their "arrangements" present or absent, so a summation of combinations with k from 0 to n.

Each arrangement has a value and I need to plot this arrangement (in JS with plotly or D3, so anything is doable) but I unsure what graph to use. It's actually an biological problem regarding epistasis, where mutations together are not additive, but may synergise.

My thoughts
The dataset is a square, but that is not visually helpful: the bottom half minus the diagonal of that would be straightforward n-choose-2 combinations (e.g. --++,-+-+), the diagonal n-choose-1 states (---+), while the rest would be higher combinations (-+++), plus the null state (----).
In my code I easily make the display version of the set by iterating through 2^n and converting each index to a binary in string format (i).toString(2).padStart(mutation_number,'0').split("").map((v,i)=>v == "1" ? "+" : "-"). However, a list, e.g. bar chart, seems a terrible way to represent the dataset.
The best I could think is a diamond of lines of circles where each tier i is a the n-choose-i subset. But it would require arrows and may be confusing...

1

There are 1 best solutions below

0
On

User856 notes that this is called a power set.

I don't think there is a particularly good way to visualize all the elements of a power set as a two-dimensional diagram. A natural geometrical representation is as the vertices of an -dimensional hypercube, but that is hard to draw and harder to interpret.

For my application I ended up using a graph-like representation, where node width represented the value and the user could drag the nodes to avoid confusion. This can be found in epistasis.mutanalyst.com by using the first "demo" data. network