r - R中系统发育重建中的混合数据分区
问题描述
让我们有两个矩阵,一个是 DNA 序列比对,一个是由二进制字符组成。
dna <- matrix(c("a", "a", "a", "t", "a", "a",
"t", "t", "a", "g", "c", "c"),
ncol = 4, dimnames = list(LETTERS[1:3], NULL))
bi <- matrix(c(0,0,1,0,1,1,1,0,0,1,0,0),
ncol = 4, dimnames = list(LETTERS[1:3], NULL))
我们可以用包重建系统发育关系phangorn
:
library(phangorn)
dnatr <- optim.pml(pml(tree = rtree(3, tip.label = LETTERS[1:3]),
data = phyDat(dna)),
optNni = TRUE)
bitr <- optim.pml(pml(tree = rtree(3, tip.label = LETTERS[1:3]),
data = phyDat(bi, type= "USER", levels = c(0,1))),
optNni = TRUE)
函数phangorn::pmlPart
应该运行分区分析,但它不结合分区中的系统发育信息来重建单个系统发育。
tr = pmlPart(~ edge + nni, object = list(dnatr, bitr))
如何设置使用混合数据类型(DNA 序列和二进制字符)的分区分析?
解决方案
你快到了,下面的代码应该可以工作:
tr = pmlPart(edge + nni ~ . , object = list(dnatr, bitr))
不幸的是,关于 CRAN 的文档有点过时了。请确保您安装了来自 github ( )的最新开发版本的phangorn 。remotes::install_github("KlausVigo/phangorn")
PS:对于树重新排列,您至少需要 4 个提示,因此您的示例将忽略nni术语。
推荐阅读
- triggers - 气流将任务从下游依赖项或 subdag 之外的参考作业中排除
- google-cloud-platform - 如何在第三方 API 中发出请求并在 google BigQuery 上定期加载结果?我应该使用哪些谷歌服务?
- python - .loc 不由自主地更改多个列
- text - Labview中如何用空格填充文本
- java - Android 构建失败:D8:java.lang.TypeNotPresentException:类型 org.gradle.internal.reflect.Instantiator
- html - 使用连接时如何在 Rails 视图中显示 HTML 元素数组(作为 HTML,而不是字符串)
- r - 合并一列不同长度的两个数据集时如何定义默认输入值?
- python - 连接多个熊猫 groupby 输出
- r - 使用 R 正则表达式提取所有符合条件的子字符串
- css - 删除 WordPress 中不存在的 CSS 文件