seqLogo是1990年发表的一个可视化工具,还是基于grid作图的工具。可以输入从MEME,JASPAR等数据库下载的PPM矩阵(需把header处理掉),即可出图。
# 安装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)
可输出:
如果想要在一张上输出多张图的话(参考https://support.bioconductor.org/p/35240/
):
bad = (sapply( body(seqLogo), "==", "grid.newpage()") | sapply( body(seqLogo), "==", "par(ask = FALSE)"))body(seqLogo)[bad] = NULLtf_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()}
这个工具是2017年发在bioinformatics上R包,基于ggplot作图。可以输入序列、PFMS和PPM等。
library(ggseqlogo)ppm <- t(ppm) rownames(ppm) <- c("A", "G", "C", "T")ggseqlogo(ppm)
输出:
功能较多,详细可参考手册:https://omarwagih.github.io/ggseqlogo/
可以选择提交文件还是粘贴矩阵,文件中可以包括多个转录因子矩阵,输出:
联系客服