绘制序列标识图-gglogo

2022-03-29 14:52:45 浏览数 (1)

今天向大家介绍一个绘制序列标识图的方法,这样更直观的展示测序数据的情况,让我们的数据更容易分析,gglogo是基于ggplot2绘制的。

一、gglogo

代码语言:javascript复制
install.packages("gglogo")
library(gglogo)
data(sequences)  
#加载sequences数据,是肽序列数据,是数据框格式

1.例一

代码语言:javascript复制
ggplot(data = ggfortify(sequences, "peptide"))      
  ##这一步很重要,ggfortif 将数据转换成绘制logo plots的格式,对sequences数据进行一个统计,下图展示数据情况
  geom_logo(aes(x = position, y = bits, group = element,
#x是以position数据绘制横轴,y是以bits数据绘制纵轴,group是分组
               label = element, fill = interaction(Polarity, Water)),
#label是标签,fill是填充颜色的分组
              alpha = 0.6)   
#alpha是柱状图透明度
  scale_fill_brewer(palette = "Paired")     
  #颜色
  theme(legend.position = "bottom")   
  #图例位置

2.例二

代码语言:javascript复制
ggplot(data = ggfortify(sequences, "peptide", treatment = "class"))  
  geom_logo(aes(x=class, y=bits, group=element,
                label=element, fill=element))    
                #根据element填充颜色
  facet_wrap(~position, ncol=18)    
  #根据position分面,成18列分布
  theme(legend.position = "bottom")

3.例三

代码语言:javascript复制
ggplot(data = ggfortify(sequences, "peptide", treatment = "class"))  
  geom_logo(aes(x=position, y=bits, group=element, label=element, fill=element))  
  facet_wrap(~class, ncol=1)  
  #根据class分面,成一
  theme_bw()
  #theme_bw 去掉背景色

4.例四

代码语言:javascript复制
ggplot(data = ggfortify(sequences, "peptide", treatment = "class"))  
  geom_logo(aes(x=class, y=bits, group=element,
                label=element, fill=interaction(Polarity, Water)))  
  scale_fill_brewer("Amino-acids properties", palette="Paired")  
  facet_wrap(~position, ncol=18)  
  theme(legend.position="bottom")  
  xlab("")   ylab("Shannon information in bits")
  #xlab,ylab修改坐标轴名称

二、logo

用logo绘制简单的序列标志图

代码语言:javascript复制
library(RColorBrewer)
cols <- rep(brewer.pal(12, name="Paired"),22)
logo(sequences$peptide)   aes(fill=element)   
scale_fill_manual(values=cols)

0 人点赞