使用ggseqlogo可视化motif

2019-12-19 15:49:29 浏览数 (1)

欢迎关注”生信修炼手册”!

ggseqlogo是一个motif可视化的R包,可以看做是seqLogo的加强版。除了基本的创建sequence logo的功能,新增了许多自定义的选项,灵活性更强,项目网址如下

https://omarwagih.github.io/ggseqlogo/

接受两种格式的motif信息,第一种为序列数据,以下图为例

在R中的表示方式如下

代码语言:javascript复制
motif_seq <- c(
"CCCATTGTTCTC",
"TTTCTGGTTCTC",
"TCAATTGTTTAG",
"CTCATTGTTGTC",
"TCCATTGTTCTC",
"CCTATTGTTCTC",
"TCCATTGTTCGT",
"CCAATTGTTTTG"
)

第二种为motif的PFM矩阵,以下图为例

在R中的表示方式如下

代码语言:javascript复制
motif_pfm <- rbind(
c(0, 0, 2, 7, 0, 0, 0, 0, 0, 0, 1, 0),
c(4, 6, 4, 1, 0, 0, 0, 0, 0, 5, 0, 5),
c(0, 0, 0, 0, 0, 1, 8, 0, 0, 1, 1, 2),
c(4, 2, 2, 0, 8, 7, 0, 8, 8, 2, 6, 1)
)
rownames(motif_pfm) <- c("A", "C", "G", "T")

准备好任意一种符合格式的输入文件之后,就可以进行可视化了。对于序列格式的信息,绘图方式如下

代码语言:javascript复制
ggseqlogo(motif_seq)

输出结果如下

对于PFM矩阵,绘图方式如下

代码语言:javascript复制
ggseqlogo(motif_pfm)

输出结果如下

以上只是ggseqlogo的基本用法,除此之外,还有以下几种额外功能

1. 调整配色方案

和webLogo类似,针对核酸和蛋白序列,内置了多种配色方案。对于DNA和RNA序列,支持以下两种配色防范

  1. nucleotide
  2. base_pairing

对于蛋白质序列,支持以下几种配色方案

  1. chemistry
  2. hydrophobicity
  3. clustalx
  4. taylor

默认情况下会自动根据输入的序列类型自动匹配配色方案,可以通过col_scheme强制指定,用法如下

代码语言:javascript复制
ggseqlogo(motif_pfm, col_scheme='base_pairing')

输出结果示意如下

还支持自定义配色方案,具体细节请参考官方文档。

2. 绘制多个sequence logo

当有多个motif信息时,支持一键绘制多个motif的sequence logo, 用法如下

代码语言:javascript复制
motif_list <- list(
"A"=motif_pfm,
"B"=motif_pfm,
"C"=motif_pfm,
"D"=motif_pfm)
ggseqlogo(motif_list,ncol = 2)

将多个motif信息存储在list中,直接操作这个list对象即可,输出结果如下

除了这些功能外,还提供了自定义字符集,字符高度,字体等各种功能,更多用法与细节请参阅帮助文档。

·end·

—如果喜欢,快分享给你的朋友们吧—

扫描关注微信号,更多精彩内容等着你!

0 人点赞