LASTZ v1.04.22安装与使用-Bioinformatics工具-028

01 背景

LASTZ 是一个用于比对 DNA 序列的程序,也称为成对比对工具。它最初设计用于处理来自不同物种且尺寸相当于人类染色体的序列,但同样适用于由NGS(下一代测序)技术(如Roche 454)产生的序列。

LASTZ - 成对 DNA 序列比对工具  
该仓库包含了 LASTZ 的最新官方工作分支。官方发布版本已打上标签,可以在 [https://github.com/lastz/lastz/releases](https://github.com/lastz/lastz/releases) 找到。我们鼓励用户使用带有标签的发布版本,因为此工作分支可能不够稳定。

截至本文撰写时,最新的官方发布版本是 1.04.22。其他 LASTZ 发布版本,包括 2021 年 9 月之前的所有版本,可以在 [http://www.bx.psu.edu/~rsharris/lastz](http://www.bx.psu.edu/~rsharris/lastz) 找到(以压缩包的形式提供)。

有关安装和使用的信息,请参见 [https://lastz.github.io/lastz](https://lastz.github.io/lastz)(等同于此仓库中的 README.lastz.html)。

UCSC 基因组浏览器组已将 lastz 和 lastz_D 纳入他们的预构建二进制文件中(该版本可能落后于此处的最新版本):

- [http://hgdownload.soe.ucsc.edu/admin/exe/linux.x86_64/](http://hgdownload.soe.ucsc.edu/admin/exe/linux.x86_64/)
- [http://hgdownload.soe.ucsc.edu/admin/exe/macOSX.x86_64/](http://hgdownload.soe.ucsc.edu/admin/exe/macOSX.x86_64/)

一个 GPU 加速版本 SegAlign 可在 [https://github.com/gsneha26/SegAlign](https://github.com/gsneha26/SegAlign) 找到。

于 2022 年 8 月 7 日更新,作者:Bob Harris(LASTZ 的开发者)。

02 参考
https://github.com/lastz/lastz    #官网1
https://www.bx.psu.edu/~rsharris/lastz/           #官网2

03 安装
method1
如果你收到的是一个压缩档案分发包,请使用适合你电脑的方式解压。解压后应该得到一个目录 `<somepath>/lastz‑distrib‑X.XX.XX`,其中包含一个 `src` 子目录(以及其他一些目录)。你可以选择将目录名称中的版本号(`-X.XX.XX`)去掉,以方便使用。

在构建或安装任何程序之前,你需要告诉安装程序将可执行文件放在哪里,可以通过设置 shell 变量 `$LASTZ_INSTALL` 或编辑 `make‑include.mak` 文件中的 `installDir` 定义来完成。此外,确保将你选择的目录添加到 `$PATH` 中。

然后,要构建 LASTZ 可执行文件,请在 bash 或类似的命令行 shell 中输入以下命令(Solaris 用户应将 `make` 替换为 `gmake`)。这将构建两个可执行文件(`lastz` 和 `lastz_D`),并将它们复制到你的 `installDir` 中。


cd <somepath>/lastz-distrib-X.XX.XX/src
make
make install


这两个可执行文件本质上是相同的程序,唯一的区别是 `lastz` 使用整数得分,而 `lastz_D` 使用浮点数得分。构建过程不应报告任何警告或错误。为此,Makefile 被设置为将警告视为错误并停止构建。如果你遇到这种情况,可以使用 `Makefile.warnings` 来代替:


make -f Makefile.warnings


这应该允许构建完成,同时仍然报告警告。你需要判断这些警告是否真的表明存在问题。通常情况下,它们没有问题,但请将它们报告给作者。

一个简单的自测已包含在内,以便你测试构建是否成功。要运行它,请输入以下命令:


make test


如果测试成功,你将不会看到任何输出。否则,你会看到预期输出与构建输出之间的差异,以及类似于以下的行:

make: *** [test] Error 1

method2
wget -c https://github.com/lastz/lastz/archive/refs/tags/1.04.22.tar.gz
tar -zxvf 
cd
make
make install
04 使用

命令行语法  
如果你熟悉 BLASTZ,那么可以使用与运行 BLASTZ 相同的方式来运行 LASTZ,使用相同的选项和输入文件。除了这种 BLASTZ 兼容性之外,LASTZ 还提供了其他选项。

LASTZ 命令行的一般格式是:


lastz <target> [<query>] [<options>]


尖括号 `< >` 表示需要用你的值替换的元语法变量,而方括号 `[ ]` 表示可选的元素。命令行中的字段由空格分隔;如果字段中需要包含空格(例如在文件名中),必须用双引号 `""` 括起来。元素可以以任意顺序出现,唯一的限制是,如果存在 `<query>`,它必须出现在 `<target>` 之后。输出通常写入标准输出(stdout),除非为某个特定选项另行指定。

`<target>` 和 `<query>` 通常只是包含要比对的序列的文件名,可以是 FASTA、Nib 或 2Bit 格式。不过,它们也可以是间接引用序列的 HSX 索引文件,还可以指定预处理操作,例如从文件中选择一个子序列(详情见“序列说明符”)。使用诸如 `--self` 的某些选项时,不需要 `<query>`;否则,如果未指定 `<query>`,查询序列将从标准输入(stdin)读取(但这不适用于 2Bit 之类的随机访问格式)。在特殊情况下,使用 `--targetcapsule` 选项时,可以省略 `<target>`,因为目标序列嵌入在胶囊文件中。

对于选项,通常的格式是 `--<keyword>` 或 `--<keyword>=<value>`,但为了兼容 BLASTZ,有些选项也有替代语法 `<letter>=<number>`。在从下表中复制选项时要小心,这里的一些连字符是特殊字符,以避免某些网页浏览器中的尴尬换行问题。如果遇到问题,请在命令行中将粘贴的连字符替换为普通的手动输入的连字符。

请理解,LASTZ 是一个复杂的程序,其选项并非全部独立,即某些选项无法与其他选项组合使用。尝试列出所有可能的冲突是困难且繁琐的;我们这里只提到一些主要的冲突。如果你不确定某个组合是否可行,可以直接尝试运行——如果不允许,LASTZ 会告诉你。

运行不带任何参数的 `lastz` 命令会打印一个包含最常用选项的帮助信息,而运行


lastz --help     #则会列出所有选项


| 选项  | BLASTZ 对应选项 | 含义  |
|-------|-----------------|-------|
| --strand=both | B=2 | 搜索两个链。 |
| --strand=plus | B=0 | 仅搜索正链(与查询说明符对应的链)。 |
| --strand=minus |  | 仅搜索查询说明符的反向互补链。 |
| --self |  | 执行自我比对:目标序列也是查询。计算比不使用此选项时更高效,因为每个镜像配对比对块中的一个被处理(另一个冗余的在处理过程中被跳过,但在输出中重新创建)。此外,主对角线上的简单自我比对块将从输出中省略。如果目标由多个序列组成,则无法使用此选项。 |
| --nomirror |  | 禁止重新创建镜像比对。输出仅包括自我比对中每个有意义的比对块的一份副本。此选项仅在使用 `--self` 选项时适用。 |
| --queryhsplimit=<n> |  | 丢弃具有超过 `<n>` 个 HSP 的查询。任何超过此限制的查询都会作为警告报告(到标准错误 stderr),且不会报告比对。这对于将读取映射到参考基因组时很有用,当某些读取在参考中映射到太多位置时。 |
| --queryhsplimit=nowarn:<n> |  | 与 `--queryhsplimit=<n>` 相同,但对超过限制的查询不显示警告。 |
| --queryhsplimit=keep,nowarn:<n> |  | 与 `--queryhsplimit=<n>` 相同,但不丢弃超过限制的查询,并且不显示警告。对于这样的查询,找到的前 `<n>` 个 HSP 会传递给后续处理。需要注意的是,报告的 HSP 并不是最好的 `<n>` 个 HSP。它们只是最先找到的 `<n>` 个;它们很可能有位置偏差。 |
| --queryhspbest=<n> |  | 对于具有超过 `<n>` 个 HSP 的查询,丢弃任何得分低于第 `<n>` 好的 HSP。这在将读取映射到参考基因组时很有用,当某些读取在参考中映射到太多位置时。 |
| --querydepth=<n> |  | 如果查询/链的比对碱基与查询长度的比率超过 `<n>`,则停止处理带有空隙的比对。一个警告将写入标准错误(stderr),丢弃该查询/链的所有比对,然后继续处理下一个查询(或链)。如果偏向于保留此类查询/链的某些比对,可以使用 `--querydepth=keep:<n>`。`<n>` 是一个实数,对应于覆盖深度阈值。例如,值 5.0 将在查询/链每个碱基的平均比对数达到五次时终止。分子是匹配或替换的碱基数(但不包括空隙);分母是查询序列的长度。此选项的目的是节省时间。对于自动终止重复含量高的查询的处理非常有用,因为其他处理重复内容的方法都失败了。此外,不考虑后端过滤选项。换句话说,只要达到评分阈值的比对都会被计入匹配数,无论是否会被报告。其理由是我们试图中止在 DP 矩阵中具有太多比对限制的查询处理,而后端过滤发生在此过程的后期。 |
| --querydepth=keep:<n> |  | 与 `--querydepth=<n>` 相同,但报告在超过阈值之前为该查询/链发现的任何比对。需要注意的是,报告的比对并不保证是达到阈值的最高得分比对。它们只是最先找到的比对。换句话说,此选项的目的是节省时间,而不是找到最佳比对。 |
| --querydepth=nowarn:<n> |  | 与 `--querydepth=<n>` 相同,但对超过限制的查询不显示警告。 |
| --querydepth=keep,nowarn:<n> |  | 与 `--querydepth=<n>` 相同,但报告在超过阈值之前为该查询/链发现的任何比对,并且不显示警告。 |
| --anyornone |  | 在找到第一个符合条件的比对并写入输出后,停止处理并转到下一个查询。“符合条件”意味着比对符合所有阈值等,与其他选项的设置一致。详见“任一或无比对”了解更多细节。此选项不兼容链式处理或插值。 |

默认设置:默认情况下,搜索两个链,并假设目标与查询不同。如果使用 `--self`,默认是在输出中重新创建冗余的镜像比对块。
05 参考文献

Harris, R.S. (2007) Improved pairwise alignment of genomic DNA. Ph.D. Thesis, The Pennsylvania State University.

That Ph.D. thesis is here.

  • 11
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值