R语言实现生物序列的降维比对
系统发育树分析大家应该很熟悉,很多软件都可以实现可视化的操作。今天给大家介绍一个通过“SpacedWords Projection” 方法实现的氨基酸序列系统发育树构建,该方法主要是基于无对齐技术实现,能够在保持序列间可比性的前提下,用相对较小的向量表示生物序列。再详细的算法那就需要各位直接看此包的原文了,我们不在此展开。首先,我们看下包的安装:
BiocManager::install("Biostrings")
BiocManager::install("rSWeeP")
在此包中只有两个功能:
1. orthBase主要是用来生成正交矩阵的函数,此矩阵就是后面SWeeP算法的投影矩阵。我们直接看下实例:
#生成16000行10列矩阵
library(rSWeeP)
baseMatrix <- orthBase(160000,10)
2. sWeeP 比对氨基酸序列的核心算法。主要参数就是序列文件和正交矩阵。我们直接看下实例:
##数据包含200个氨基酸序列
path <- system.file(package ="rSWeeP", "extdata", "exdna.fas")
return <- sWeeP(path,baseMatrix)
distancia <- dist(return, method ="euclidean")
tree <- hclust(distancia,method="ward.D")
plot(tree, hang = -1, cex = 1)
如果想生成漂亮的树状图还需要用进行美化。当然,在这个包中有一个限制,他的坐标索引设置是160000,是一个常量不可以改变。但是矩阵列数是可以变化的,但是原则上是远小于160000。
欢迎大家学习交流!