美文网首页
MSCquartets使用

MSCquartets使用

作者: 纵纵纵小鸮 | 来源:发表于2023-02-19 22:26 被阅读0次

    MSCquartets是一个R包,可以对物种树进行假设检验,基于多物种溯祖模型(Multispecies Coalescent model )推断物种树和物种网络。quartet指的是先将物种分为4个分类{a,b,c,d},对mab|cd; mac|bd; mad|bc进行计数,然后计算qcCF,qcCF计算公式如下:qcCF=(mab|cd; mac|bd; mad|bc)。

    多物种溯祖模型看这里:http://www.mselab.cn/detail/104/

    MSCquartets的输入是基因树文件,类似下图:

    作者在manual中推荐了如下的分析流程:

    1.计算基因树集的四重奏计数一致性因子(quartet count concordance factor, qcCF)并制成表格;

    2.就一个或多个qcCFs是否与溯祖模型一致对物种树进行假设检验;

    3.对假设检验的结果进行作图;

    4.通过QDC和WQDC的方式推断物种树;

    5.通过NANUQ方法推断leve-1 物种网络。

    以示例数据为例尝试分析:

    首先安装包:

    install.packages("MSCquartets")

    library(MSCquartets)

    1.读输入gene tree文件,计算qcCFs并生成后续分析所需格式:

    gtrees=read.tree(file=system.file("extdata","dataHeliconiusMartin",package="MSCquartets"))

    tnames=taxonNames(gtrees)   ###得到数据集中所有物种名字

    QT=quartetTable(gtrees)

    RQT=quartetTableResolved(QT)   ##转换所有quartet counts,丢弃unresolved的结果或者将其分到3个resolved计数( mab|cd; mac|bd; mad|bc )中。

    #quartetTable(trees, taxonnames = NULL, epsilon = 0, random = 0)  构建qcCFs table:taxonnames可以指定想要分析的物种,例如tnames[1:6]取前6个物种;eposilon是最小可以认为是非0的分支长度;random是如果随机抽取4个分类群的子集,抽取的数目,如果random=0,则使用所有子集。

    dataHeliconiusMartin是包自带的袖蝶属的gene tree文件,包含16个物种。RQT数据集内容如下:

    共19列,前16列为16个物种,后三列为resolved后的mab|cd; mac|bd; mad|bc的计数.

    2.进行假设检验

    pTable=quartetTreeTestInd(RQT,"T3")   

    Qtest=quartetStarTestInd(pTable)

      模型有“T1”和“T3”可选,T1是指定拓扑结构的物种树,需输入指定树,如stree="(((t5,t6),t4),((t1,t2),t3));",T3是任意拓扑结构的物种树,不用指定;其他参数见manual。

    3.对假设检验结构进行作图

    quartetTestPlot(Qtest, "T3", alpha=.000000001, beta=.0001)  ##α和β值可调整。

    结果图如下:

    H0:The qcCF arose from a species quartet tree of specified/unspecified topology under the MSC.

    蓝色和棕色表示qcCF与MSC一致,接受原假设;红色和绿色表示拒绝原假设。

    4.通过QDC和WQDC的方式推断物种树;

    stree=QDC(gtrees)

    write.tree(stree)

    plot(stree)

    stree=WQDC(gtrees)

    write.tree(stree)

    plot(stree)

    结果树如下:

    QDC树 WQDC树

    5.通过NANUQ方法推断leve-1 物种网络。

    NANUQ(Qtest,outfile = "NANUQdist", alpha=.0001, beta=.95)

    dist=NANUQdist(Qtest, outfile =  "NANUQdist")

    nn=neighborNet(dist)

    plot(nn,"2D")

    结果图如下:

     对于这个软件涉及到的一些理论模型和更多用法我还有很多不懂,欢迎一起讨论。

    reference:

    MSCquartets:https://cran.r-project.org/web/packages/MSCquartets/index.html

    MSCquartets文章:Rhodes, John A, Hector Baños, Jonathan D Mitchell, and Elizabeth S Allman. ‘MSCquartets 1.0: Quartet Methods for Species Trees and Networks under the Multispecies Coalescent Model in R’. Edited by Russell Schwartz.Bioinformatics37, no. 12 (19 July 2021): 1766–68.https://doi.org/10.1093/bioinformatics/btaa868.

    MSCquartets手册:https://cran.r-project.org/web/packages/MSCquartets/MSCquartets.pdf

    溯祖理论:http://www.mselab.cn/detail/104/

    相关文章

      网友评论

          本文标题:MSCquartets使用

          本文链接:https://www.haomeiwen.com/subject/sxtikdtx.html