微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

核酸词系统发育树

如何解决核酸词系统发育树

如果为 n 个核酸序列构建了一个词频表(序列 ATG 对应两个长度为 2 的词,AT 和 TG),则可以使用该表(直接或之后PCA 降维)来计算这些序列的距离矩阵,然后可以将其聚类为系统发育树(doi:10.1007/s00285-002-0185-3):

library(sequinr)
Bat1 <- read.fasta(file="bat1.FASTA")
Bat1.seq <- Bat1[[1]]
Bat1.count <- as.vector(count(Bat1.seq,2)) # count word frequencies,k < log4(Sequence length)
...
Counts <- rbind(Bat1.count,...)
rownames(Counts) <- c("Bat1",...)
colnames(Counts) <- c(rownames(count(Bat1.seq,2)))
RowCounts <- rowSums(Counts)     
Counts.norm <- Counts/RowCounts  # normalise word counts for different sequence length
distance <- dist(Counts.norm,method = "euclidian")
hc <- hclust(distance,method = "average")
plot(hc)

几种病毒序列的系统发育树

Phylogenetic tree of several virus sequences

效果出奇的好,输出看起来类似于用 ClustalX 进行多序列比对获得的树,但计算时间是秒而不是小时。

问题:我如何衡量这些树的质量,以选择最佳字长 k 或(如果使用 PCA)组件的最佳数量 q,以及距离和聚类方法? 最好不要使用随机序列进行冗长的引导程序;-)

解决方法

这棵树最重要的特征是它不是系统发育

在系统发育中,边缘反映了进化过程,我们询问两个分类群是否共享一个共同的祖先以及这种可能性有多大。相反,OP 图像中的树状图表示分类群之间 DNA 序列组成的相似性,因此是表现树。了解系统发育树和表型树之间的差异对于决定是否使用建议的方法至关重要。如果测试的目的是推断病毒之间的进化关系,这种方法是不合适的。

由于树不是系统发育,因此不需要在进化历史意义上测试这些关系。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?