Loading... # UpSetR # 安装 按照官网安装即可 # 使用 ## 数据集的准备 数据集,必须为data.frame格式,数据集的内容必须为0和1; 如下所示: ```R r$> upset_rr %>% head id_e2s id_m2e id_m2s id_eqtl id_sqtl id_mr id_mmu_deg_v2hsa ENSG00000179344 1 1 1 1 1 0 1 ENSG00000232629 1 1 1 1 1 0 1 ENSG00000009790 1 1 1 1 1 0 0 ENSG00000073605 1 1 1 1 1 0 0 ENSG00000111642 1 1 1 1 1 0 0 ENSG00000117500 1 1 1 1 1 0 0 ``` 由lgl格式的tibble表格,可通过如下方法转换: ```R wide_df %>% dplyr::select(id_e2s, id_m2e, id_m2s, id_eqtl,id_sqtl,id_mr,id_mmu_deg_v2hsa) %>% dplyr::mutate(across(where(is.logical), as.integer)) %>% as.data.frame() ``` 由不同的列表,可先将行名合成为一列,再依次填充0和1 ```R combined_df <- dplyr::bind_rows( id_eqtl = id_eqtl, id_sqtl = id_sqtl, id_mqtl = id_mqtl, id_m2e = id_m2e, id_m2s = id_m2s, id_e2s = id_e2s, id_mmu_deg_v2hsa = id_mmu_deg_v2hsa, id_mr = id_mr, .id = "source" ) %>% unique() %>% na.omit() # 重塑数据框为宽格式 wide_df <- combined_df %>% dplyr::mutate(value = TRUE) %>% tidyr::spread(key = source, value = value, fill = FALSE) # 计算每行TRUE的数量 wide_df <- wide_df %>% dplyr::mutate(count_true = rowSums(dplyr::select(., starts_with("id_")))) # 根据TRUE的数量降序排列 wide_df <- wide_df %>% arrange(desc(count_true)) # 转换为data.frame upset_rr <- wide_df %>% dplyr::select(id_e2s, id_m2e, id_m2s, id_eqtl,id_sqtl,id_mr,id_mmu_deg_v2hsa) %>% dplyr::mutate(across(where(is.logical), as.integer)) %>% as.data.frame() ``` ## 绘图 也可使用官方提供的在线工具 https://gehlenborglab.shinyapps.io/upsetr/ ### 基础绘图 ```R UpSetR::upset(upset_rr) ``` ### 取交集 ```R UpSetR::upset(upset_rr,sets=c("id_m2s","id_e2s","id_m2e","id_mr","UpSetR"), queries = list( list(query = intersects, params = list("id_mr","id_mmu_deg_v2hsa"), active = T), list(query = intersects, params = list("id_m2s","id_m2e","id_e2s"), active = T))) ``` 最后修改:2024 年 02 月 04 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏
1 条评论
作者对主题的挖掘深入骨髓,展现了非凡的洞察力和理解力。