paml使用手册(三)

admin 91 2025-01-14 编辑

树文件的格式以及树拓扑学表现

当runmode=0或者1时,树结构文件是使用的。文件的名称再相应的控制文件中指定,树的拓扑结构则由如下所示的圆括号表示(尽管有时会用分支结构表示)。

圆括号:许多系统发育软件都使用的符号,物种名既可以用名字也可以用它们在当前序列文件中索引号表示。如果用物种名字表示的话,物种的名字必须与序列数据文件中的名字完全一致(包括空格和稀有字符)。分支长度是允许的。下面(0)是一个包含四个物种的可能的树结构数据的文件。第一个树时星树(star tree),而另外的4个则是完全相同的。

如果一个数有分支长度,那么就在baseml和codeml两个程序中就可以用树的长度作为最大似然叠代分析的初始值。

关于是否应该使用有根树这个问题,决定与使用的模型,例如你是否假定了一个分子钟等。如果没有分子钟(clock=0),则应该用无根树,例如((1,2),3,4)。当有分子钟或者居于分子钟模型时,则系统发育树应该有根。无根树和有根树不同,两者都不同于(((1,2),3),4)。对于PAML的程序们,有根树在根部位有两个分支,而无根树在根的部分则有三个或者多个分叉。

PAUP和MacClade程序产生的树文件。PAML程序只能与PAUP或MacClade程序产生的树文件兼容。首先,无根树的“[&U]”符号将被忽略掉。对于无根树,你必须手动的修改树文件,使它有在根的部分有三个分叉,例如吧“(((1,2),3),4)”修改成((1,2),3,4)。第二,PAML也会忽略关键词“Tranlate”,而且PAML程序还会默认树文件中的序列顺序与数据文件中的序列顺序严格一致。

分支和节点标识。在baseml和codeml程序中有些模型可以把树上的分支分为几个群,这几个群之间的参数常常不同。例如,baseml或者codeml的局部分子钟模型中(变量clock设置为2或者3),假如有三个分支群,分别具有低速率、中等速率和高速率的分子钟,分支特异的密码子模型(在codonml程序的控制文件中model=2或者3)也可以使不同的分支群有不同的ω,即所谓的“双速率模型”或者“三速率模型”。所有的这些模型都需要标记出数上的分支和节点。分支的标记(branch label)和分支长度的标记方法十分相似,只有标记符号不同,对于分支长度,标记符号使“#”,而分支的标记符号使“:”。分支标记是一系列从0开始的整数,这是程序默认的,不需要花功夫特意设定。例如,下面的树(1)是从examples/lysozyme/lysozyme.trees文件而来,其中的某一模型的不同ω值的同分支标记已经给出。

人类和长臂猿的分支的比例为ω1,而其他所有分支(默认的标记#0)的比例都是默认的背景比例ω0。这与table1C中溶菌酶基因的小数据(Yang,1998)是吻合的,请参考examples/lysozyme/文件夹中的readme文件。

对于一个大的系统发育树,你可能会想要标记进化枝(clade)上所有的分支(branch)。这时你可以使用进化枝的标记“$”($是为了替代Δ符号的,Δ是一个比较好的进化枝符号,但是可惜许多键盘上不设Δ符号)。因此(进化枝)$2等价与把进化枝上所有的节点、分支都标记上#2。因此下面的两个进化树(2)是完全相同的。

这里需要提出几个嵌套型进化枝标记的规则。“#”符号比“$”符号优先,在末梢处的进化枝标记优先于处于树根处祖先节点的进化枝标记。因此,以下的两个树(3)是等价的。在第一个树中,$1首先用于整个胎盘哺乳动物的进化枝(人类分支除外),然后$2用于 兔-鼠进化枝。

请注意,在这种规则下,你是否标记上$0会有一些不同。例如:

4中,$0标记了左侧的三个分支(a,b和ab的祖先),而其它的分支则由#1标记。但是如果改成下面(5)的这种写法,则意味着所有的分支都被标记为#1。

我发现这样的做法是比较方便的:首先用标记来创建一个树文件,然后用Rod page’s TreeView检查树以及标记是否正确。上面的这些树的实例对于TreeView都是可读的。但是对于TreeView X,你必须把标记放到单引号里面,如下所示(6)。

这样,树文件既可以被TreeView读取,也可以被TreeView X读取(同时也可以被baseml/codeml读取)。注意,TreeView和TreeView X不能接受位于树末端或者分支末端的标记,它们会认为这些标记是序列名字的一部分。另外一个可以用来创建树或者把树可视化的程序是Andrew Rambaut’s TreeEdit,这个文件在MAC上是可用的,这个软件我没有用过。

分歧时间符号“@”:化石校正信息可以通过@符号加以标记。这在baseml和codeml两个程序中的全局分子钟、局部分子钟模型中都会用到。请参考examples/MouseLemurs/文件夹中的readme文件。在下面的例子中(7),人-黑猩猩的分歧时间固定为5MY。

树拓扑结构的表示。在PAML程序包中,第二种表示树拓扑结构的方法是列举所有的分支,每个分支都以起始节点和终止节点表示。这种表示方法在结果文件中估计分支长度时也会用到,但是你也可以在树文件中使用。例如((1,2),3,4)可以用列举其中五个分支的方式表示(8):

树的节点用自然数依次表示,其中1,2,3,……,s表示数据中s个已知的序列,数值顺序于数据中序列顺序相同。如果树的数值大于s,则表示居间序列,居间序列的序列未知。所以在8的树中,节点5是节点6、3、4的祖先序列,节点6是节点1、2的祖先序列。

这种符号对于描述一个特定的树上序列之间的进化关系是十分方便的。例如,下面的树中(9),序列5是序列1、2、3、4的共同祖先序列:

警告:我试过这种树的表示方法是不是能用于所有的baseml和codeml模型中。你在使用这种表示方法的时候,需要谨慎的检测一下。如果这种表示法不适合,请告诉我,我会弥补的。

paml使用手册(三)

上一篇: 质粒构建工具推荐,实验室必备的分子克隆利器
下一篇: 小鬼的有参转录组测序分析专题(一)
相关文章