How to add grouping layers in chord diagram based on additional information from two different dataframes?

32 views Asked by At

This is driving me crazy!!

I'm trying to make a chord diagram where on one side it's my MAGs, and on the other side, it's modules. This is my dataset:

stack <- structure(list(M00418 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 16.67, 0, 0, 0, 0, 0, 0, 0, 0, 16.67, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.67, 8.33, 0, 
0, 0, 0), M00419 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 16.67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 33.33, 0, 0, 0, 16.67, 0, 0, 0, 0, 0, 0), 
    M00534 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 37.5, 0, 0, 0, 0, 0, 0), M00537 = c(0, 
    0, 0, 0, 33.33, 0, 0, 0, 0, 0, 33.33, 0, 33.33, 0, 0, 33.33, 
    0, 0, 0, 33.33, 0, 0, 0, 0, 0, 33.33, 0, 0, 0, 33.33, 0, 
    33.33, 0, 33.33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33.33, 0, 
    33.33, 0, 0, 0, 0), M00538 = c(0, 0, 0, 0, 33.33, 0, 0, 0, 
    0, 0, 33.33, 0, 33.33, 0, 0, 33.33, 0, 0, 0, 50, 0, 0, 11.11, 
    0, 0, 33.33, 0, 0, 0, 33.33, 0, 33.33, 0, 38.89, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 50, 0, 33.33, 0, 0, 0, 0), M00539 = c(0, 
    0, 0, 0, 0, 0, 20, 0, 0, 0, 5, 0, 20, 0, 0, 20, 20, 0, 0, 
    20, 20, 0, 0, 0, 20, 20, 0, 0, 0, 25, 0, 0, 0, 5, 0, 0, 0, 
    0, 0, 0, 25, 0, 0, 25, 5, 0, 0, 20, 0, 0, 0), M00540 = c(20, 
    0, 20, 20, 0, 0, 0, 20, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 20, 0, 0, 0, 0, 0, 20, 0, 20, 20, 0, 20, 0, 20, 0, 0, 
    0, 0, 0, 0, 20, 0, 0, 0, 0, 40, 20, 0, 0, 0, 0), M00541 = c(0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6.25, 0, 0, 0, 6.25, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    6.25, 0, 6.25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), M00543 = c(0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), M00544 = c(0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0), M00547 = c(0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0), M00548 = c(0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66.67, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 16.67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 66.67, 0, 0, 0, 0, 0, 0), M00551 = c(33.33, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33.33, 0, 0, 0, 0, 0, 16.67, 
    0, 0, 16.67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 16.67, 0, 0, 0, 0), M00568 = c(50, 0, 50, 
    50, 75, 25, 25, 50, 75, 0, 0, 0, 50, 0, 25, 75, 0, 0, 0, 
    100, 50, 50, 25, 0, 75, 50, 0, 0, 0, 25, 25, 25, 50, 25, 
    0, 0, 0, 0, 0, 0, 25, 25, 0, 50, 75, 25, 75, 50, 0, 25, 0
    ), M00569 = c(42.86, 0, 14.29, 20, 14.29, 14.29, 20, 20, 
    71.43, 0, 40, 20, 40, 0, 0, 42.86, 20, 14.29, 20, 20, 28.57, 
    57.14, 28.57, 0, 20, 20, 0, 0, 0, 20, 14.29, 28.57, 20, 57.14, 
    0, 0, 0, 14.29, 0, 0, 42.86, 20, 0, 28.57, 100, 28.57, 42.86, 
    0, 0, 0, 0), M00623 = c(33.33, 0, 0, 33.33, 33.33, 0, 16.67, 
    50, 0, 33.33, 33.33, 0, 0, 0, 0, 50, 0, 0, 0, 33.33, 50, 
    0, 0, 0, 50, 83.33, 0, 0, 0, 33.33, 33.33, 33.33, 33.33, 
    33.33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.67, 50, 33.33, 66.67, 
    33.33, 0, 0, 0), M00624 = c(33.33, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.67, 0, 
    0, 0, 0, 0, 0), M00636 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0), M00637 = c(0, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 
    0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 25, 25, 0, 
    0, 0), M00638 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 25, 0, 0, 0
    ), M00878 = c(40, 0, 14.29, 40, 40, 0, 14.29, 40, 40, 37.14, 
    65.71, 0, 14.29, 14.29, 14.29, 40, 14.29, 14.29, 14.29, 0, 
    54.29, 37.14, 40, 0, 28.57, 37.14, 14.29, 42.86, 14.29, 54.29, 
    40, 40, 40, 34.29, 17.14, 14.29, 14.29, 0, 0, 14.29, 28.57, 
    14.29, 14.29, 51.43, 40, 40, 40, 51.43, 42.86, 0, 0), M00165 = c(100, 
    81.82, 81.82, 81.82, 72.73, 36.36, 45.45, 100, 72.73, 81.82, 
    54.55, 81.82, 54.55, 72.73, 81.82, 90.91, 81.82, 72.73, 72.73, 
    54.55, 100, 54.55, 72.73, 63.64, 72.73, 81.82, 63.64, 54.55, 
    81.82, 100, 72.73, 81.82, 81.82, 72.73, 45.45, 90.91, 18.18, 
    77.27, 72.73, 63.64, 72.73, 81.82, 54.55, 100, 72.73, 100, 
    72.73, 72.73, 63.64, 100, 90.91), M00166 = c(100, 50, 50, 
    50, 50, 25, 50, 100, 50, 50, 25, 50, 50, 50, 50, 100, 50, 
    50, 50, 25, 100, 50, 50, 50, 75, 50, 75, 50, 50, 100, 50, 
    50, 50, 50, 25, 75, 25, 62.5, 50, 50, 50, 50, 50, 100, 50, 
    100, 50, 50, 75, 100, 100), M00167 = c(100, 100, 100, 100, 
    85.71, 42.86, 42.86, 100, 85.71, 100, 71.43, 100, 57.14, 
    85.71, 100, 85.71, 100, 85.71, 85.71, 71.43, 100, 57.14, 
    85.71, 71.43, 71.43, 100, 57.14, 57.14, 100, 100, 85.71, 
    100, 100, 85.71, 57.14, 100, 14.29, 85.71, 85.71, 71.43, 
    85.71, 100, 57.14, 100, 85.71, 100, 85.71, 85.71, 57.14, 
    100, 85.71), M00168 = c(100, 100, 100, 100, 100, 50, 50, 
    100, 100, 100, 50, 100, 0, 100, 100, 50, 100, 100, 100, 100, 
    100, 100, 100, 50, 100, 100, 100, 100, 100, 100, 100, 100, 
    100, 100, 0, 100, 100, 100, 100, 100, 100, 100, 100, 100, 
    100, 100, 100, 50, 100, 50, 50), M00169 = c(50, 0, 100, 0, 
    50, 50, 50, 0, 50, 50, 50, 0, 0, 50, 0, 50, 0, 50, 50, 50, 
    50, 50, 0, 0, 0, 50, 50, 50, 0, 50, 0, 50, 50, 0, 0, 0, 0, 
    0, 0, 0, 100, 0, 0, 100, 50, 50, 50, 0, 50, 0, 0), M00170 = c(50, 
    25, 25, 50, 25, 0, 0, 50, 25, 50, 0, 25, 0, 25, 25, 0, 25, 
    25, 25, 25, 50, 25, 25, 0, 50, 50, 50, 25, 50, 50, 25, 50, 
    50, 25, 25, 50, 25, 25, 25, 25, 25, 25, 25, 50, 25, 50, 25, 
    50, 50, 0, 0), M00171 = c(14.29, 14.29, 28.57, 14.29, 14.29, 
    0, 14.29, 14.29, 14.29, 14.29, 14.29, 14.29, 0, 14.29, 14.29, 
    0, 14.29, 14.29, 14.29, 28.57, 14.29, 14.29, 14.29, 0, 14.29, 
    28.57, 28.57, 14.29, 14.29, 14.29, 14.29, 14.29, 14.29, 14.29, 
    0, 14.29, 14.29, 14.29, 14.29, 14.29, 28.57, 14.29, 14.29, 
    28.57, 14.29, 14.29, 14.29, 14.29, 14.29, 0, 0), M00172 = c(50, 
    25, 75, 25, 50, 25, 25, 25, 50, 50, 25, 25, 0, 50, 25, 25, 
    25, 50, 50, 50, 50, 50, 25, 0, 25, 50, 50, 50, 25, 50, 25, 
    50, 50, 25, 0, 25, 25, 25, 25, 25, 75, 25, 25, 75, 50, 50, 
    50, 25, 50, 0, 0), M00173 = c(67.5, 31.82, 61.36, 47.73, 
    40.91, 35, 36.36, 50, 50, 36.36, 31.82, 34.09, 17.5, 34.09, 
    31.82, 35, 47.73, 43.18, 45.45, 45.45, 67.5, 47.73, 40.91, 
    40, 36.36, 54.55, 45.45, 27.27, 54.55, 50, 40.91, 52.27, 
    52.27, 50, 30, 52.27, 38.64, 47.73, 34.09, 29.55, 52.27, 
    47.73, 34.09, 59.09, 47.73, 57.5, 50, 45.45, 47.73, 22.5, 
    35), M00374 = c(40.38, 19.23, 32.69, 38.46, 40.38, 17.31, 
    21.15, 40.38, 40.38, 38.46, 19.23, 36.54, 13.46, 44.23, 15.38, 
    32.69, 38.46, 50, 44.23, 30.77, 40.38, 38.46, 40.38, 26.92, 
    38.46, 46.15, 28.85, 28.85, 28.85, 40.38, 40.38, 40.38, 40.38, 
    36.54, 15.38, 28.85, 25, 40.38, 36.54, 32.69, 40.38, 38.46, 
    44.23, 40.38, 46.15, 40.38, 40.38, 23.08, 30.77, 15.38, 25
    ), M00375 = c(17.86, 0, 7.14, 17.86, 7.14, 7.14, 21.43, 17.86, 
    7.14, 7.14, 14.29, 7.14, 21.43, 28.57, 7.14, 7.14, 17.86, 
    35.71, 28.57, 17.86, 17.86, 7.14, 7.14, 7.14, 7.14, 25, 10.71, 
    17.86, 17.86, 17.86, 7.14, 17.86, 17.86, 17.86, 21.43, 17.86, 
    7.14, 7.14, 7.14, 14.29, 21.43, 7.14, 28.57, 17.86, 14.29, 
    17.86, 7.14, 7.14, 17.86, 0, 7.14), M00376 = c(62.96, 29.63, 
    35.19, 59.26, 41.67, 41.67, 31.48, 62.96, 44.44, 40.74, 33.33, 
    25.93, 37.04, 34.26, 19.44, 44.44, 62.96, 55.56, 44.44, 54.63, 
    62.96, 37.96, 44.44, 25.93, 40.74, 59.26, 42.86, 31.48, 48.15, 
    62.96, 51.85, 62.96, 62.96, 51.85, 42.59, 48.15, 23.15, 40.74, 
    48.15, 25.93, 54.63, 29.63, 33.33, 62.96, 40.74, 62.96, 44.44, 
    51.85, 51.85, 14.81, 40.74), M00377 = c(42.86, 28.57, 28.57, 
    50, 42.86, 14.29, 28.57, 42.86, 42.86, 42.86, 28.57, 28.57, 
    28.57, 42.86, 0, 42.86, 57.14, 35.71, 42.86, 0, 42.86, 42.86, 
    28.57, 28.57, 42.86, 42.86, 28.57, 42.86, 42.86, 42.86, 28.57, 
    42.86, 42.86, 14.29, 14.29, 42.86, 28.57, 42.86, 42.86, 35.71, 
    28.57, 28.57, 42.86, 42.86, 28.57, 42.86, 42.86, 42.86, 42.86, 
    28.57, 57.14), M00579 = c(100, 100, 50, 100, 100, 50, 0, 
    100, 100, 0, 50, 50, 0, 50, 50, 100, 0, 100, 50, 50, 50, 
    100, 50, 50, 50, 100, 0, 0, 0, 0, 0, 100, 100, 0, 0, 0, 0, 
    50, 50, 50, 100, 50, 50, 100, 100, 50, 50, 50, 0, 50, 50), 
    M00620 = c(28.57, 14.29, 28.57, 28.57, 28.57, 21.43, 21.43, 
    35.71, 21.43, 28.57, 28.57, 21.43, 7.14, 21.43, 14.29, 21.43, 
    21.43, 28.57, 32.14, 21.43, 28.57, 28.57, 21.43, 35.71, 21.43, 
    32.14, 21.43, 21.43, 21.43, 35.71, 25, 35.71, 28.57, 35.71, 
    10.71, 21.43, 14.29, 25, 21.43, 14.29, 32.14, 21.43, 14.29, 
    28.57, 21.43, 28.57, 28.57, 14.29, 21.43, 25, 28.57), M00174 = c(25, 
    0, 0, 0, 0, 50, 0, 50, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 
    0, 25, 0, 0, 0, 58.33, 50, 50, 50, 50, 50, 0, 50, 50, 0, 
    0, 50, 0, 50, 50, 0, 0, 0, 0, 50, 0, 25, 0, 50, 25, 0, 50
    ), M00344 = c(75, 0, 25, 25, 75, 0, 0, 75, 75, 25, 25, 25, 
    0, 75, 25, 75, 25, 75, 50, 50, 75, 50, 50, 0, 50, 25, 50, 
    50, 75, 75, 50, 50, 50, 25, 25, 75, 0, 50, 50, 25, 25, 25, 
    25, 75, 75, 75, 50, 0, 50, 75, 25), M00345 = c(33.33, 33.33, 
    0, 33.33, 33.33, 33.33, 33.33, 33.33, 33.33, 0, 100, 33.33, 
    33.33, 33.33, 33.33, 33.33, 0, 33.33, 33.33, 66.67, 33.33, 
    0, 33.33, 0, 0, 33.33, 33.33, 0, 33.33, 33.33, 33.33, 33.33, 
    33.33, 75, 0, 33.33, 0, 33.33, 0, 33.33, 66.67, 50, 0, 33.33, 
    33.33, 33.33, 0, 0, 0, 33.33, 0), M00346 = c(72.22, 27.78, 
    61.11, 72.22, 61.11, 38.89, 50, 72.22, 61.11, 72.22, 33.33, 
    61.11, 22.22, 61.11, 55.56, 50, 72.22, 61.11, 61.11, 44.44, 
    72.22, 61.11, 72.22, 33.33, 72.22, 72.22, 66.67, 77.78, 88.89, 
    72.22, 72.22, 72.22, 72.22, 50, 27.78, 88.89, 55.56, 72.22, 
    44.44, 50, 50, 61.11, 61.11, 72.22, 61.11, 72.22, 61.11, 
    61.11, 88.89, 44.44, 38.89), M00356 = c(16.67, 0, 16.67, 
    0, 16.67, 0, 0, 16.67, 16.67, 16.67, 0, 16.67, 0, 0, 16.67, 
    16.67, 16.67, 0, 16.67, 0, 16.67, 16.67, 16.67, 16.67, 16.67, 
    16.67, 16.67, 16.67, 16.67, 16.67, 16.67, 16.67, 16.67, 0, 
    0, 16.67, 0, 16.67, 16.67, 0, 0, 16.67, 16.67, 16.67, 16.67, 
    16.67, 16.67, 16.67, 16.67, 16.67, 16.67), M00357 = c(41.67, 
    33.33, 25, 33.33, 41.67, 16.67, 20, 41.67, 41.67, 10, 16.67, 
    25, 20, 16.67, 25, 41.67, 10, 33.33, 25, 16.67, 30, 41.67, 
    30, 25, 25, 41.67, 10, 10, 10, 10, 30, 41.67, 41.67, 20, 
    0, 10, 0, 25, 25, 16.67, 33.33, 25, 25, 41.67, 41.67, 25, 
    30, 25, 10, 25, 25), M00358 = c(25, 25, 25, 25, 25, 0, 0, 
    25, 25, 25, 50, 0, 0, 0, 25, 25, 0, 0, 0, 25, 25, 0, 25, 
    0, 0, 0, 0, 0, 0, 25, 0, 50, 50, 37.5, 25, 0, 0, 0, 0, 0, 
    0, 0, 0, 25, 25, 25, 25, 25, 0, 25, 0), M00378 = c(0, 33.33, 
    100, 83.33, 0, 0, 33.33, 100, 0, 0, 33.33, 0, 66.67, 16.67, 
    33.33, 0, 0, 0, 0, 66.67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 100, 66.67, 16.67, 0, 0, 0, 0, 16.67, 66.67, 0, 0, 0, 
    0, 0, 0, 0, 0, 33.33, 0), M00422 = c(0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0), M00563 = c(12.5, 0, 25, 0, 12.5, 0, 0, 
    12.5, 12.5, 12.5, 0, 12.5, 0, 0, 25, 12.5, 12.5, 0, 12.5, 
    12.5, 12.5, 12.5, 12.5, 25, 12.5, 12.5, 12.5, 12.5, 12.5, 
    12.5, 12.5, 12.5, 12.5, 0, 12.5, 12.5, 0, 12.5, 12.5, 0, 
    0, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 12.5, 
    12.5), M00567 = c(6.25, 0, 6.25, 0, 6.25, 0, 12.5, 6.25, 
    6.25, 6.25, 12.5, 6.25, 0, 0, 6.25, 37.5, 6.25, 0, 8.33, 
    0, 6.25, 6.25, 6.25, 6.25, 6.25, 6.25, 8.33, 6.25, 22.92, 
    6.25, 6.25, 6.25, 18.75, 0, 0, 22.92, 0, 6.25, 6.25, 0, 12.5, 
    6.25, 6.25, 6.25, 6.25, 6.25, 6.25, 6.25, 6.25, 6.25, 6.25
    ), M00608 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), M00175 = c(0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0), M00528 = c(0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 33.33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0), M00529 = c(12.5, 0, 0, 
    0, 12.5, 0, 0, 25, 16.67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 12.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 16.67, 25, 16.67, 0, 0, 0, 0), M00530 = c(50, 
    0, 0, 0, 50, 0, 0, 0, 58.33, 0, 0, 0, 0, 0, 0, 25, 0, 0, 
    0, 0, 0, 50, 25, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 25, 
    0, 0, 0, 0, 0, 0, 0, 0, 33.33, 25, 58.33, 0, 0, 0, 0), M00531 = c(50, 
    100, 0, 100, 50, 0, 0, 100, 50, 100, 0, 0, 25, 50, 50, 50, 
    100, 50, 50, 0, 100, 50, 50, 0, 50, 100, 100, 0, 100, 100, 
    50, 100, 100, 25, 0, 100, 0, 0, 0, 50, 0, 25, 50, 100, 50, 
    100, 50, 100, 100, 75, 0), M00804 = c(0, 0, 0, 0, 16.67, 
    0, 0, 0, 16.67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16.67, 
    0, 0, 22.22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 16.67, 0, 16.67, 33.33, 0, 0, 0), M00161 = c(0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66.67, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83.33, 0), M00163 = c(0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66.67, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83.33, 0), M00597 = c(0, 
    0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 100, 0, 0, 0, 0, 100, 0, 
    0, 0, 0, 0, 100, 0, 100, 0, 50, 100, 100, 0, 0, 0, 0, 0, 
    0, 100, 0, 100, 0, 0, 0, 100, 0, 0, 0, 0, 0, 100, 100, 0, 
    0), M00598 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), M00660 = c(1.14, 
    0, 4.55, 1.14, 2.27, 0, 0, 1.14, 5.68, 0, 0, 0, 0, 0, 0, 
    1.14, 0, 0, 0, 0, 1.14, 2.27, 1.14, 0, 0, 1.14, 0, 0, 1.14, 
    1.14, 4.55, 1.14, 1.14, 0, 0, 1.14, 0, 0, 0, 0, 0, 0, 0, 
    1.14, 1.14, 1.14, 1.14, 0, 0, 0, 0), M00176 = c(33.33, 66.67, 
    100, 66.67, 83.33, 83.33, 100, 100, 83.33, 50, 16.67, 16.67, 
    66.67, 33.33, 33.33, 83.33, 66.67, 66.67, 50, 16.67, 83.33, 
    50, 66.67, 22.22, 16.67, 50, 50, 66.67, 66.67, 66.67, 61.11, 
    100, 100, 100, 16.67, 66.67, 16.67, 50, 66.67, 33.33, 100, 
    38.89, 33.33, 83.33, 83.33, 66.67, 83.33, 66.67, 83.33, 66.67, 
    55.56), M00595 = c(85.71, 0, 0, 71.43, 28.57, 0, 0, 85.71, 
    28.57, 0, 0, 0, 0, 0, 0, 28.57, 0, 0, 0, 0, 85.71, 0, 0, 
    0, 42.86, 42.86, 28.57, 42.86, 28.57, 85.71, 0, 100, 85.71, 
    0, 0, 14.29, 0, 14.29, 0, 0, 0, 0, 0, 100, 0, 100, 28.57, 
    0, 42.86, 0, 0), M00596 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 33.33, 0, 0, 0, 0, 33.33, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
    0, 0, 0, 33.33, 0), M00664 = c(25, 0, 25, 0, 25, 0, 0, 25, 
    25, 25, 0, 0, 0, 0, 25, 25, 25, 25, 25, 25, 25, 25, 25, 0, 
    25, 25, 0, 25, 25, 25, 25, 25, 25, 25, 0, 25, 0, 0, 25, 0, 
    0, 25, 0, 25, 25, 25, 25, 25, 25, 25, 0)), class = "data.frame", row.names = c("MAG1", 
"MAG2", "MAG3", "MAG4", "MAG5", "MAG6", "MAG7", "MAG8", "MAG9", 
"MAG10", "MAG11", "MAG12", "MAG13", "MAG14", "MAG15", "MAG16", 
"MAG17", "MAG18", "MAG19", "MAG20", "MAG21", "MAG22", "MAG23", 
"MAG24", "MAG25", "MAG26", "MAG27", "MAG28", "MAG29", "MAG30", 
"MAG31", "MAG32", "MAG33", "MAG34", "MAG35", "MAG36", "MAG37", 
"MAG38", "MAG39", "MAG40", "MAG41", "MAG42", "MAG43", "MAG44", 
"MAG45", "MAG46", "MAG47", "MAG48", "MAG49", "MAG50", "MAG51"
)). 

And so far, by simply running chordDiagram(as.matrix(t(stack))) I get this:

enter image description here

Cool, but obviously everything is tiny because there's so much stuff. You see a a clear separation though, where the "top" side are the MAGs, and the "bottom" side are the Modules. The plan is that I'm going to colour the MAGs based on the "Compartment" that they're in. The chord diagram itself should have another layer where MAGs are "grouped" by "Compartment":

stack_comp <- structure(list(direct = c("Brown", "Brown", "Brown", "Brown", 
"Brown", "Brown", "Brown", "Brown", "Brown", "Green", "Brown", 
"Green", "Green", "Brown", "Brown", "Brown", "Green", "Brown", 
"Brown", "Brown", "Brown", "Brown", "Green", "Brown", "Green", 
"Brown", "Green", "Green", "Green", "Brown", "Brown", "Brown", 
"Brown", "Brown", "Brown", "Green", "Brown", "Brown", "Green", 
"Brown", "Brown", "Green", "Green", "Brown", "Green", "Brown", 
"Brown", "Green", "Green", "Brown", "Brown")), row.names = c("MAG1", 
"MAG2", "MAG3", "MAG4", "MAG5", "MAG6", "MAG7", "MAG8", "MAG9", 
"MAG10", "MAG11", "MAG12", "MAG13", "MAG14", "MAG15", "MAG16", 
"MAG17", "MAG18", "MAG19", "MAG20", "MAG21", "MAG22", "MAG23", 
"MAG24", "MAG25", "MAG26", "MAG27", "MAG28", "MAG29", "MAG30", 
"MAG31", "MAG32", "MAG33", "MAG34", "MAG35", "MAG36", "MAG37", 
"MAG38", "MAG39", "MAG40", "MAG41", "MAG42", "MAG43", "MAG44", 
"MAG45", "MAG46", "MAG47", "MAG48", "MAG49", "MAG50", "MAG51"
), class = "data.frame")

This is the first problem I think, because then I also have the other side (Modules) which are grouped by Pathways:

stack_pw <- structure(list(pwGroup = c("Pathway 1", "Pathway 1", "Pathway 1", 
"Pathway 1", "Pathway 1", "Pathway 1", "Pathway 1", "Pathway 1", 
"Pathway 1", "Pathway 1", "Pathway 1", "Pathway 1", "Pathway 1", 
"Pathway 1", "Pathway 1", "Pathway 1", "Pathway 1", "Pathway 1", 
"Pathway 1", "Pathway 1", "Pathway 1", "Pathway 2", "Pathway 2", 
"Pathway 2", "Pathway 2", "Pathway 2", "Pathway 2", "Pathway 2", 
"Pathway 2", "Pathway 2", "Pathway 2", "Pathway 2", "Pathway 2", 
"Pathway 2", "Pathway 2", "Pathway 2", "Pathway 3", "Pathway 3", 
"Pathway 3", "Pathway 3", "Pathway 3", "Pathway 3", "Pathway 3", 
"Pathway 3", "Pathway 3", "Pathway 3", "Pathway 3", "Pathway 3", 
"Pathway 6", "Pathway 6", "Pathway 6", "Pathway 6", "Pathway 6", 
"Pathway 6", "Pathway 4", "Pathway 4", "Pathway 4", "Pathway 4", 
"Pathway 7", "Pathway 5", "Pathway 5", "Pathway 5", "Pathway 8"
)), row.names = c("M00418", "M00419", "M00534", "M00537", "M00538", 
"M00539", "M00540", "M00541", "M00543", "M00544", "M00547", "M00548", 
"M00551", "M00568", "M00569", "M00623", "M00624", "M00636", "M00637", 
"M00638", "M00878", "M00165", "M00166", "M00167", "M00168", "M00169", 
"M00170", "M00171", "M00172", "M00173", "M00374", "M00375", "M00376", 
"M00377", "M00579", "M00620", "M00174", "M00344", "M00345", "M00346", 
"M00356", "M00357", "M00358", "M00378", "M00422", "M00563", "M00567", 
"M00608", "M00175", "M00528", "M00529", "M00530", "M00531", "M00804", 
"M00161", "M00163", "M00597", "M00598", "M00660", "M00176", "M00595", 
"M00596", "M00664"), class = "data.frame")

So basically the original "stack" dataframe has like two types of information that I want to use to build my chord diagram. How do I make and group the sectors in my chord diagram and add a grouping layer based on two different types of information that are stored in separate dataframes??? The other questions I've looked at that are similar to my problem sort of already have the sectors/grouping data in one data frame, whereas mine are separated into two.

How do I make this chord diagram? I don't want to merge any data, because I still want to see the differences within the groups.

Please feel free to correct my semantic mistakes, but this is my first time trying to make a chord diagram and it's terribly complicated and I don't really understand the syntax of the functions. Somebody with patience and experience, please guide me!

0

There are 0 answers