我们在日常分析中,有时会比较不同物种间motif序列结构的保守性。今天小编教大家使用R包“ motifStack ”绘制美观的motif序列结构图!
## 安装R包
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("motifStack")
安装好R包后,我们就可以准备输入文件啦~
比如我想绘制拟南芥中HSF结合的motif结构。在JASPAR 数据库中(http://jaspar.genereg.net/)搜索“HSF”。
找到自己感兴趣的motif,点击ID号。
下载 JASPAR 格式的矩阵。
下载完成后我们需要将它处理成以下格式(空格分隔),并命名为"motif_ID.pcm"。
如果想展示自己鉴定的motif序列结构的话,可以使用小编写的脚本
(https://github.com/biozhp/motifStack_input),点击“ 阅读原文 ”即可下载。
使用脚本前需要准备两个输入文件:
输入文件一:motif序列(第一列为ID,第二列为序列,Tab分隔)。
输入文件二:motif ID。
## 输入motif序列, motif ID及输出文件位置
sh ./run.sh motif.seq motif.id out_path
执行完脚本后即可获得矩阵文件,绘制motif序列结构图。
## 加载R包
library("motifStack")
## 导入motif文件
pcm <- read.table("input.pcm")
## 生成motif矩阵
pcm <- pcm[,3:ncol(pcm)]
rownames(pcm) <- c("A","C","G","T")
motif <- new("pcm", mat=as.matrix(pcm), name="bin_SOLEXA")
## 生成图形
plot(motif)
如果你想绘制多个motif的序列图,可以将所有的motif矩阵文件放入一个文件夹中。
## 导入motif文件
motifs<-importMatrix(dir(path ="your_folder_name", full.names = TRUE))
## 生成图形
motifStack(motifs, layout="stack", ncex=1.0)
## 添加树状图
motifStack(motifs, layout="tree")
除了绘制这些图,我们还可以用“ motifStack ”绘制多种多样的motif序列结构图。
这篇文章只是抛砖引玉,剩下的就要靠大家按照自己的需求参考Manual去实现啦~
参考资料:
http://www.bioconductor.org/packages/release/bioc/vignettes/motifStack/inst/doc/motifStack_HTML.html