2019-05-21-多基因联合建树软件astral方法

description

astral是基于java开发的根据一组无根的genetrees建立speciestree。

tutorial steps

installation

运行astral不需要安装,但是需要在java环境下运行。

命令行运行astral

astral没有图形界面,需要在命令行下运行。

java -jar astral.5.5.1.jar

运行后可以看到astral的options。如果运行没有错误,说明安装成功了。

用astral运行一个简单的数据

java -jar astral.5.5.1.jar -i test_data/song_mmammals.424.gene.tre

-o 输出

java -jar astral.5.5.1.jar -i test_data/song_mmammals.424.gene.tre -o test_data/song_mammals.tre

输入文件是含有所有genetrees的Newick格式的文件。输入的genetree被当做unrooted tree,不管他们是否有根。astral的输出也是被当做unrooted tree。输入的genetree支持多分支。

astral 结果查看

输出的结果是Newick格式,可以用很多软件查看。

branch length and support

astral测量branch length 是用coalscent units。不是我们通常认为的boostrap value

1.astral 只测量internal branches 不测量terminal branches
2.branch lengthes 是直接测量genetree的不一致性,有可能因为统计噪音被低估。
3.support value 测量quadriparition的support而不是通常的bipartion(二分位)。(astral 认为自己的support value 比boostrap value 可信度更高。)

scoring a species tree

-q参数
得到的是quartet score 和branch length 和 branch support values。0.9表示genetree产生的quartet tree的90%存在于species tree中。为树打分的命令如下:

java -jar astral.5.6.3.jar -q test_data/simulated_14taxon.default.tre -i test_data/simulated_14taxon.gene.tre -o test_data/simulated_scored.tre 2> test_data/simulated_scored.log

与simulated_14taxon.gene.tre进行比较后,会为物种树simulated_14taxon.default.tre打分。


image.png

表示来自genetree的4803个quartet trees存在于species trees中。4803个quartet trees占所有的quartet trees的47.98%。这个数据集的ILS水平很高。导致这个结果,也就是genetree和species tree的不一致性很高。

extensive branch annotations

当你得到一个species tree或者用-q参数为树打分,你将会得到每一个分支的branch length 和local posterior support 。除了这些默认的参数,还可以输出其他branch 信息。无根树的每一个branch都有四组。分别是first child (L), the second child (R), the sister group (S), and everything else (O)。两两配对,可以得到三种拓扑结构。其中一种就是当前树的拓扑结构。剩下的就是可选的两种拓扑结构。astral可以不仅仅得到当前树的local posterior probability,也能计算剩下的两种拓扑结构的。-t 参数

-t 0 :关掉当前的posterior probability。
-t 1:local posterior probability 如果你想知道genetree中的quartet占branch的多少。就可以使用这个参数。用这个测定quartet support。quartet score 是测量基因树与分支冲突的好办法。
-t 4:输出3个local posterior probability,就是前文说的三种拓扑结构。
-t 2:当你使用这个参数,许多分支都会得到很多测量。
q1,q2,q3:分别展示了main topology,和另外两种拓扑结构的quartet support。
f1,f2,f3:分别展示main topology 和另外两种拓扑结构的quartet trees的总数。
pp1,pp2,pp3分别展示了main topology 和另外两种拓扑结构的local posterior probability
QC:展示了每一个分支下的quartets 的总数。
EN:branch的有效的genes。如果不存在missing data的时候,这个就是出现在branch中的数目。如果有missing data的时候,有些genetree对branch没有任何贡献。因此,这里的genetree的number可能小于总共genes的number。
-t 8:输出q1,q2,q3
-t 10:测试,查看无效假设是否会被拒绝。
-t 16:产生.csv文件,带有quartet 频率的freqQuad.csv。

命令如下

java -jar astral.5.6.3.jar -q test_data/1kp.tre -i test_data/1KP-genetrees.tre -t 2 -o test_data/1kp-scored-t2.tre
java -jar astral.5.6.3.jar -q test_data/1kp.tre -i test_data/1KP-genetrees.tre -t 4 -o test_data/1kp-scored-t4.tre
java -jar astral.5.6.3.jar -q test_data/1kp.tre -i test_data/1KP-genetrees.tre -t 8 -o test_data/1kp-scored-t8.tre
java -jar astral.5.6.3.jar -q test_data/1kp.tre -i test_data/1KP-genetrees.tre -t 10 -o test_data/1kp-scored-t10.tre

阅读几个分支给出的所有值,并理解他们。

Prior hyper-parameter(这里一节都不懂是什么意思)

用Yule prior model 计算speciestree 的branch length的local posterior probabilities 和branch lengths。Yule process的物种形成速率(in coalscent units)默认值设置为0.5,导致quartet 频率在[1/3,1]之间是平稳的。(并不理解)用-c的选项可以调节hyper-parameter。

multi-locus bootstrapping

astral 可以不通过bootstrapping输出branch support value.这种support比bootstrapping更加可靠(在作者的数据下)。尽管,你可能还是想得到bootstrapping。astral可以进行multi-locus bootstrapping。为了开展multi-locus bootstrapping,astral需要访问每一个gene的boostrap replicate trees。
例如:
你需要提供所有gene tree bootstrap replicates的位置。在测试数据中进行bootstrapping。
1.进入test_data目录
2.解压called song_mammals.424genes.bs-trees.zip.
3.然后运行

java -jar ../astral.5.6.3.jar -i song_mammals.424.gene.tre -b bs-files -o song_mammals.bootstrapped.astral.tre

然后会run100次bootstrapping。

input

1.-i 包括所有的MLgenetrees(就像不计算bootstrap也要输入的)
2.-b 告诉astral 需要计算bootstrap value。-b 后面的文件 bs-files 包含了genetree bootstrap files的文件路径,一行一个gene。例如:
424genes/100/raxmlboot.gtrgamma/RAxML_bootstrap.allbs

outputfile 包括

1.100 bootstrapped replicate trees,每一个都是对一组bootstrap gene trees进行running astral 的结果。
2.A greedy consensus of the 100 bootstrapped replicate trees; this tree has support values drawn on branches based on the bootstrap replicate trees. Support values show the percentage of bootstrap replicates that contain a branch.
3.The “main” ASTRAL tree; this is the results of running ASTRAL on the best_ml input gene trees. This main tree also includes support values, which are again drawn based on the 100 bootstrap replicate trees.(不懂)
注意:support value以百分数的形式展示。而local posterior probabilities是0-1之间的数。当astral 计算bootstrapping时,它会持续输出每一个重复的bootstrapped astral tree.因此,如果replicate 被输入成100,它将会输出100个数,然后,输出100 bootstrapped trees 的greedy consensus。(不懂)最后,它会开展主要的分析 (-i参数的文件)然后计算主要树的branch support。这个示例中就是102trees。

number of replicates

默认值是100,-r 参数可以设置任何数量的重复。但是要保证你的genetree的bootstrap file 的bootstrap replicates 要多于你的-r参数后面的设置。

gene+site resampling

astral 开展site-only的resampling,可以用-g参数。

java -jar ../astral.5.6.3.jar -i song_mammals.424.gene.tre -b bs-files -g -r 100 -o song_mammals.bootstrapped.gs.astral.tre

这时候我们需要更多的genetree replicates。如果是-g -r 100,对于某些gene那可能需要150 replicates。因为在genes resampled的时候,一些gene抽到的概率会比其他的gene更多。

gene-only resampling

astral展开gene-only bootstrapping 用--gene-only的option。这个只要one inputfile。用-i 参数就可以了,对于这个就不要使用-b参数。

java -jar ../astral.5.6.3.jar -i song_mammals.424.gene.tre --gene-only -o song_mammals.bootstrapped.go.astral.tre

由于引导涉及一个随机的过程,我们可以提供一个seed number给astral 保证重复性。seed number 可以有-s进行设置。默认的参数是692.

the search space of astral

exact version

astral 有exact 和heuristic 的version。当taxa的数目较少的时候,exact version 会节约时间。但是分类不能超过37个。

java -jar astral.5.6.3.jar -i test_data/song_primates.424.gene.tre -o test_data/song_primates.424.exact.tre -x

-x参数就是开启exact version。大约30秒。同样的,我们可以使用默认的heuristic启发式搜索法

java -jar astral.5.6.3.jar -i test_data/song_primates.424.gene.tre -o test_data/song_primates.424.default.tre

这就只有1秒,那么他们的运行结果有何不同呢?其实是一致的

example what exact helps

The default primate dataset we used in the previous step had 424 genes and 14 taxa. Since we have a relatively large number of gene trees, we could reasonably expect the exact and heuristic versions to generate identical output. The key point here is that as the number of genes increases, the probability that each bipartition of the species tree appears in at least one input gene tree increases. Thus, with 424 genes all bipartitions from the species tree are in at least one input gene tree, and therefore, the exact and the heuristic versions are identical.

We tried hard to find a subset of genes in the biological primates dataset where the exact and the heuristic versions did not match. We couldn't! So we had to resort to simulations. We simulated a 14-taxon dataset with extreme levels of ILS (average 87% RF between gene trees and the species tree). Now, with this simulated dataset, if you take only 10 genes, something interesting happens.
运行:

java -jar astral.5.6.3.jar -i test_data/simulated_14taxon.gene.tre -o test_data/simulated_14taxon.default.tre
astral.5.6.3.jar -i test_data/simulated_14taxon.gene.tre -o test_data/simulated_14taxon.exact.tre -x
image.png

image.png

这时得分会有一点不同,topology也会不同。因此,在极端的情况下(ILS水平较高,genetree错误较多或者较分类来说可用的genetrees较少比如14类群只有10个gene,较之前的424gene就是较少)。那么就可以观察到两种算法的差异。

providing astral with extra trees

为了expand search space ,运行:

java -jar astral.5.6.3.jar -i test_data/simulated_primates_5X.10.gene.tre -o test_data/simulated_primates_5X.10.species.tre -e test_data/simulated_primates_5X.10.bootstrap.gene.tre

这里的-e参数用于输入一组extra trees 用于扩展astral的搜索空间。这个文件为10个simulated genes提供了200 bootstrap replicates 。-f 用于当input tree 有species labels代替gene label 的时候。

memory

大数据集(>500taxa)增加memory available to java。
run

java -Xmx3000M -jar astral.5.6.3.jar -i in.tree

其他参数

-m: 移除含有少于指定叶子数量的gene。对于需要一定分类级别的taxon occupancy 是有用的。后面设置数量。
-k completed : To build the set X (and not to score the species tree), ASTRAL internally completes the gene trees. To see these completed gene trees, run this option. This option is usable only when you also have -o(不懂)
-k bootstrapped 和-k bootstraps_norun:these options output the bootstrap replicate inputs to ASTRAL. These are useful if you want to run ASTRAL separately on each bootstrap replicate on a cluster.
-k searchspace_norun:输出search space然后退出。
----polylimit:
--samplingrounds:For multi-individual datasets, this option controls how many rounds of individual sampling is used in building the constraint set. Adjust to reduce/increase the search space for multi-individual datasets
文章参考:[https://github.com/smirarab/ASTRAL/blob/master/astral-tutorial.md#running-on-a-multi-individual-datasets]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,254评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,875评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,682评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,896评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,015评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,152评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,208评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,962评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,388评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,700评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,867评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,551评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,186评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,901评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,689评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,757评论 2 351

推荐阅读更多精彩内容