前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >可视化motif logo三种方法(seqLogo/ggseqlogo/LogoJS)

可视化motif logo三种方法(seqLogo/ggseqlogo/LogoJS)

作者头像
生信编程日常
发布2020-04-10 16:19:41
4K0
发布2020-04-10 16:19:41
举报
文章被收录于专栏:生物信息学、python、R、linux

1.seqLogo

seqLogo是1990年发表的一个可视化工具,还是基于grid作图的工具。可以输入从MEME,JASPAR等数据库下载的PPM矩阵(需把header处理掉),即可出图。

代码语言:javascript
复制
# 安装
source ( "http://bioconductor.org/biocLite.R" )
biocLite("seqLogo")

# 导入CTCF的PPM矩阵
library(seqLogo)
ctcf <- read.table('~/Documents/writethings/20200409/ppm.txt', header = F)

# 转为PWM矩阵(转置是因为必须要让行分别是ATCG的PWM score)
trans_ctcf <- makePWM(t(ctcf))
seqLogo(trans_ctcf)

可输出:

seqLogo

如果想要在一张上输出多张图的话(参考https://support.bioconductor.org/p/35240/ ):

代码语言:javascript
复制
bad = (sapply( body(seqLogo), "==", "grid.newpage()") |
        sapply( body(seqLogo), "==", "par(ask = FALSE)"))
body(seqLogo)[bad] = NULL
tf_names <- c('CTCF', 'SP1')
grid.newpage()
for(i in 0:1){

   ppm <- read.table(paste('~/Documents/writethings/20200409/ppm',i+1 ,'.txt', sep = ''), header = F)
   pwm <- makePWM(t(ppm))

   pushViewport(viewport(x=0.25+0.55*(i%%2),
                         y=0.5+0.55*(i%/%2),
                         width=0.5, height=0.6))
   seqLogo(pwm)
   grid.text(tf_names[i+1], x=0.5, y=1,
             hjust=0.5, vjust=1)
   popViewport()

}

multi_logo

2.ggseqlogo

这个工具是2017年发在bioinformatics上R包,基于ggplot作图。可以输入序列、PFMS和PPM等。

代码语言:javascript
复制
library(ggseqlogo)
ppm <- t(ppm) 
rownames(ppm) <- c("A", "G", "C", "T")
ggseqlogo(ppm)

输出:

ggseqlogo

功能较多,详细可参考手册:https://omarwagih.github.io/ggseqlogo/

3.LogoJS 网址:https://logojs.wenglab.org/app/

home

home

可以选择提交文件还是粘贴矩阵,文件中可以包括多个转录因子矩阵,输出:

LogoJS

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档