1 funkyheatmap

library(funkyheatmap)
library(dplyr, warn.conflicts = FALSE)
library(tibble, warn.conflicts = FALSE)
library(purrr, warn.conflicts = FALSE)

data("mtcars")

data <- mtcars %>% 
  rownames_to_column("id") %>%
  arrange(desc(mpg)) %>%
  head(20)

funky_heatmap(data)

column_info <- tribble(
  ~id,     ~group,         ~name,                      ~geom,        ~palette,    ~options,
  "id",    NA,             "",                         "text",       NA,          list(hjust = 0, width = 6),
  "mpg",   "overall",      "Miles / gallon",           "bar",        "palette1",  list(width = 4, legend = FALSE),
  "cyl",   "overall",      "Number of cylinders",      "bar",        "palette2",  list(width = 4, legend = FALSE),
  "disp",  "group1",       "Displacement (cu.in.)",    "funkyrect",  "palette1",  lst(),
  "hp",    "group1",       "Gross horsepower",         "funkyrect",  "palette1",  lst(),
  "drat",  "group1",       "Rear axle ratio",          "funkyrect",  "palette1",  lst(),
  "wt",    "group1",       "Weight (1000 lbs)",        "funkyrect",  "palette1",  lst(),
  "qsec",  "group2",       "1/4 mile time",            "circle",     "palette2",  lst(),
  "vs",    "group2",       "Engine",                   "circle",     "palette2",  lst(),
  "am",    "group2",       "Transmission",             "circle",     "palette2",  lst(),
  "gear",  "group2",       "# Forward gears",          "circle",     "palette2",  lst(),
  "carb",  "group2",       "# Carburetors",            "circle",     "palette2",  lst()
)

column_groups <- tribble( # tribble_start
  ~Category,  ~group,         ~palette,
  "Overall",  "overall",      "overall",
  "Group 1",  "group1",       "palette1",
  "Group 2",  "group2",       "palette2"
) # tribble_end

palettes <- tribble(
  ~palette,             ~colours,
  "overall",            grDevices::colorRampPalette(rev(RColorBrewer::brewer.pal(9, "Greys")[-1]))(101),
  "palette1",           grDevices::colorRampPalette(rev(RColorBrewer::brewer.pal(9, "Blues") %>% c("#011636")))(101),
  "palette2",           grDevices::colorRampPalette(rev(RColorBrewer::brewer.pal(9, "Reds")[-8:-9]))(101)
)

row_info <- data %>% transmute(id, group = "test")
row_groups <- tibble(Group = "Test", group = "test")


g <- funky_heatmap(
  data = data,
  column_info = column_info,
  column_groups = column_groups,
  row_info = row_info,
  row_groups = row_groups,
  palettes = palettes,
  expand = list(xmax = 4)
)

g

library(funkyheatmap)
library(kableExtra)

data("dynbenchmark_data")

data <- dynbenchmark_data$data
print(data[,1:12])
## # A tibble: 51 × 12
##    id               method_name method_source tool_id method_platform method_url
##    <chr>            <chr>       <chr>         <chr>   <chr>           <chr>     
##  1 paga             PAGA        tool          paga    Python          https://g…
##  2 raceid_stemid    RaceID / S… tool          raceid… R               https://g…
##  3 slicer           SLICER      tool          slicer  R               https://g…
##  4 slingshot        Slingshot   tool          slings… R               https://g…
##  5 paga_tree        PAGA Tree   tool          paga    Python          https://g…
##  6 projected_sling… Projected … tool          slings… R               https://g…
##  7 mst              MST         offtheshelf   mst     R               <NA>      
##  8 monocle_ica      Monocle ICA tool          monocle R               https://g…
##  9 monocle_ddrtree  Monocle DD… tool          monocle R               https://g…
## 10 pcreode          pCreode     tool          pcreode Python          https://g…
## # ℹ 41 more rows
## # ℹ 6 more variables: method_license <chr>, method_authors <list>,
## #   method_description <chr>, wrapper_input_required <list>,
## #   wrapper_input_optional <list>, wrapper_type <chr>
preview_cols <- c(
  "id",
  "method_source",
  "method_platform",
  "benchmark_overall_norm_correlation",
  "benchmark_overall_norm_featureimp_wcor",
  "benchmark_overall_norm_F1_branches",
  "benchmark_overall_norm_him",
  "benchmark_overall_overall"
)
kable(data[,preview_cols])
id method_source method_platform benchmark_overall_norm_correlation benchmark_overall_norm_featureimp_wcor benchmark_overall_norm_F1_branches benchmark_overall_norm_him benchmark_overall_overall
paga tool Python 0.6504941 0.7303490 0.6087144 0.5974547 0.6447229
raceid_stemid tool R 0.5393572 0.6255247 0.2683444 0.4539247 0.4502455
slicer tool R 0.1387779 0.1695031 0.2475509 0.5536164 0.2382829
slingshot tool R 0.7401781 0.7243311 0.6909130 0.6533370 0.7013883
paga_tree tool Python 0.6880083 0.7364518 0.6716161 0.6665846 0.6901263
projected_slingshot tool R 0.6551315 0.6788597 0.6828560 0.6357031 0.6628618
mst offtheshelf R 0.6098712 0.6640261 0.5768291 0.6288011 0.6190788
monocle_ica tool R 0.6290279 0.6657493 0.5967264 0.6048960 0.6235326
monocle_ddrtree tool R 0.7310423 0.7312963 0.4523655 0.6616356 0.6324644
pcreode tool Python 0.6462532 0.7170194 0.4573191 0.5739903 0.5905605
celltree_vem tool R 0.3680771 0.4788885 0.6841745 0.5753976 0.5132477
scuba tool Python 0.5446324 0.5305276 0.5814803 0.5435960 0.5497379
celltree_maptpx tool R 0.6111870 0.6242291 0.6331532 0.5258015 0.5969833
slice tool R 0.6222513 0.5796429 0.5970229 0.5240740 0.5795988
sincell tool R 0.5377153 0.5503793 0.3327244 0.5634739 0.4853368
cellrouter tool R 0.3137068 0.4423247 0.2750984 0.4864977 0.3691548
elpigraph tool R 0.5733797 0.6327042 0.2200817 0.4345891 0.4315950
urd tool R 0.3093083 0.4060632 0.3231054 0.4129312 0.3597923
celltrails tool R 0.5020187 0.5126936 0.4591280 0.3359874 0.4463840
mpath tool R 0.3368190 0.5333464 0.4657864 0.5742558 0.4681926
merlot tool R 0.2249512 0.2075988 0.2426236 0.2494673 0.2305765
celltree_gibbs tool R 0.2055744 0.1753163 0.1799559 0.1460367 0.1754304
calista tool R 0.1758370 0.1321052 0.1502081 0.1560643 0.1527590
stemnet tool R 0.6105113 0.5097026 0.6560640 0.6685405 0.6078146
fateid tool R 0.6740480 0.7005336 0.6375255 0.6135320 0.6555618
mfa tool R 0.4972208 0.4796343 0.6151766 0.5765243 0.5392861
grandprix tool Python 0.2988668 0.2862216 0.3377857 0.3828958 0.3243213
gpfates tool Python 0.2623099 0.2943448 0.3925739 0.4088326 0.3336449
scoup tool C++ 0.1475558 0.1078882 0.1263542 0.1006899 0.1192962
projected_dpt tool R 0.4568055 0.4998640 0.5137955 0.6109238 0.5174163
wishbone tool Python 0.5277212 0.5275330 0.4659129 0.5385160 0.5140903
dpt tool R 0.4743485 0.4589767 0.4894898 0.5367237 0.4890414
scorpius tool R 0.7816934 0.6585905 0.6858362 0.5785150 0.6722747
comp1 offtheshelf R 0.6274595 0.5385159 0.6846520 0.5770320 0.6044544
matcher tool Python 0.6068638 0.5537249 0.6353805 0.5293056 0.5798043
embeddr tool R 0.7075335 0.5804200 0.6421205 0.5317872 0.6119430
tscan tool R 0.5967668 0.7057806 0.6593750 0.5785164 0.6331121
wanderlust tool Python 0.5551993 0.5072468 0.5789748 0.4763553 0.5279159
phenopath tool R 0.5828424 0.4716004 0.6565155 0.5501488 0.5613227
waterfall tool R 0.6628271 0.5681419 0.6777215 0.5700908 0.6176083
elpilinear tool R 0.5498927 0.5413164 0.6524324 0.5498067 0.5716348
topslam tool Python 0.5612422 0.5206949 0.6154048 0.5090714 0.5500704
forks tool Python 0.2940185 0.3239275 0.3286755 0.3519913 0.3239891
ouijaflow tool Python 0.4242776 0.4021585 0.4824233 0.3971562 0.4252157
pseudogp tool R 0.2310569 0.2186398 0.2598661 0.1996926 0.2262768
ouija tool R 0.1262870 0.0932476 0.0984331 0.0750823 0.0965870
scimitar tool Python 0.1262870 0.0932476 0.0984331 0.0750823 0.0965870
angle offtheshelf R 0.7267030 0.7267977 0.6858362 0.4363454 0.6305294
elpicycle tool R 0.5484363 0.6016047 0.6524324 0.4188026 0.5479559
oscope tool R NA NA NA NA NA
recat tool R 0.4613065 0.5007224 0.4893212 0.3113828 0.4331305
g <- funky_heatmap(data[,preview_cols])
g

2 funkyheatmap

column_info <- dynbenchmark_data$column_info
g <- funky_heatmap(data, column_info = column_info)
g