什么是HISAT2?

HISAT2是一种快速灵敏的比对程序,用于针对一般人群(以及针对单个参考基因组)作图的下一代测序读数(全基因组,转录组和外显子组测序数据)作图。基于GCSABWT的扩展(对于图形),我们就我们所知,设计并实现了图形FM索引(GFM),一种原始方法及其首次实现。除了使用一个代表总人口的全球GFM指数外,HISAT2还使用大量小型GFM指数,这些指数共同覆盖了整个基因组(每个指数代表56 Kbp的基因组区域,需要55,000个指数来覆盖人类人口)。这些小的索引(称为局部索引)与几种比对策略相结合,可实现序列读数的有效比对。这种新的索引方案称为层次图FM索引(HGFM)。我们已经基于HISATBowtie2实现开发了HISAT 2 。HISAT2在SAM中输出对齐方式格式,可以与使用SAM的许多其他工具(例如SAMtoolsGATK)互操作。HISAT2是根据GPLv3许可发行的,并且可以在Linux,Mac OS X和Windows下的命令行上运行。

从右侧的“发行”部分下载HISAT2源和二进制文件。二进制文件可用于x86_64运行Linux和Mac OS X的Intel体系结构()。

从源头建造

首先,从右侧的“发行版”部分下载源程序包。将文件解压缩,转到解压缩后的目录,然后通过运行不带参数的GNU make(通常使用command make,但有时使用gmake)来构建HISAT2工具。如果使用MinGW进行构建,请make从MSYS环境中运行。

HISAT2正在使用多线程软件模型,以便在可能的情况下加快在SMP体系结构上的执行时间。在POSIX平台(例如linux,Mac OS等)上,它需要pthread库。尽管可以在非POSIX平台(例如Windows)上使用pthread库,但是由于性能原因,HISAT2会尽可能尝试使用Windows本机多线程。

为了在HISAT2中支持SRA数据访问,请下载并安装NCBI-NGS工具包。运行时make,请指定其他变量,如下所示。make USE_SRA=1 NCBI_NGS_DIR=/path/to/NCBI-NGS-directory NCBI_VDB_DIR=/path/to/NCBI-NGS-directory,其中NCBI_NGS_DIRNCBI_VDB_DIR将在Makefile中用于-I和-L编译选项。例如,将使用HISAT2 - 图1(NCBI_NGS_DIR)/ lib64。

添加到PATH

通过将新的HISAT2目录添加到PATH环境变量中),可以确保无论何时运行hisat2hisat2-buildhisat2-inspect从命令行获取,只需获取刚刚安装的版本,而无需指定整个路径。建议大多数用户使用。为此,请按照操作系统的说明将目录添加到PATH中)。

如果您想通过HISAT2可执行文件复制到您的现有目录来安装HISAT2 PATH),请确保您复制所有的可执行文件,包括hisat2hisat2-align-shisat2-align-lhisat2-buildhisat2-build-shisat2-build-lhisat2-inspecthisat2-inspect-shisat2-inspect-l

报告中

报告模式控制着HISAT2查找多少个比对以及如何报告它们。

通常,当我们说读具有比对时,是指它具有有效的比对。当我们说读具有多个比对时,是指它具有有效且彼此不同的多个比对。

默认情况下,HISAT2可能会将其5’和3’末端附近的片段软剪切。用户可以通过设置软剪切(--sp)的不同惩罚或禁止软剪切([ --no-softclip])来控制此行为。

不同的比对将读段映射到不同的位置

如果相同的单个读段的两个比对将相同的读段映射到不同的位置,则它们是“不同的”。具体来说,我们说如果没有对齐位置,则在相同方向的两个对齐中都没有特定读取偏移量与特定参考偏移量对齐的对齐位置。例如,如果第一个对齐方式为正向,并且将读取偏移量为10处的阅读字符与第3号染色体上的参考字符(偏移量为3,445,245美元)对齐,并且第二个对齐方式也为正向对齐方式,并且还将读取的字符处为读取偏移量10个处相对于第3号染色体的参考字符,偏移量3,445,245,它们不是不同的比对。

如果两个配对末端比对中的配偶1不同,或者两个比对中的配偶2不同,或者两者都相同,则同一对的两个比对是不同的。

默认模式:搜索一个或多个比对,分别报告

HISAT2每次读取最多搜索N个不同的主要比对,其中N等于用-k参数指定的整数。主要比对是指比对分数等于或高于任何其他比对的比对。多个不同的比对可能具有相同的分数。也就是说,如果-k 2指定,HISAT2将搜索最多2个不同的比对。配对对齐的对齐分数等于各个配对的对齐分数之和。每个报告的读取或配对比对中的第一个比对都在其FLAGS字段中设置了SAM“第二”位(等于256)。有关详细信息,请参见SAM规范

HISAT2不会以任何特定顺序“找到”比对,因此对于具有超过N个不同的有效比对的读取,HISAT2不能保证所报告的N个比对是比对得分最高的。尽管如此,在用户更关心读取是否对齐(或对齐特定次数)而不是其确切位置的情况下,此模式仍然有效且快速。

对齐摘要

当HISAT2完成运行时,它将打印消息,概述发生了什么。这些消息将打印到“标准错误”(“ stderr”)文件句柄中。对于由不成对的读取组成的数据集,摘要可能如下所示:

  1. 20000 reads; of these:
  2. 20000 (100.00%) were unpaired; of these:
  3. 1247 (6.24%) aligned 0 times
  4. 18739 (93.69%) aligned exactly 1 time
  5. 14 (0.07%) aligned >1 times
  6. 93.77% overall alignment rate

对于由对组成的数据集,摘要可能如下所示:

  1. 10000 reads; of these:
  2. 10000 (100.00%) were paired; of these:
  3. 650 (6.50%) aligned concordantly 0 times
  4. 8823 (88.23%) aligned concordantly exactly 1 time
  5. 527 (5.27%) aligned concordantly >1 times
  6. ----
  7. 650 pairs aligned concordantly 0 times; of these:
  8. 34 (5.23%) aligned discordantly 1 time
  9. ----
  10. 616 pairs aligned 0 times concordantly or discordantly; of these:
  11. 1232 mates make up the pairs; of these:
  12. 660 (53.57%) aligned 0 times
  13. 571 (46.35%) aligned exactly 1 time
  14. 1 (0.08%) aligned >1 times
  15. 96.70% overall alignment rate

缩进表示小计与总计之间的关系。

包装纸

hisat2hisat2-build并且hisat2-inspect可执行文件实际上是包装脚本调用二进制程序适当。包装器使用户不必区分“小”和“大”索引格式,这将在下一节中简要讨论。此外,hisat2包装器还提供了一些关键功能,例如处理压缩输入的功能以及--un--al和相关选项的功能。

大小索引

hisat2-build可以索引任何大小的参考基因组。对于长度少于约40亿个核苷酸的基因组hisat2-build,在索引的各个部分使用32位数字建立“小”索引。当基因组较长时,hisat2-build使用64位数字建立“大”索引。小索引存储在带有.ht2扩展名的文件中,大索引存储在带有.ht2l扩展名的文件中。用户不必担心特定索引的大小。包装脚本将自动构建并使用适当的索引。

性能调优

  1. 如果您的计算机具有多个处理器/核心,请使用 -p
    -p选项使HISAT2启动指定数量的并行搜索线程。每个线程在不同的处理器/内核上运行,并且所有线程并行查找对齐,从而使对齐吞吐量大约增加线程数量的倍数(尽管在实践中,加速比线性要差一些)。

命令行

设定功能选项

某些HISAT2选项指定功能而不是单独的编号或设置。在这些情况下,用户指定三个参数:(a)函数类型F,(b)常数项B,(c)系数A。可用的函数类型为常量(C),线性(L),平方根(S)和自然对数(G)。参数指定为F,B,A-即,函数类型,常数项和系数由逗号分隔,没有空格。常数项和系数可以是负数和/或浮点数。

例如,如果功能说明为L,-0.4,-0.6,则定义的功能为:

  1. f(x) = -0.4 + -0.6 * x

如果功能说明为G,1,5.4,则定义的功能为:

  1. f(x) = 1.0 + 5.4 * ln(x)

请参阅文档中有关该选项的信息,以了解该参数x的用途。例如,在该--score-min选项的情况下,该功能f(x)设置将对齐视为有效所必需的最小对齐分数,x即读取长度。

用法

  1. hisat2 [options]* -x <hisat2-idx> {-1 <m1> -2 <m2> | -U <r> | --sra-acc <SRA accession number>} [-S <hit>]

主要参数

  1. -x <hisat2-idx>

参考基因组索引的基名。basename是任何索引文件的名称,但不包括最后一个.1.ht2等后缀名。该索引文件hisat2首先在当前目录中查找指定的索引,然后在HISAT2_INDEXES环境变量中指定的目录中查找。

  1. -1 <m1>

以逗号分隔的包含配对1的文件列表(文件名通常包含_1),例如-1 flyA_1.fq,flyB_1.fq。使用此选项指定的序列必须与文件中的和与中读取的序列相对应<m2>。读取可能是不同长度的混合。如果-指定,hisat2将从“标准输入”或“ stdin”文件句柄中读取配合1。

  1. -2 <m2>

以逗号分隔的包含伴侣2的文件列表(文件名通常包含_2),例如-2 flyA_2.fq,flyB_2.fq。使用此选项指定的序列必须与文件中的和与中读取的序列相对应<m1>。读取可能是不同长度的混合。如果-指定,hisat2将从“标准输入”或“ stdin”文件句柄中读取配合2s。

  1. -U <r>

以逗号分隔的文件列表,其中包含要对齐的未配对读段,例如lane1.fq,lane2.fq,lane3.fq,lane4.fq。读取可能是不同长度的混合。如果-指定,hisat2则从“标准输入”或“ stdin”文件句柄中读取。

  1. --sra-acc <SRA accession number>

SRA登录号的逗号分隔列表,例如--sra-acc SRR353653,SRR353654。有关读取类型的信息,请访问http://trace.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?sp=runinfo&acc= sra -acc&retmode = xml,其中sra -acc是SRA登录号。如果用户在计算机群集上运行HISAT2,建议禁用与SRA相关的缓存(请参阅SRA-MANUAL上的说明)。

  1. -S <hit>

输出SAM文件的路径。默认情况下,对齐方式将写入“标准输出”或“标准输出”文件句柄(即控制台)。

选项

输入选项

  1. -q

读取(与指定<m1><m2><s>)是FASTQ文件。FASTQ文件通常具有扩展名.fq.fastq。FASTQ是默认格式。另请参阅:--solexa-quals--int-quals

  1. --qseq

读取(与指定<m1><m2><s>)是QSEQ文件。QSEQ文件通常以结尾_qseq.txt。另请参阅:--solexa-quals--int-quals

  1. -f

读取(与指定<m1><m2><s>)是FASTA文件。FASTA文件通常有扩展.fa.fasta.mfa.fna或类似的。FASTA文件没有指定质量值的方法,因此-f设置后,结果就像--ignore-quals设置了一样。

  1. -r

读取(与指定的<m1><m2><s>)是每行一个输入序列文件,而没有任何其他信息(没有读取名,无质量)。当-r设置,结果仿佛--ignore-quals也被设置。

  1. -c

读取序列在命令行中给出。即<m1><m2><singles>以逗号分隔的列表中读取,而不是读取文件列表。无法指定读取的名称或质量,因此-c也意味着--ignore-quals

  1. -s/--skip <int>

跳过(即不对齐)输入中的第一个<int>读数或对。

  1. -u/--qupto <int>

<int>从输入中对齐第一个读取或读取对(跳过-s/--skip读取或对后),然后停止。默认值:无限制。

  1. -5/--trim5 <int>

<int>在对齐之前从每个读数的5’(左)末端修剪碱基(默认值:0)。

  1. -3/--trim3 <int>

<int>在对齐之前,从每个读数的3’(右)末端修剪碱基(默认值:0)。

  1. --phred33

输入质量是ASCII字符,等于Phred质量加33。这也称为“ Phred + 33”编码,最新的Illumina管线使用该编码。

  1. --phred64

输入质量是ASCII字符,等于Phred质量加64。这也称为“ Phred + 64”编码。

  1. --solexa-quals

将输入质量从Solexa(可以是负数)转换为Phred(不能)。此方案在较旧的Illumina GA Pipeline版本(1.3之前)中使用。默认值:关闭。

  1. --int-quals

质量值在读取的输入文件中表示为以空格分隔的ASCII整数(例如40 40 30 40…),而不是ASCII字符(例如II?I…)。除非另有说明,否则将整数视为Phred质量等级--solexa-quals。默认值:关闭。

比对选项

  1. --n-ceil <func>

设置一个函数,该函数根据读取长度来控制读取中允许的最大不明确字符数(通常为Ns和/或.s)。例如,指定-L,0,0.15将N上限函数设置ff(x) = 0 + 0.15 * x,其中x是读取长度。另请参阅:[设置功能选项]。超出此上限的读数将被滤除。默认值:L,0,0.15

  1. --ignore-quals

在计算不匹配罚分时,无论实际值如何,始终将不匹配位置处的质量值视为最高。即,将输入视为所有质量值都很高。这也是当输入不指定质量值的默认行为(例如-f-r-c模式)。

  1. --nofw/--norc

如果--nofw指定,hisat2则不会尝试将未配对的读取与正向(Watson)参考链对齐。如果--norc指定,hisat2则不会尝试将未配对的读数与反向互补(Crick)参考链对齐。在双端模式下,--nofw--norc片段有关;即,指定--nofw原因hisat2以仅探索与反向互补(克里克)链片段相对应的那些配对末端构型。默认值:启用两个链。

计分选项

  1. --mp MX,MN

设置最大(MX)和最小(MN)不匹配罚分,均为整数。小于或等于数MX和大于或等于MN从所述比对评分对每个位置读字符对准到基准字符,字符不匹配减去,也不是一个N。如果--ignore-quals指定,则数字减去quals MX。否则,减去的数字为MN + floor( (MX-MN)(MIN(Q, 40.0)/40.0) )Q为Phred质量值。默认值:MX= 6,MN= 2。

  1. --sp MX,MN

设置每个基数的软剪切的最大(MX)和最小(MN)罚分,均为整数。从每个位置的对齐分数中减去一个小于或等于MX或大于或等于的数字MN。减去的数字是MN + floor( (MX-MN)(MIN(Q, 40.0)/40.0) )Q是Phred质量值。默认值:MX= 2,MN= 1。

  1. --no-softclip

禁止软剪切。

  1. --np <int>

为读取,引用或两者包含歧义字符(例如)的位置设置惩罚N。默认值:1。

  1. --rdg <int1>,<int2>

将读取间隙设置为开放(<int1>)和扩展(<int2>)罚分。长度为N的读取间隙的代价为<int1>+ N * <int2>。默认值:5、3

  1. --rfg <int1>,<int2>

将参考间隙设置为开放(<int1>)和扩展(<int2>)罚分。长度为N的参考间隙的惩罚为<int1>+ N * <int2>。默认值:5、3

  1. --score-min <func>

设置一个功能,用于控制将比对视为“有效”(即足以报告)所需的最小比对分数。这是读取长度的函数。例如,指定L,0,-0.6将最小分数函数设置ff(x) = 0 + -0.6 * x,其中x为读取长度。另请参阅:[设置功能选项]。默认值为L,0,-0.2

拼接对齐选项

  1. --pen-cansplice <int>

为每对规范的剪接位点(例如GT / AG)设置惩罚。默认值:0

  1. --pen-noncansplice <int>

设置每对非规范剪接位点(例如非GT / AG)的惩罚。默认值:12

  1. --pen-canintronlen <func>

设置带有标准剪接位点的长内含子的罚分,因此与较短的内含子相比,较短的内含子优先。默认值:G,-8,1

  1. --pen-noncanintronlen <func>

设置具有非规范剪接位点的长内含子的罚分,因此与较短的内含子相比,较短的内含子比那些长的内含子更可取。默认值:G,-8,1

  1. --min-intronlen <int>

设置最小内含子长度。默认值:20

  1. --max-intronlen <int>

设置最大内含子长度。默认值:500000

  1. --known-splicesite-infile <path>

使用此模式,您可以提供已知的剪接位点列表,HISAT2可以利用这些列表将读数与小锚点对齐。
您可以使用来创建这样的列表python hisat2_extract_splice_sites.py genes.gtf > splicesites.txthisat2_extract_splice_sites.pyHISAT2软件包中包含,其中是genes.gtf基因注释文件,并且splicesites.txt是以此模式提供HISAT2的剪接位点的列表。请注意,最好使用使用带注释的成绩单(例如基因组_tran基因组_snp_tran)构建的索引,该索引比使用此选项更好。提供已经包含在索引中的拼接位点无效。

  1. --novel-splicesite-outfile <path>

在这种模式下,HISAT2报告文件中的剪接位点列表 :侧翼碱基在右链(+,-和。)’ 的内含子基因组位置左侧的
染色体名称<tab>基因组位置。表示非规范剪接位点的未知链。<tab>``<tab>

  1. --novel-splicesite-infile <path>

使用此模式,您可以提供从上述选项“ —novel-splicesite-outfile”生成的新颖的拼接站点列表。

  1. --no-temp-splicesite

缺省情况下,HISAT2利用早期读取发现的剪接位点来对齐同一运行中的后续读取,尤其是具有较小锚点(<= 15 bp)的读取。

  1. --no-spliced-alignment

禁用拼接对齐。

  1. --rna-strandness <string>

指定特定于链的信息:默认为无链。
对于单端读取,请使用F或R。“ F”表示读取对应于笔录。“ R”是指读段对应于转录本的反向互补的对应部分。对于双端读取,请使用FR或RF。
使用此选项时,每个读段比对都将具有XS属性标签:“ +”表示读段属于基因组“ +”链上的转录本。“-”表示读段属于基因组“-”链上的转录本。
(TopHat有一个类似的选项—library-type选项,其中fr-firststrand对应于R和RF; fr-secondstrand对应于F和FR。)

  1. --tmo/--transcriptome-mapping-only

仅报告已知成绩单中的那些比对。

  1. --dta/--downstream-transcriptome-assembly

为包括StringTie在内的脚本汇编程序量身定制的报告对齐方式。使用此选项,HISAT2需要更长的锚长度才能从头发现拼接位点。这样可以减少与短锚的对齐,这有助于转录汇编程序显着提高计算和内存使用率。

  1. --dta-cufflinks

报告专门为袖扣定制的对齐方式。除了HISAT2可以使用上述选项(—dta)之外,HISAT2还可以通过三个信号(GT / AG,GC / AG,AT / AC)寻找新颖的拼接位点,但是所有用户提供的拼接位点不论其信号如何使用。

  1. --no-templatelen-adjustment

禁用RNA-seq读取的模板长度调整。

报告选项

  1. -k <int>

<int>为每次读取最多搜索不同的主要比对。主要比对是指比对分数等于或高于任何其他比对的比对。当找不到更多不同的有效比对或找到时,搜索将终止<int>,以先发生的为准。配对对齐的对齐分数等于各个配对的对齐分数之和。每个报告的读取或配对比对中的第一个比对都在其FLAGS字段中设置了SAM“第二”位(等于256)。对于具有比完全<int>有效的比对更多的读段,hisat2不能保证<int>报告的比对在比对得分方面是最好的。默认值:5(HFM)或10(HGFM)

注意:HISAT2在设计时并未考虑到较大的值-k,将读数与较长的重复基因组-k进行比对时,可能会非常非常慢。

  1. --max-seeds <int>

HISAT2与其他程序一样,使用种子和扩展方法。HISAT2尝试将种子扩展到全长比对。在HISAT2中,-max-seeds用于控制将要扩展的最大种子数。HISAT2扩展到许多种子,并跳过其余的种子。较大的值--max-seeds可能会提高比对敏感性,但HISAT2并非为--max-seeds考虑较大的值而设计,将读取序列与长的重复基因组--max-seeds进行比对时,可能会非常非常慢。默认值为最大值5和随附的值-k

  1. --secondary

报告二级对齐。

配对端选项

  1. -I/--minins <int>

有效的成对末端比对的最小片段长度。此选项仅对—no-spliced-alignment有效。例如,如果-I 60指定并且配对末端比对包含两个处于适当方向的20 bp比对,且它们之间有20 bp的间隔,则认为该比对是有效的(只要-X也可以满足)。在这种情况下,19 bp的缺口将无效。如果使用修剪选项-3-5也使用修剪选项,则将-I约束应用于未修剪的配合。

-I和之间的差异越大-X,HISAT2的运行速度就越慢。这是因为HISAT2 之间的差异较大,-I并且-X需要HISAT2扫描较大的窗口才能确定是否存在一致的对齐方式。对于典型的片段长度范围(200至400个核苷酸),HISAT2非常有效。

默认值:0(基本上没有最小值)

|
|

  1. -X/--maxins <int>

|

有效的成对末端比对的最大片段长度。该选项仅对—no-spliced-alignment有效。例如,如果-X 100指定并且配对末端比对包含两个正确方向的20 bp比对,且两者之间有60 bp的间隔,则认为该比对是有效的(只要-I也可以满足)。在这种情况下,61bp的缺口将无效。如果使用-3或修剪选项-5,则-X约束将应用于未修剪的配合,而不是修剪的配合。

-I和之间的差异越大-X,HISAT2的运行速度就越慢。这是因为HISAT2 之间的差异较大,-I并且-X需要HISAT2扫描较大的窗口才能确定是否存在一致的对齐方式。对于典型的片段长度范围(200至400个核苷酸),HISAT2非常有效。

默认值:500。

|
|

  1. --fr/--rf/--ff

|

相对于前向参考链的有效成对末端对齐的上游/下游交配方向。例如,如果--fr已指定并且存在一个候选的配对末端比对,其中配偶1出现在配偶2的反向互补序列的上游,并且满足片段长度约束(-I-X),则该比对有效。同样,如果配合2出现在配合1的反向补语的上游,并且满足了所有其他约束,则这也是有效的。--rf同样要求上游mate1反向补充,下游mate2向前定向。--ff需要上游配合1和下游配合2都朝前。默认值:(--fr适用于Illumina的配对末端测序分析)。

|
|

  1. --no-mixed

|

默认情况下,当hisat2无法找到一对的一致或不一致的对齐方式时,它将尝试查找单个伴侣的对齐方式。此选项禁用该行为。

|
|

  1. --no-discordant

|

默认情况下,hisat2如果找不到不一致的路线,则查找不一致的路线。甲不和谐对准是其中两个配合对齐唯一的取向,但不满足配对末端约束(--fr/ --rf/--ff-I-X)。此选项禁用该行为。

|

输出选项

|

  1. -t/--time

打印加载索引文件和对齐读数所需的时钟时间。这被打印到“标准错误”(“ stderr”)文件句柄中。默认值:关闭。

|
|

  1. --un <path>
  2. --un-gz <path>
  3. --un-bz2 <path>

|

写入未配对的读取,该读取无法与处的文件对齐<path>。这些读取对应于将FLAGS 0x4位置1且0x40NOR或1 0x80位置1 的SAM记录。如果--un-gz指定,输出将被gzip压缩。如果--un-bz2指定,输出将被bzip2压缩。以这种方式写入的读取将与输入文件中的显示完全相同,而无需进行任何修改(相同的序列,相同的名称,相同的质量字符串,相同的质量编码)。读取不一定按照与输入相同的顺序出现。

|
|

  1. --al <path>
  2. --al-gz <path>
  3. --al-bz2 <path>

|

写入不成对的读取,该读取至少一次对齐到的文件<path>。这些读取对应举着旗的SAM记录0x40x40以及0x80位取消设置。如果--al-gz指定,输出将被gzip压缩。如果--al-bz2指定,输出将被bzip2压缩。以这种方式写入的读取将与输入文件中的显示完全相同,而无需进行任何修改(相同的序列,相同的名称,相同的质量字符串,相同的质量编码)。读取不一定按照与输入相同的顺序出现。

|
|

  1. --un-conc <path>
  2. --un-conc-gz <path>
  3. --un-conc-bz2 <path>

|

写成对的末尾读取未能与处的文件一致对齐<path>。这些读出对应于SAM记录与FLAGS 0x4位设置和任一0x400x80(取决于它的伴侣#1或#2)比特集。.1.2字符串添加到文件名,以区分哪个文件包含配对#1和配对#2。如果在%中使用<path>了百分号,则百分号将替换为12来制作每个伴侣的文件名。否则,.1.2添加在最后一个点之前<path>制作每个队友的文件名。以这种方式写入的读取将与输入文件中的显示完全相同,而无需进行任何修改(相同的序列,相同的名称,相同的质量字符串,相同的质量编码)。读取不一定按照与输入相同的顺序出现。

|
|

  1. --al-conc <path>
  2. --al-conc-gz <path>
  3. --al-conc-bz2 <path>

|

写入配对末端读取,该读取至少一次与处的文件一致对齐<path>。这些读取对应于未0x4设置FLAGS 位并且设置了0x400x80位的SAM记录(取决于它是伴侣#1还是#2)。.1.2字符串添加到文件名,以区分哪个文件包含配对#1和配对#2。如果在%中使用<path>了百分号,则百分号将替换为12来制作每个伴侣的文件名。否则,.1.2添加在最后一个点之前<path>制作每个队友的文件名。以这种方式写入的读取将与输入文件中的显示完全相同,而无需进行任何修改(相同的序列,相同的名称,相同的质量字符串,相同的质量编码)。读取不一定按照与输入相同的顺序出现。

|
|

  1. --quiet

|

除了对齐和严重错误外,什么也不打印。

|
|

  1. --summary-file

|

将对齐摘要打印到此文件。

|
|

  1. --new-summary

|

以新样式打印对齐摘要,这对机器更友好。

|
|

  1. --met-file <path>

|

hisat2指标写入文件<path>。具有对齐度量标准对于调试某些问题(尤其是性能问题)很有用。另请参阅:--met。默认值:指标已禁用。

|
|

  1. --met-stderr

|

hisat2指标写入“标准错误”(“ stderr”)文件句柄。这与不互斥--met-file。具有对齐度量标准对于调试某些问题(尤其是性能问题)很有用。另请参阅:--met。默认值:指标已禁用。

|
|

  1. --met <int>

|

每秒钟写入一个新的hisat2指标记录<int>。仅当指定--met-stderr或时才重要--met-file。默认值:1。

|

SAM选项

|

  1. --no-unal

|

禁止对未对齐的读取进行SAM记录。

|
|

  1. --no-hd

|

禁止SAM标头行(以开头@)。

|
|

  1. --no-sq

|

禁止@SQSAM标头行。

|
|

  1. --rg-id <text>

|

将读取的组ID设置为<text>。这将导致@RG打印SAM 标头行,并将其<text>作为与ID:标签关联的值。它还使RG:Z:多余字段附加到每个SAM输出记录,其值设置为<text>

|
|

  1. --rg <text>

|

加入<text>(通常的形式TAG:VAL,例如SM:Pool1)为对一个字段@RG的标题行。注意:为了@RG显示该行,--rg-id还必须指定。这是因为SAM SpecID需要标签。多次指定以设置多个字段。有关哪些字段合法的详细信息,请参见SAM规范--rg

|
|

  1. --remove-chrname

|

从对齐方式的引用名称中删除“ chr”(例如,chr18至18)

|
|

  1. --add-chrname

|

将“ chr”添加到对齐的参考名称中(例如18至chr18)

|
|

  1. --omit-sec-seq

|

打印辅助路线时,默认情况下,HISAT2将写出SEQQUAL字符串。指定此选项会使HISAT2在这些字段中打印一个星号。

|

性能选项

|

  1. -o/--offrate <int>

|

用覆盖索引的非标率<int>。如果<int>大于用于构建索引的取消速率,则在将索引读入内存时会丢弃某些行标记。这减少了对齐器的内存占用,但需要更多时间来计算文本偏移量。<int>必须大于用于建立索引的值。

|
|

  1. -p/--threads NTHREADS

|

启动NTHREADS并行搜索线程(默认值:1)。线程将在单独的处理器/内核上运行,并在解析读取和输出对齐时进行同步。搜索路线高度平行,并且加速接近线性。增加会-p增加HISAT2的内存占用量。例如,当与人类基因组索引对齐时,-p从1增加到8会使内存占用量增加几百兆字节。该选项仅在bowtiepthreads库链接时才可用(即,如果BOWTIE_PTHREADS=0在构建时未指定)。

|
|

  1. --reorder

|

即使-p设置为大于1 ,也可以保证输出SAM记录的打印顺序与原始输入文件中读取的顺序相对应。指定--reorder和设置为-p大于1会使HISAT2的运行速度稍慢,并且使用的内存更多,则如果--reorder未指定。如果-p设置为1 则无效,因为在这种情况下输出顺序自然会对应于输入顺序。

|
|

  1. --mm

|

使用内存映射的I / O加载索引,而不是典型的文件I / O。内存映射允许bowtie同一台计算机上的许多并发进程共享索引的相同内存映像(即,您只需支付一次内存开销)。这有助于bowtie-p无法使用或不推荐使用的情况下实现内存有效的并行化。

|

其他选择

|

  1. --qc-filter

|

筛选出QSEQ筛选器字段不为零的读取。仅当读取格式为时才有效--qseq。默认值:关闭。

|
|

  1. --seed <int>

|

使用<int>作为种子的伪随机数发生器。默认值:0

|
|

  1. --non-deterministic

|

通常,HISAT2为每个读取重新初始化其伪随机数生成器。它使用(a)读取名称,(b)核苷酸序列,(c)质量序列,(d)--seed期权价值衍生的数字为生成器播种。这意味着,如果两个读段是相同的(相同的名称,相同的核苷酸,相同的质量),即使存在歧义,HISAT2也会发现并报告两个序列的相同比对。时--non-deterministic指定,HISAT2重新初始化使用当前时间读取为它的每个伪随机发生器。这意味着HISAT2不一定会为两个相同的读数报告相同的比对。对于某些用户来说,这是违反直觉的,但在输入包含许多相同的读数的情况下可能更合适。

|
|

  1. --version

|

打印版本信息并退出。

|
|

  1. -h/--help

|

打印使用情况信息并退出。

|

SAM输出

以下是SAM输出的SAM格式的简要说明hisat2。有关更多详细信息,请参见SAM格式规范

默认情况下,hisat2打印头SAM用@HD@SQ@PG线条。当--rg指定一个或多个参数时,hisat2还将打印@RG一行,其中包括所有--rg由制表符分隔的用户指定的标记。

随后的每一行都描述一个对齐,或者如果读取未能对齐,则描述一个读取。每行是由制表符分隔的至少12个字段的集合;从左到右,这些字段是:

  1. 对齐的读取名称。
    请注意,SAM规范不允许读取名称中包含空格。如果读取的名称包含任何空格字符,则HISAT2将在第一个空格字符处截断该名称。这类似于其他工具的行为。
  2. 所有适用标志的总和。与HISAT2有关的标志是:
    |
    1. 1


|
阅读是一对
|
|

  1. 2


|
比对是正确的成对末端比对的一端
|
|

  1. 4


|
读取没有报告的比对
|
|

  1. 8


|
读数是一对,没有报告的比对
|
|

  1. 16


|
对准反向参考链
|
|

  1. 32


|
配对末端对齐中的另一对与反向参考链对齐
|
|

  1. 64


|
读取是一对配对1
|
|

  1. 128


|
读取是一对配对2
|
因此,与反向参考链对齐的未配对读段将具有标志16。对齐且是该对中的第一个配对的成对末端读段将具有标志83(= 64 + 16 + 2 + 1)。

  1. 发生比对的参考序列名称
  2. 基于1的偏移到前向参考链中发生比对的最左字符
  3. 映射质量
  4. CIGAR对齐方式的字符串表示形式
  5. 发生配偶对齐的参考序列的名称。设置为=,如果队友的参考序列相同,这种对齐的,或者*如果没有队友。
  6. 基于1的偏移到前向参考链中,在该位置出现配对对齐的最左字符。如果没有配合,则偏移为0。
  7. 推断的片段长度。如果配合的对齐发生在该对齐的上游,则大小为负。如果伙伴未一致对齐,则大小为0。但是,如果配偶不一致对齐同一条染色体,则大小为非0。
  8. 读取序列(如果与反向链对齐,则为反向互补)
  9. ASCII编码的读取质量(如果读取与反向链对齐,则为反向互补)。与FASTQ文件类似,编码的质量值在Phred质量等级上,编码的ASCII偏移量为33(ASCII字符!)。
  10. 可选字段。字段以制表符分隔。hisat2根据路线的类型,为每个路线输出零个或多个这些可选字段:
  1. |

AS:i:

  1. |
  2. 对齐分数。可以为负。仅在SAM记录用于对齐读取时才存在。
  3. |
  4. |

ZS:i:

  1. |
  2. 除了报告的比对以外,找到了得分最高的比对的比对分数。可以为负。仅当SAM记录用于对齐的读取并且发现该读取有多个对齐时才存在。注意,当读段是一致排列的对的一部分时,该分数可能大于\[ `AS:i`\]
  3. |
  4. |

YS:i:

  1. |
  2. 配对末端对齐中相对配对的对齐分数。仅当SAM记录是作为成对末端比对的一部分进行比对的读取时才显示。
  3. |
  4. |

XN:i:

  1. |
  2. 参考文献中含糊不清的碱基数涵盖了此对齐方式。仅在SAM记录用于对齐读取时才存在。
  3. |
  4. |

XM:i:

  1. |
  2. 比对中的不匹配数。仅在SAM记录用于对齐读取时才存在。
  3. |
  4. |

XO:i:

  1. |
  2. 对齐中针对读取和参考间隙的间隙数均打开。仅在SAM记录用于对齐读取时才存在。
  3. |
  4. |

XG:i:

  1. |
  2. 对齐中读取和参考缺口的缺口延伸数。仅在SAM记录用于对齐读取时才存在。
  3. |
  4. |

NM:i:

  1. |
  2. 编辑距离;也就是说,将读取的字符串转换为参考字符串所需的最小数量的单核苷酸编辑(取代,插入和删除)。仅在SAM记录用于对齐读取时才存在。
  3. |
  4. |

YF:Z:

  1. |
  2. 字符串,指示读取内容被滤除的原因。另请参阅:\[过滤\]。仅针对已过滤掉的读取出现。
  3. |
  4. |

YT:Z:

  1. |
  2. 的值`UU`表示读取的内容不属于一对。值`CP`表示读段是一对的一部分,并且该对一致对齐。值`DP`表示读段是一对的一部分,并且该对不一致对齐。值`UP`表示读段是一对的一部分,但该对未能一致或不一致排列。
  3. |
  4. |

MD:Z:

  1. |
  2. 比对中不匹配的参考碱基的字符串表示形式。有关详细信息,请参见[SAM](http://samtools.sourceforge.net/SAM1.pdf)格式规范。仅在SAM记录用于对齐读取时才存在。
  3. |
  4. |

XS:A:

  1. |
  2. 的值`+``-`表示读取分别映射到有义和反义链上的转录本。拼接的对齐方式需要具有此字段,袖扣和StringTie中需要此字段。
  3. 我们可以报告该字段用于规范剪接站点(GT / AG),但不能报告非规范剪接站点。您可以使用“ --pen-noncansplice 1000000”指示HISAT2不要输出此类对齐方式(涉及非规范的拼接位点)。
  4. |
  5. |

NH:i:

  1. |
  2. 读取或配对的映射位置数。
  3. |
  4. |

Zs:Z:

  1. | 当读取的比对涉及索引中的SNP时,此选项用于指示读取确切地涉及SNP的位置。此可选字段类似于上面的MDZ字段。例如,`Zs:Z:1|S|rs3747203,97|S|rs16990981`表示读取的第二个碱基对应于已知的SNPIDrs3747203)。在第三个碱基之后的97个碱基(第二个碱基之后的碱基),在第100个碱基处的读取涉及另一个已知的SNPIDrs16990981)。“ S”表示单核苷酸多态性。“ D”和“ I”分别表示删除和插入。 |

hisat2-build根据一组DNA序列构建HISAT2索引。hisat2-build输出的一组的6个文件用后缀.1.ht2.2.ht2.3.ht2.4.ht2.5.ht2.6.ht2.7.ht2,和.8.ht2。如果索引较大,则这些后缀将ht2l终止。这些文件共同构成索引:它们是使读取与该引用对齐所需的全部。建立索引后,HISAT2将不再使用原始序列FASTA文件。

使用Karkkainen的逐块算法可以hisat2-build在运行时间和内存使用之间进行权衡。hisat2-build有三种方法控制交易方式:[ -p/ --packed],--bmax/ --bmaxdivn--dcv。默认情况下,hisat2-build将自动搜索产生最佳运行时间的设置,而不会耗尽内存。可以使用-a/--noauto选项禁用此行为。

索引器提供与索引的“形状”相关的选项,例如,--offrate控制“标记” 的Burrows-Wheeler行的分数(即,后缀数组样本的密度;有关详细信息,请参见原始FM索引文件)。根据应用的不同,所有这些选择都可能是有利可图的取舍。根据我们的实验,已将它们设置为对于大多数情况都合理的默认值。有关详细信息,请参见性能调整

hisat2-build可以生成大小索引。包装程序将根据输入基因组的长度决定哪个。如果引用不超过40亿个字符,但首选大索引,则用户可以指定--large-index强制hisat2-build构建大索引。

HISAT2指数基于Ferragina和Manzini 的FM指数,而FM指数又基于Burrows-Wheeler变换。用于建立索引的算法基于Karkkainen的分块算法

命令行

用法:

  1. hisat2-build [options]* <reference_in> <ht2_base>

笔记

  1. If you use --snp, --ss, and/or --exon, hisat2-build will need about 200GB RAM for the human genome size as index building involves a graph construction.
  2. Otherwise, you will be able to build an index on your desktop with 8GB RAM.

主要论点

|

  1. <reference_in>

|

用逗号分隔的FASTA文件列表,其中包含要与-c序列本身进行比对的参考序列(如果指定了序列本身)。例如,<reference_in>可能是chr1.fa,chr2.fa,chrX.fa,chrY.fa,或者,如果-c已指定,则可能是GGTCATCCT,ACGGGTCGT,CCGTTCTATGCGGCTTA

|
|

  1. <ht2_base>

|

要写入的索引文件的基本名称。默认情况下,hisat2-build写入指定的文件NAME.1.ht2NAME.2.ht2NAME.3.ht2NAME.4.ht2NAME.5.ht2NAME.6.ht2NAME.7.ht2,和NAME.8.ht2那里NAME<ht2_base>

|

选件

|

  1. -f

|

参考输入文件(被指定为<reference_in>)是FASTA文件(通常具有延伸.fa.mfa.fna或类似的)。

|
|

  1. -c

|

参考序列在命令行中给出。即<reference_in>是一个逗号分隔的序列列表,而不是FASTA文件列表。

|
|

  1. --large-index

|

hisat2-build构建大的索引,即使参考低于约4十亿个核苷酸长。

|
|

  1. -a/--noauto

|

禁用默认行为,从而根据可用内存hisat2-build自动为--bmax--dcv和[ --packed]参数选择值。而是,用户可以为这些参数指定值。如果在索引编制过程中内存已用完,将显示一条错误消息。用户可以尝试新参数。

|
|

  1. --bmax <int>

|

块中允许的最大后缀数。每个块允许更多后缀可以加快索引编制速度,但会增加峰值内存使用率。设置此选项将覆盖--bmax或的所有先前设置--bmaxdivn。默认值(根据--bmaxdivn参数而言)为--bmaxdivn4。默认情况下自动配置。使用-a/--noauto手动配置。

|
|

  1. --bmaxdivn <int>

|

块中允许的最大后缀数,表示为参考长度的一部分。设置此选项将覆盖--bmax或的所有先前设置--bmaxdivn。默认值:--bmaxdivn4。默认情况下自动配置。使用-a/--noauto手动配置。

|
|

  1. --dcv <int>

|

使用<int>作为差异覆盖采样周期。较大的周期产生较少的内存开销,但可能使后缀排序变慢,尤其是在存在重复的情况下。必须是2的幂,不大于4096。默认值:1024。默认情况下自动配置。使用-a/--noauto手动配置。

|
|

  1. --nodc

|

禁用差异覆盖样本。在最坏的情况下(最坏的情况是极为重复的参考),后缀排序变成二次时间。默认值:关闭。

|
|

  1. -r/--noref

|

不要构建索引的NAME.3.ht2NAME.4.ht2部分,它们包含参考序列的位压缩版本并用于成对末端对齐。

|
|

  1. -3/--justref

|

仅构建索引的NAME.3.ht2NAME.4.ht2部分,其中包含参考序列的位压缩版本,并用于成对末端对齐。

|
|

  1. -o/--offrate <int>

|

为了将比对映射回参考序列上的位置,必须注释(“标记”)一些或所有Burrows-Wheeler行及其在基因组上的相应位置。-o/--offrate控制要标记的行数:索引器将每2 ^ <int>行标记一次。标记更多的行可使参考位置查找更快,但需要更多的内存才能在运行时保存注释。默认值为4(每第16行被标记;对于人类基因组,注释占据约680 MB)。

|
|

  1. -t/--ftabchars <int>

|

ftab是用于针对查询的第一个字符计算初始Burrows-Wheeler范围的查找表<int>。较大的<int>表将产生较大的查找表,但查询时间会更快。ftab的大小为4 ^(<int>+1)个字节。默认设置为10(ftab为4MB)。

|
|

  1. --localoffrate <int>

|

此选项控制在局部索引中标记多少行:索引器将每2 ^ <int>行标记一次。标记更多的行可使参考位置查找更快,但需要更多的内存才能在运行时保存注释。默认值为3(每8行被标记,每个本地索引占用大约16KB)。

|
|

  1. --localftabchars <int>

|

本地ftab是本地索引中的查找表。默认设置为6(每个本地索引的ftab为8KB)。

|
|

  1. -p <int>

|

启动NTHREADS并行构建线程(默认值:1)。

|
|

  1. --snp <path>

|

如下提供SNP列表(以HISAT2自己的格式)(五列)。

SNP ID <tab>snp类型(单个,删除或插入),基于<tab>染色体名称的<tab>零偏移量,基于SNP <tab>替代碱基(单个)的基因组位置,SNP 的长度(删除)或插入序列(插入)

例如,rs58784443 single 13 18447947 T

使用hisat2_extract_snps_haplotypes_UCSC.py(在HISAT2程序包中)从dbSNP文件(例如http://hgdownload.soe.ucsc.edu/goldenPath/hg38/database/snp144Common.txt.gz)中提取SNP和单倍型。或`hisat2_extract_snps_haplotypes_VCF.py`从VCF文件中提取SNP和单倍型(例如ftp://ftp.1000genomes.ebi.ac.uk/vol1/ftp/release/20130502/supporting/GRCh38_positions/ALL.chr22.phase3_shapeit2_mvncall_integrated_v3plus_nounphased.rsID.genotypes.NPCh_SV vcf.gz)。

|
|

  1. --haplotype <path>

|

提供以下单倍型列表(以HISAT2自己的格式),如下(五列)。

单倍型ID <tab>染色体名称单倍型的<tab>基于零偏移的左坐标单倍型<tab>的基于零偏移的右坐标<tab>a逗号分隔的单倍型SNP id列表

例如ht35 13 18446877 18446945 rs12381094,rs12381056,rs192016659,rs538569910

有关如何提取单元型的信息,请参见上述选项—snp。不需要此选项,但是单倍型信息可以防止索引结构爆炸并显着减小索引大小。

|
|

  1. --ss <path>

|

请注意,此选项应与以下—exon选项一起使用。提供如下的拼接点列表(以HISAT2自己的格式)(四列)。

染色体名称<tab>基于侧翼碱基的<tab>零偏基的基因组位置,位于内<tab>链的左侧,基于内含子的基于基因组零偏角的基因组基因位置,位于右侧链

使用hisat2_extract_splice_sites.py(在HISAT2程序包中)从GTF文件中提取剪接位点。

|
|

  1. --exon <path>

|

请注意,此选项应与上面的—ss选项一起使用。提供如下外显子列表(采用HISAT2自己的格式)(三列)。

染色体名称<tab>外显子的基于零偏移的左基因组位置染色体外显子<tab>的基于零偏移的右基因组位置

使用hisat2_extract_exons.py(在HISAT2程序包中)从GTF文件中提取外显子。

|
|

  1. --seed <int>

|

使用<int>作为种子的伪随机数发生器。

|
|

  1. --cutoff <int>

|

仅索引<int>参考序列的前几个碱基(跨序列累加),其余部分则忽略。

|
|

  1. -q/--quiet

|

hisat2-build默认为冗长。使用此选项hisat2-build将仅打印错误消息。

|
|

  1. -h/--help

|

打印使用情况信息并退出。

|
|

  1. --version

|

打印版本信息并退出。

|

hisat2-inspect从HISAT2索引中提取有关它是哪种索引以及用于构建它的参考序列的信息。当不带任何选项运行,包含原始参考序列的工具将输出一个FASTA文件(包括所有非A/ C/ G/ T字符转换为N多个)。它也可以用于提取只是用参考序列名称-n/--names使用选项或一个更详细的概要-s/--summary选项。

命令行

用法:

  1. hisat2-inspect [options]* <ht2_base>

主要论点

|

  1. <ht2_base>

|

要检查的索引的基本名称。基本名称是任何索引文件的名称,但.X.ht2后缀省略。hisat2-inspect首先在当前目录中查找索引文件,然后在HISAT2_INDEXES环境变量中指定的目录中查找。

|

选件

|

  1. -a/--across <int>

|

打印FASTA输出时,请每隔一个<int>基数输出一个换行符(默认值:60)。

|
|

  1. -n/--names

|

打印参考序列名称,每行一个,然后退出。

|
|

  1. -s/--summary

|

打印摘要,该摘要包括有关索引设置以及输入序列的名称和长度的信息。摘要具有以下格式:

  1. Colorspace <0 or 1>
  2. SA-Sample 1 in <sample>
  3. FTab-Chars <chars>
  4. Sequence-1 <name> <len>
  5. Sequence-2 <name> <len>
  6. ...
  7. Sequence-N <name> <len>

字段由制表符分隔。对于HISAT2,颜色空间始终设置为0。

|
|

  1. --snp

|

打印SNP,然后退出。

|
|

  1. --ss

|

打印接合站点,然后退出。

|
|

  1. --ss-all

|

打印接头站点,包括那些不在全局索引中的站点,然后退出。

|
|

  1. --exon

|

打印外显子,然后退出。

|
|

  1. -v/--verbose

|

打印详细输出(用于调试)。

|
|

  1. --version

|

打印版本信息并退出。

|
|

  1. -h/--help

|

打印使用情况信息并退出。

|

HISAT2随附一些示例文件,帮助您入门。示例文件没有科学意义;这些文件将使您立即开始运行HISAT2和下游工具。

首先,按照手册中的说明获取HISAT2。在设置HISAT2_HOME环境变量指向包含新HISAT2目录hisat2hisat2-buildhisat2-inspect二进制文件。这很重要,因为HISAT2_HOME在以下命令中使用变量来引用该目录。

索引参考基因组

要为HISAT2随附的基因组区域(在20,000,000至20,999,999之间的人类22号染色体上1百万bps)创建索引,请创建一个新的临时目录(与位置无关),切换到该目录并运行:

  1. $HISAT2_HOME/hisat2-build $HISAT2_HOME/example/reference/22_20-21M.fa --snp $HISAT2_HOME/example/reference/22_20-21M.snp 22_20-21M_snp

该命令应打印多行输出,然后退出。该命令完成后,当前目录将包含十个新文件开始时都22_20-21M_snp和结束与.1.ht2.2.ht2.3.ht2.4.ht2.5.ht2.6.ht2.7.ht2,和.8.ht2。这些文件构成索引-完成!

您可以用来hisat2-build为从任何来源(包括UCSCNCBIEnsembl)获得的FASTA文件集创建索引。为多个FASTA文件建立索引时,请使用逗号指定所有文件以分隔文件名。有关如何创建索引的更多详细信息hisat2-build,请参见有关索引构建手册部分。您可能还希望通过获取预建索引来绕过此过程。

对齐示例读取

留在上一步中创建的目录中,该目录现在包含22_20-21M索引文件。接下来,运行:

  1. $HISAT2_HOME/hisat2 -f -x $HISAT2_HOME/example/index/22_20-21M_snp -U $HISAT2_HOME/example/reads/reads_1.fa -S eg1.sam

这将运行HISAT2对齐器,该对齐器使用上一步中生成的索引将一组未配对的读数与基因组区域对齐。将SAM格式的比对结果写入文件eg1.sam,并将简短的比对摘要写入控制台。(实际上,摘要被写入“标准错误”或“ stderr”文件句柄,该文件句柄通常打印在控制台上。)

要查看SAM输出的前几行,请运行:

  1. head eg1.sam

您将看到如下内容:

  1. @HD VN:1.0 SO:unsorted
  2. @SQ SN:22:20000001-21000000 LN:1000000
  3. @PG ID:hisat2 PN:hisat2 VN:2.0.0-beta
  4. 1 0 22:20000001-21000000 397984 255 100M * 0 0 GCCTGTGAGGGAGCCCCGGACCCGGTCAGAGCAGGAGCCTGGCCTGGGGCCAAGTTCACCTTATGGACTCTCTTCCCTGCCCTTCCAGGAGCAGCTCACT IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII AS:i:0 XN:i:0 XM:i:0 XO:i:0 XG:i:0 NM:i:0 MD:Z:100 YT:Z:UU NH:i:1
  5. 2 16 22:20000001-21000000 398131 255 100M * 0 0 ATGACACACTGTACACACCAGGGGCCCTGTGCTCCCCAGGAAGAGGGCCCTCACTTGAAGCGGGGCCCGATGGCCGCCACGTGCCGGTTCATGCTCCCCT IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII AS:i:0 XN:i:0 XM:i:0 XO:i:0 XG:i:0 NM:i:0 MD:Z:80A19 YT:Z:UU NH:i:1 Zs:Z:80|S|rs576159895
  6. 3 16 22:20000001-21000000 398222 255 100M * 0 0 TGCTCCCCTTGGCCCCGCCGATGTTCAGGGACATGGAGCGCTGCAGCAGGCTGGAGAAGATCTCCACTTGGTCAGAGCTGCAGTACTTGGCGATCTCAAA IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII AS:i:0 XN:i:0 XM:i:0 XO:i:0 XG:i:0 NM:i:0 MD:Z:16A83 YT:Z:UU NH:i:1 Zs:Z:16|S|rs2629364
  7. 4 16 22:20000001-21000000 398247 255 90M200N10M * 0 0 CAGGGACATGGAGCGCTGCAGCAGGCTGGAGAAGATCTCCACTTGGTCAGAGCTGCAGTACTTGGCGATCTCAAACCGCTGCACCAGGAAGTCGATCCAG IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII AS:i:0 XN:i:0 XM:i:0 XO:i:0 XG:i:0 NM:i:0 MD:Z:100 YT:Z:UU XS:A:- NH:i:1
  8. 5 16 22:20000001-21000000 398194 255 100M * 0 0 GGCCCGATGGCCGCCACGTGCCGGTTCATGCTCCCCTTGGCCCCGCCGATGTTCAGGGACATGGAGCGCTGCAGCAGGCTGGAGAAGATCTCCACTTGGT IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII AS:i:0 XN:i:0 XM:i:0 XO:i:0 XG:i:0 NM:i:0 MD:Z:17A26A55 YT:Z:UU NH:i:1 Zs:Z:17|S|rs576159895,26|S|rs2629364
  9. 6 0 22:20000001-21000000 398069 255 100M * 0 0 CAGGAGCAGCTCACTGAAATGTGTTCCCCGTCTACAGAAGTACCGTGATACACAGACGCCCCATGACACACTGTACACACCAGGGGCCCTGTGCTCCCCA IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII AS:i:0 XN:i:0 XM:i:0 XO:i:0 XG:i:0 NM:i:0 MD:Z:100 YT:Z:UU NH:i:1
  10. 7 0 22:20000001-21000000 397896 255 100M * 0 0 GTGGAGTAGATCTTCTCGCGAAGCACATTGCAGATGGTTGCATTTGGAACCACATCGGCATGCAGGAGGGACAGCCCCAGGGTCAGCAGCCTGTGAGGGA IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII AS:i:0 XN:i:0 XM:i:0 XO:i:0 XG:i:0 NM:i:0 MD:Z:31G68 YT:Z:UU NH:i:1 Zs:Z:31|S|rs562662261
  11. 8 0 22:20000001-21000000 398150 255 100M * 0 0 AGGGGCCCTGTGCTCCCCAGGAAGAGGGCCCTCACTTGAAGCGGGGCCCGATGGCCGCCACGTGCCGGTTCATGCTCCCCTTGGCCCCGCCGATGTTCAG IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII AS:i:0 XN:i:0 XM:i:0 XO:i:0 XG:i:0 NM:i:0 MD:Z:61A26A11 YT:Z:UU NH:i:1 Zs:Z:61|S|rs576159895,26|S|rs2629364
  12. 9 16 22:20000001-21000000 398329 255 8M200N92M * 0 0 ACCAGGAAGTCGATCCAGATGTAGTGGGGGGTCACTTCGGGGGGACAGGGTTTGGGTTGACTTGCTTCCGAGGCAGCCAGGGGGTCTGCTTCCTTTATCT IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII AS:i:0 XN:i:0 XM:i:0 XO:i:0 XG:i:0 NM:i:0 MD:Z:100 YT:Z:UU XS:A:- NH:i:1
  13. 10 16 22:20000001-21000000 398184 255 100M * 0 0 CTTGAAGCGGGGCCCGATGGCCGCCACGTGCCGGTTCATGCTCCCCTTGGCCCCGCCGATGTTCAGGGACATGGAGCGCTGCAGCAGGCTGGAGAAGATC IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII AS:i:0 XN:i:0 XM:i:0 XO:i:0 XG:i:0 NM:i:0 MD:Z:27A26A45 YT:Z:UU NH:i:1 Zs:Z:27|S|rs576159895,26|S|rs2629364

前几行(以开头@)是SAM标头行,其余几行是SAM对齐方式,每次读取或配对时一行。有关如何解释SAM文件格式的详细信息,请参见HISAT2手册中有关SAM输出SAM规范的部分

配对端示例

要对齐HISAT2随附的配对末端读段,请保留在同一目录中并运行:

  1. $HISAT2_HOME/hisat2 -f -x $HISAT2_HOME/example/index/22_20-21M_snp -1 $HISAT2_HOME/example/reads/reads_1.fa -2 $HISAT2_HOME/example/reads/reads_2.fa -S eg2.sam

这会将一组成对的末端读段与参考基因组对齐,并将结果写入文件eg2.sam

SAMtools是用于处理和分析SAM和BAM对齐文件的工具的集合。BCFtools是用于调用变体以及处理VCF和BCF文件的工具的集合,通常与SAMtools一起分发。一起使用这些工具可以使您从SAM格式的比对转到VCF格式的变体调用。该示例假设samtoolsbcftools已安装,并且含有这些二进制文件的目录是在你的PATH环境变量)。

运行双端示例:

  1. $HISAT2_HOME/hisat -f -x $HISAT2_HOME/example/index/22_20-21M_snp -1 $HISAT2_HOME/example/reads/reads_1.fa -2 $HISAT2_HOME/example/reads/reads_2.fa -S eg2.sam

使用samtools view的SAM文件转换成BAM文件。BAM是与SAM文本格式相对应的二进制格式。跑:

  1. samtools view -bS eg2.sam > eg2.bam

使用samtools sort的BAM文件转换为有序BAM文件。以下命令需要samtools 1.2或更高版本。

  1. samtools sort eg2.bam -o eg2.sorted.bam

现在,我们有一个名为的BAM排序文件eg2.sorted.bam。排序的BAM是一种有用的格式,因为对齐方式(a)进行了压缩,这便于长期存储,而(b)进行了排序,这对变量发现很方便。要生成VCF格式的变体调用,请运行:

  1. samtools mpileup -uf $HISAT2_HOME/example/reference/22_20-21M.fa eg2.sorted.bam | bcftools view -bvcg - > eg2.raw.bcf

然后查看变体,运行:

  1. bcftools view eg2.raw.bcf

有关此过程的更多详细信息和变型,请参阅官方SAMtools指南,《使用SAMtools / BCFtools调用SNP / INDEL》