如何在 Mac OSX 上从 R 中的原始形态数据创建 Newick 树格式
How to create Newick tree format from raw morphology data in R on Mac OSX
我正在尝试自学如何在 R 中为历史语言学做系统发育学。我找到了一个 public 数据集(https://www.cs.rice.edu/~nakhleh/CPHL/IEDATA_112603), and I want to get a Newick format tree from it, so that I can visualize it following these instructions: https://www.r-phylo.org/wiki/HowTo/InputtingTrees。我是 运行 R 3.4.1 最大 OS 10.12.6.
这是我到目前为止所做的。我复制了数据并使用 R 和文本编辑器将其转换为 Nexus 数据文件。由于Nexus(据我了解)无法区分单个字符1和2,以及组合字符12,我将原始数据集中超过9的所有值按顺序(a-q)转换为字母表中的字母。任何人都可以从这里下载:https://ucla.box.com/s/i4fbeagcw8lombg3xuhczfk3h0y7v54m
问题是,我找不到任何说明或代码或指南来将原始数据解释为树。我找到了一个 Python 脚本 (Convert csv to Newick tree),但我不知道 Python。任何人都可以指出正确的方向 software/library/tutorial,或者帮助我确定下一步应该做什么吗?
我终于找到了可以帮助我的同事。我不需要将数据转换为 Newick 或 Nexus 以从中生成树,我需要将其转换为 phydat(请参阅 R 的 Phangorn 包)以从中生成树。我所做的是使用 R 的 Phangorn 包中的 as.phydat() 函数将语言数据转换为 "phylogenetic data." 我这样做的方法是在函数中指定 "type = USER",这让我可以定义自己的数据级别。 cran.r-project.org/web/packages/phangorn/vignettes/… 中有更详细的示例。然后,我可以使用常规的 Phangorn 函数从中创建树。
在 R
中使用 Phangorn
可能是一个不错的方法(请查看 "Constructing phylogenetic trees" 小插图)。
browseVignettes(package = "phangorn")
但是,为了正确推断树,我建议您使用具有更多选项的 "proper" 系统发育推断软件(phangorn
非常适合探索性分析,但可能会受到限制)。
我建议你使用 BEAST 软件,它有一个完整的系统发育语言学教程 (https://www.luke.maurits.id.au/files/research/papers/beastling.pdf). Luke Maurits tutorial on github is really well explained (https://github.com/lmaurits/BEASTling/blob/master/docs/tutorial.rst)。
此外,关于您的 NEXUS 文件中字符状态不明确的问题(即 1
和 2
的状态 12
),您可以在 nexus 文件中将它们编码为 (12)
。例如,这是一个有效的 NEXUS 格式:
#NEXUS
BEGIN DATA;
DIMENSIONS NTAX=2 NCHAR=3;
MATRIX
t1 1(12)2
t2 111
;
END;
我正在尝试自学如何在 R 中为历史语言学做系统发育学。我找到了一个 public 数据集(https://www.cs.rice.edu/~nakhleh/CPHL/IEDATA_112603), and I want to get a Newick format tree from it, so that I can visualize it following these instructions: https://www.r-phylo.org/wiki/HowTo/InputtingTrees。我是 运行 R 3.4.1 最大 OS 10.12.6.
这是我到目前为止所做的。我复制了数据并使用 R 和文本编辑器将其转换为 Nexus 数据文件。由于Nexus(据我了解)无法区分单个字符1和2,以及组合字符12,我将原始数据集中超过9的所有值按顺序(a-q)转换为字母表中的字母。任何人都可以从这里下载:https://ucla.box.com/s/i4fbeagcw8lombg3xuhczfk3h0y7v54m
问题是,我找不到任何说明或代码或指南来将原始数据解释为树。我找到了一个 Python 脚本 (Convert csv to Newick tree),但我不知道 Python。任何人都可以指出正确的方向 software/library/tutorial,或者帮助我确定下一步应该做什么吗?
我终于找到了可以帮助我的同事。我不需要将数据转换为 Newick 或 Nexus 以从中生成树,我需要将其转换为 phydat(请参阅 R 的 Phangorn 包)以从中生成树。我所做的是使用 R 的 Phangorn 包中的 as.phydat() 函数将语言数据转换为 "phylogenetic data." 我这样做的方法是在函数中指定 "type = USER",这让我可以定义自己的数据级别。 cran.r-project.org/web/packages/phangorn/vignettes/… 中有更详细的示例。然后,我可以使用常规的 Phangorn 函数从中创建树。
在 R
中使用 Phangorn
可能是一个不错的方法(请查看 "Constructing phylogenetic trees" 小插图)。
browseVignettes(package = "phangorn")
但是,为了正确推断树,我建议您使用具有更多选项的 "proper" 系统发育推断软件(phangorn
非常适合探索性分析,但可能会受到限制)。
我建议你使用 BEAST 软件,它有一个完整的系统发育语言学教程 (https://www.luke.maurits.id.au/files/research/papers/beastling.pdf). Luke Maurits tutorial on github is really well explained (https://github.com/lmaurits/BEASTling/blob/master/docs/tutorial.rst)。
此外,关于您的 NEXUS 文件中字符状态不明确的问题(即 1
和 2
的状态 12
),您可以在 nexus 文件中将它们编码为 (12)
。例如,这是一个有效的 NEXUS 格式:
#NEXUS
BEGIN DATA;
DIMENSIONS NTAX=2 NCHAR=3;
MATRIX
t1 1(12)2
t2 111
;
END;