【问题标题】:R: geom_logo for multiple genes from tibbleR:来自 tibble 的多个基因的 geom_logo
【发布时间】:2020-02-27 17:45:08
【问题描述】:

我对 ggseqlogo 包不太熟悉,因此我将不胜感激任何形式的帮助。

我准备了如下所示的 tibble:

test <- tibble( gene = c("A", "B", "A", "C", "B"),
                seq = c("AAAAAAAAAAAAAAAAAAAA",
                        "GGGGGGGGGGGGGGGG",
                        "AAAAAATAAAAATAAAAAAA",
                        "AGTCGTCATGCATCAATCCCAATGGTGCA",
                        "GGGGGGGCCGGGGGGG") ) 

我想根据基因名称为每个基因准备 seqlogo。每个基因序列的长度相同。

到目前为止,我已经尝试过:

ggplot() + 
 geom_logo(data = test$gene) +
 facet_grid(rows = ~ gene)

但到目前为止,这是我得到的最好的:

【问题讨论】:

    标签: r tidyverse sequence-diagram


    【解决方案1】:

    响应可能会迟到但有效。

    ggseqlogo 可以选择 facets,但这需要唯一的基因名称和相同大小的序列。我通过创建一个循环并将所有基因的图存储在一个列表中来避免这个问题。

    然后可以通过cowplots plot_grid安排该情节列表

    library(tidyverse)
    library(cowplot)
    library(ggseqlogo)
    
    
    test <- tibble( gene = c("A", "B", "A", "C", "B"),
                    seq = c("AAAAAAAAAAAAAAAAAAAA",
                            "GGGGGGGGGGGGGGGG",
                            "AAAAAATAAAAATAAAAAAA",
                            "AGTCGTCATGCATCAATCCCAATGGTGCA",
                            "GGGGGGGCCGGGGGGG") ) 
    
    # Initialize list to store plots in
    plot_list <- list()
    
    # Loop through all genes and 
    # store the resulting plots in the plotlist
    for(i in 1:nrow(test)) {
      plot_list[[i]] <- ggplot() + 
        geom_logo(data = test[i,2],  seq_type = "dna") +
        ggtitle(paste0( test[i,1]))
    }
    
    # Cowplots can arrange the list based on your desire
    plot_grid(plotlist =  plot_list, ncol = 2)
    

    【讨论】:

      猜你喜欢
      • 2015-07-20
      • 2019-03-30
      • 1970-01-01
      • 2023-03-05
      • 2019-05-27
      • 2020-08-15
      • 1970-01-01
      • 1970-01-01
      • 2018-09-21
      相关资源
      最近更新 更多