如何在 Rstudio 中 ape 包的 ace 函数的脚本中拟合我的数据和问题?

问题描述

我有 96 个氨基酸序列,我用 MAFFT 比对并手动修剪(FASTA 格式),用 Prottest 选择氨基酸替换模型(LG+I+G 模型),用 MEGAX(ML 方法, bootstrap 测试 1000 次重复,Newick 格式的树)和使用 PAML 的祖先重建,总共 664 个最终氨基酸位置。但是,我的对齐方式有插入缺失。我用字母(A 到 T)和相应的酰胺酸位置范围命名每个 indel:A:89-92,B:66-67,C:181-186,D:208-208,E:214-219,F:244-250,G:237-296,H:278-280,I:295-295,J:329-334,K:345-349,L:371-375,M:390-425,N :432-433,O:440-443,P:480-480,Q:500-500,R:541-544,S:600-600。序列的起始和结尾部分变化很大,因此从位置 0 到 34(起始)和 600 到 664(最终),每个氨基酸位置都可能代表一个插入缺失。

我想知道,在每个祖先节点上,每个indel出现在祖先序列中的概率是多少。有人告诉我,“猿 - 系统发育和进化分析”包上的 R-studio“ace”功能可以执行此任务。我已经安装了“ape”和“ggtree”。我检查了这个网页 https://www.rdocumentation.org/packages/ape/versions/3.0-1/topics/ace,但是,我不知道如何构建脚本。我是一名生物学家,也是 R 的新手。

有人可以帮忙吗?将不胜感激,谢谢。

解决方法

很难从示例中确切地确定您需要什么,但以下内容可能符合总体思路:

1 - 在 R

中加载您的树

对于这一步,您可以使用 read.treeread.nexus 函数,具体取决于您的树格式:即您的系统发育软件是否输出 NEXUS 文件(通常这些文件中的第一行是 {{1} } 并且最后一行是 #NEXUSend;) 或一个新的输出(通常,第一行直接以 END; 这样的系统发育开始并以 ((my_species... 结束)。你可以找到这个文件,然后在 R 中使用:

;

2 - 在 ## Loading the package library(ape) ## Reading the tree my_tree <- read.tree("<the_path_to_your_file>")

中加载特征数据

然后您需要以 Rmatrix 的形式加载特征数据(例如您在上面列出的 indels 位置)。最简单的方法是将它们设为 data.frame 格式(“逗号分隔值”),然后您可以使用 .csv 函数在 R 中读取:

read.csv

3 - 运行祖先性格估计

最后,您可以使用 ## Reading the variables as a matrix my_variables <- read.csv("<the_path_to_your_file>") 包中的 ace 函数对每个变量进行祖先特征估计:

ape

当然还有更多内容,但希望这可以帮助您入门。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...