multiple whole genome alignment

multiple whole genome alignment,第1张

写在前面 :在上亿年的进化历程中,基因组经历了大大小小的改变。从小的核苷酸突变、插入、缺失到大的基因缺失、重复、基因组重排和水平基因转移。基因组比对可以通过比对序列中的同源区域,找到DNA中的改变。理解每种改变的速率和模式将有助于了解多种多样的生物学过程。

经过google,高分推荐的multiple whole genome alignment软件有Mavue, Mugsy和Multiz三个。这三个软件都可以通过conda安装。

但相比于conda,源码附带的readme是我们了解这个软件的重要参考,因此我更偏爱源码。

Mugsy是Angiuoli SV和Salzberg SL于2010年,开发的一款用于multiple whole genome alignment 的工具。

特点

文件要求

选项

MAF格式

mugsy 脚本可以完成multiple alignment 的所有过程。

其中,核心程序是:

例子:

选择10个Lp genome,进行预实验,记录时间。

话说好久啊,10个基因组花了3个小时。那我有500多个···

Mugsy安装目录下有转换文件

MAF格式:

FASTA格式:

把比对信息抽出来,抽成一块一块的,不再是原来摞在一起的:

第一个参数是fasta文件,第二个是单一文件的输出目录

然后传到MEGAX里就可以看了。

Mauve分为原始Mauve算法和progressive Mauve算法。

original Mauve 的劣势:

progressiveMauve算法的优势:

文件格式

输入文件可以是FastA,Multi-FastA或 GenBank。如果 一个文件中有多个序列,即Multi-FastA,Mauve会先将它们合并起来 ,再将合并后的序列和其他序列比对。

选项汪纤

重要参数的默认设置

比对完成后,Mauve会产生多个比对相关文件。下面介绍一下每个文件包含的信息及对应的格式。

.alignment文件以 eXtended Multi-FastA格式存储Mauve产生的比对数据。

XMFA格式中存储了多个共线性块的比对情况,不同共线性块以 = 分割。

每个共线性块中,一个基因组有一条对应的fasta格式的序列。其中,定义行给出这条序列位于基因组的位置和方向(正负链)。

这些共线性块共同组成了基因组比对结果。

Mauve略微改造了下xmfa格式,要求基因组序列中的核苷酸能且仅能出现一次。

.island文件中存储了比对中发现的genomic islands,以tab键分割。

Island指的是比对中一部分基因组有,而另一部分基因组没有的区域。

一个迹郑island由一个序列的基因组坐标定义,其中另一个基因组在比对的那部分中包含长度为n或更长的缺口。缺口的长度n可以人为定义。是不是很拗口,看下例子就明白了。

设定n=5,则称基因组0和2在5-10位置上有个岛

对应的.islands文件中,一行记录一个岛。格式:基因组A➡️岛最左侧在A中的位置➡️岛最右侧在A中的位置➡️基因组B➡️岛最左侧在B中的位置➡️岛最右侧在B中的位置。

第一行记录在基因组0中,核苷酸4至11与基因组1中的核苷酸4至5对齐。

岛的长姿陵颂度=|(rightA - leftA) - (rightB - leftB)|。

什么是骨架,支撑性的东西。

.backbone文件存储了在所有基因组中都是保守的比对区域。

保守区域定义为长度大于等于x,期间gap不超过y个核苷酸的alignment片段。

来自第一个基因组的片段[22,256-22,371]分别在第二个[20,147-20,299]和第三个基因组[22,255-22,370]中保守。

跟original mauve不同的是,progressive mauve的backbone文件不再要求在所有基因组中都是保守的, align regions conserved among two or more genomes 。backbone文件按照 seq_0_leftend 列排序。

可以从backbone文件中推出island位置

行和列都是基因组文件,按照输入顺序排序。

0代表没有一个相同的核苷酸,1代表每个位置的核苷酸都是相同的。

记录了SNP模式(按照输入顺序排序)以及SNP在每个基因组中的位置。

第一行列出了4个同源基因,每个基因分别来自一个基因组。0:Z03:2818-3750中:

第2行中,2::2801-3733代表该区域没有注释到的基因,因此没有locus_tag,但是是同源的。

第3行中,基因组1上注释到了两个基因。

第4行中,基因组2上没有注释到基因。

相同的测试文件,Mauve用了大约45分钟。这明明比Mugsy快好吧···

有LASTZ+ Multiz和LAST+ Multiz两种方案。鉴于UCSC用lastz,我就先试试第一种方案。

https://github.com/mcfrith/last-genome-alignments/issues/7

因为用的是UCSC的自动化流程-doBlastzChainNet.pl,所以需要配置一些东西

ucsc上的doBlastzChainNet.pl可以自动完成pairwise alignement的所有步骤,包括partition, blastz, cat, chainRun, chainMerge, net, load, download, cleanup, syntenicNet。最后直接得到可用于Multiz的结果文件。

基因组文件需要先压缩成gz格式,然后再用faToTwoBit将基因组文件转为.2bit格式,用twoBitInfo获取各染色体的信息。

创建一个名为DEF的文件,里面为lastz所用参数。

参数意义详见: http://genomewiki.ucsc.edu/index.php/DoBlastzChainNet.pl

为了缩短比对时间,将genome切成了chunk。为了充分利用多核系统,UCSC开发了parasol系统,用于管理任务。

a. 比对前,要先开启parasol

b. 比对中

c. 比对后

最后 BASE/axtChain/target.query.synNet.maf 为结果文件,作为Multiz的输入文件。

合并pairwise的结果:

写在最后:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12272805.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存