Bismark

描述

以下是用于控制Bismark亚硫酸氢盐映射器和甲基化调用器的命令行选项及参数的简要说明。Bismark接受FastA或FastQ文件,并将读取序列与指定的亚硫酸氢盐基因组进行比对。序列读取会被转换为亚硫酸氢盐转换的正向链版本(C→T转换)或亚硫酸氢盐处理的反向链版本(正向链的G→A转换)。这些读取序列随后会分别与参考基因组的亚硫酸氢盐处理正向链索引(C→T转换)和亚硫酸氢盐处理反向链索引(正向链的G→A转换,通过此操作可使比对结果产生相同位置)进行比对。这4个Bowtie 2或HISAT2实例将并行运行。随后,序列文件会被再次逐序列读取,以从基因组中提取原始序列,并确定是否存在受保护的C碱基。Bismark的默认输出格式为BAM/SAM格式,下文将详细说明。

用法

bismark [选项] <基因组文件夹> {
            -1 <配对文件1> -2 <配对文件2> | <单端文件>}

参数

<基因组文件夹>
包含未修饰参考基因组的文件夹路径,以及由Bismark_Genome_Preparation脚本创建的子文件夹(/Bisulfite_Genome/CT_conversion//Bisulfite_Genome/GA_conversion/)。Bismark要求该文件夹中包含一个或多个FastA文件(文件扩展名:.fa.fa.gz.fasta.fasta.gz)。路径可以是相对路径或绝对路径,也可以通过--genome_folder /path/to/genome/folder/设置。

-1
包含#1配对文件的逗号分隔列表(文件名通常包含“_1”),例如flyA_1.fq,flyB_1.fq。此选项指定的序列必须与<mates2>中指定的文件逐文件、逐读取对应。读取序列可以是不同长度的混合。Bismark将为每对配对输入文件生成一个映射结果和一个报告文件。

-2
包含#2配对文件的逗号分隔列表(文件名通常包含“_2”),例如flyA_2.fq,flyB_2.fq。此选项指定的序列必须与<mates1>中指定的文件逐文件、逐读取对应。读取序列可以是不同长度的混合。


包含待比对读取序列的逗号或空格分隔文件列表(例如lane1.fq,lane2.fq lane3.fq)。读取序列可以是不同长度的混合。Bismark将为每个输入文件生成一个映射结果和一个报告文件。请注意,必须结合--basename选项提供文件列表,否则输出文件会不断覆盖!

选项

输入选项

–se/–single_end <列表>
显式设置单端映射模式,并将文件名列表作为<列表>提供。文件名可以用逗号(,)或冒号(:)分隔。

-q/–fastq
指定输入查询文件(由<mate1><mate2><singles>指定)为FASTQ文件(通常扩展名为.fq.fastq),这是默认设置。另请参见--solexa-quals

-f/–fasta
指定输入查询文件(由<mate1><mate2><singles>指定)为FASTA文件(通常扩展名为.fa.mfa.fna等)。所有质量值假定为Phred量表中的40。FASTA文件要求读取名称和序列在同一行(不跨越多行)。

-s/–skip
跳过(即不对齐)输入中的前<int>条读取序列或配对读取。

-u/–upto
仅对齐输入中的前<int>条读取序列或配对读取。默认:无限制。

–phred33-quals
FASTQ质量值为ASCII字符,等于Phred质量值加33。默认:开启。

–phred64-quals
FASTQ质量值为ASCII字符,等于Phred质量值加64。默认:关闭。

–path_to_bowtie2
系统中Bowtie 2安装文件夹的完整路径(非bowtie2可执行文件本身)。若未指定,假设Bowtie 2在PATH中。

–path_to_hisat2
系统中HISAT2安装文件夹的完整路径(非hisat2可执行文件本身)。若未指定,假设HISAT2在PATH中。

–path_to_minimap2
系统中minimap2安装文件夹的完整路径(非minimap2可执行文件本身)。若未指定,假设minimap2在PATH中。

比对选项

-N
设置多种子比对过程中种子比对允许的错配数,可设为0或1。数值越高,比对速度越慢(通常慢很多),但灵敏度更高。默认:0。此选项仅适用于Bowtie 2(Bowtie 1请使用-n)。

-L
设置多种子比对过程中待比对的种子子串长度。值越小,比对速度越慢但灵敏度更高。默认使用Bowtie 2的--sensitive预设值,将-L设为20,最大值为32。种子长度会显著影响比对速度,L越大,比对速度越快。此选项仅适用于Bowtie 2(Bowtie 1请使用-l)。

–ignore-quals
计算错配罚分时,始终将错配位置的质量值视为最高可能值,忽略实际值。即输入被视为所有质量值均较高。当输入未指定质量值时(如-f模式),这也是默认行为。此选项不可变,默认开启。

-I/–minins
有效配对末端比对的最小插入大小。例如,若指定-I 60,且配对末端比对包含两个20 bp的比对(方向正确,中间有20 bp的间隙),则该比对有效(前提是满足-X)。19 bp的间隙在这种情况下无效。默认:0。

-X/–maxins
有效配对末端比对的最大插入大小。例如,若指定-X 100,且配对末端比对包含两个20 bp的比对(方向正确,中间有60 bp的间隙),则该比对有效(前提是满足-I)。61 bp的间隙在这种情况下无效。默认:500。

–parallel (也可使用--multicore <int>
设置并发运行的Bismark并行实例数。这会在早期阶段分叉Bismark比对步骤,使每个单独的Bismark实例仅处理每n个序列(n由--parallel设置)。所有进程完成后,各个BAM文件、映射报告、未映射或模糊FastQ文件将合并为单个文件,与常规单实例运行Bismark生成的文件相同。
若系统资源充足,此选项可加快比对速度(测试显示,--parallel 8时速度接近线性提升)。但请注意,典型的Bismark运行已会使用多个核心(Bismark自身、Bowtie2/HISAT2的2或4个线程、Samtools、gzip等),并根据选择的比对器和基因组消耗~10-16GB内存。
警告:Bismark并行模式(BP?)消耗大量资源!每个--parallel值会导致计算和内存需求线性增加。例如,对GRCm38小鼠基因组使用--parallel 4可能需要20个核心,消耗40GB内存,但同时将比对时间缩短至~25-30%。请注意!

–local
在此模式下,不要求整个读取序列从一端到另一端完全对齐,而是允许从末端省略某些字符(“软剪切”)以获得最大比对分数。对于Bowtie 2,此模式使用匹配奖励--ma(默认:2),最佳比对分数等于匹配奖励乘以读取长度。此模式与端到端比对互斥。对于HISAT2,目前尚不完全清楚最佳比对分数的计算方式。默认:关闭。

输出选项

–non_directional
测序文库以非链特异性方式构建时,将报告对所有四个亚硫酸氢盐链的比对。默认:关闭。
(当前Illumina的BS-Seq协议是链特异性的,此时原始链的互补链仅为理论存在,实际不应存在。指定链特异性比对(默认)将仅并行运行两个比对线程,分别针对原始顶链(OT)或底链(OB),并报告这些比对。这是链特异性文库的推荐选项。)

–pbat
此选项用于PBAT-Seq文库(亚硫酸氢盐后适配器标记;Kobayashi等人,PLoS Genetics,2012)。这本质上与“定向”模式下的比对完全相反,因为它将仅启动两个比对线程,针对CTOT和CTOB链,而非常规的OT和OB链。仅当确定文库是按照PBAT协议构建时(若不清楚PBAT-Seq是什么,则不应指定此选项),才使用此选项。--pbat选项仅适用于FastQ文件(Bowtie和Bowtie 2模式均适用),且仅使用未压缩的临时文件。

–sam-no-hd
抑制SAM标题行(以@开头)。当大型输入文件被拆分为多个较小文件并发运行,且需要合并输出文件时,此选项可能有用。

–rg_tag
向生成的SAM/BAM文件写入读取组(Read Group)标签。这将向SAM标题添加以下行:@RG PL: ILLUMINA ID:SAMPLE SM:SAMPLE;若要设置ID和SM,请参见--rg_id--rg_sample。此外,每个读取会接收RG:Z:RG-ID标签。默认:关闭。

–rg_id
设置@RG标题行中的ID字段,默认值为“SAMPLE”。

–rg_sample
设置@RG标题行中的SM字段;必须同时设置--rg_id,否则无法设置。默认值为“SAMPLE”。

–strandID
对于非定向配对末端文库,链标识由R1和R2的报告顺序以及读取和基因组转换状态编码。如果第三方工具重新排列此顺序,可能难以确定比对链标识。此选项添加可选标签,例如YS:Z:OTYS:Z:CTOB,以保留此信息。更多详细信息请参见此线程:https://github.com/FelixKrueger/Bismark/issues/455。默认:关闭。

-un/–unmapped
将所有无法比对的读取写入输出目录中的文件。写入的读取将保持输入原样,不进行Bowtie或Bismark内部可能进行的质量值转换。配对末端读取将写入两个并行文件,文件名中插入“_1”和“_2”,即_unmapped_reads_1.txtunmapped_reads_2.txt。具有多个相同最低错配数的有效比对(模糊映射)的读取也会写入_unmapped_reads.txt,除非同时指定--ambiguous选项。

–ambiguous
将所有产生多个具有相同最低错配数的有效比对,或无法唯一比对的读取写入输出目录中的文件。写入的读取将保持输入原样,不进行Bowtie或Bismark内部可能进行的质量值转换。配对末端读取将写入两个并行文件,文件名中插入“_1”和“_2”,即_ambiguous_reads_1.txt_ambiguous_reads_2.txt。这些读取不会写入--un指定的文件。

-o/–output_dir

将所有输出文件写入此目录。默认情况下,输出文件将写入与输入文件相同的文件夹。若指定文件夹不存在,Bismark将尝试先创建它。输出文件夹路径可以是相对路径或绝对路径。

–temp_dir

将临时文件写入此目录,而非与输入文件相同的目录。若指定文件夹不存在,Bismark将尝试先创建它。临时文件夹路径可以是相对路径或绝对路径。

–non_bs_mm
可选输出额外列,指定读取的非亚硫酸氢盐错配数。此选项仅在端到端模式下可用,值仅为实际非亚硫酸氢盐错配数,忽略潜在的插入或缺失。
单端读取和配对末端读取的#1读取格式为XA:Z:错配数,#2读取格式为XB:Z:错配数

–gzip
临时亚硫酸氢盐转换文件将以GZIP压缩形式写入,以节省磁盘空间。此选项适用于大多数比对模式,但不适用于配对末端FastA文件。此选项可能比写入未压缩文件稍慢,但需进一步测试。

–sam
输出将以SAM格式而非默认的BAM格式写入。请注意,这需要~10倍的磁盘空间。--sam--parallel选项不兼容。

–bam
Bismark将尝试使用--samtools_path指定的Samtools路径,若未指定,则尝试在PATH中查找Samtools。若未找到Samtools安装,SAM输出将改用GZIP压缩(生成.sam.gz输出文件)。默认:开启。

–cram
将输出写入CRAM文件而非BAM文件,这需要使用Samtools 1.2或更高版本。

–cram_ref <ref_file>
CRAM输出需要指定单个FastA文件作为参考基因组。若未显式提供此单个FastA参考文件,将从Bismark运行中使用的基因组.fa序列重新生成,并写入输出目录中的Bismark_genome_CRAM_reference.mfa文件。

–samtools_path
Samtools安装路径,例如/home/user/samtools/。若Samtools已在PATH中,则无需显式指定。

–prefix
为输出文件名添加前缀<prefix>,结尾的点将替换为单个点。例如,对file.fq使用--prefix test,将生成输出文件test.file.fq_bismark.sam等。

-B/–basename
将所有输出写入以此外部文件名开头的文件。例如,--basename foo将生成文件foo.bamfoo_SE_report.txt(或其配对末端等效文件)。此选项优先于--prefix。请注意,不应将此选项与连续处理的文件列表结合使用,因为所有输出文件会不断覆盖彼此。

–old_flag
仅在配对末端SAM模式下,使用Bismark v0.8.2及之前版本的FLAG值。此外,此选项会将“/1”和“/2”附加到输入文件中读取1和读取2的读取ID。由于附加的读取ID和自定义FLAG值可能导致Picard等下游工具出现问题,自0.8.3版本起实施了新的默认设置。

情况 默认(Default) old_flag模式
OT: 读取1/读取2 99 / 147 67 / 131
OB: 读取1/读取2 83 / 163 115 / 179
CTOT: 读取1/读取2 147 / 99 67 / 131
CTOB: 读取1/读取2 163 / 83 115 / 179

–ambig_bam
对于具有多个比对的读取,随机比对将写入以.ambiguous.bam结尾的特殊文件。这些比对采用Bowtie2格式,不包含Bismark特定条目(如甲基化调用等)。这些模糊BAM文件旨在作为变异调用器的覆盖估计器。

–nucleotide_coverage
计算分析的BAM文件中覆盖位置的单核苷酸和二核苷酸序列组成,并在比对完成后通过调用bam2nuc与基因组平均组成进行比较。由于此计算可能需要一段时间,bam2nuc会尝试将基因组序列组成写入参考基因组文件夹中的genomic_nucleotide_frequencies.txt文件,以便下次重复使用,避免重新计算。如果在Bismark报告中找到nucleotide_stats.txt文件,它将被自动检测并用于Bismark HTML报告。此选项仅适用于BAM或CRAM文件。

–icpc
此选项将在读取ID中遇到的第一个空格或制表符处截断读取ID,这些字符有时用于向FastQ条目中添加注释(默认行为是将其替换为下划线“_”)。该选项故意采用隐晦命名(“I couldn’t possibly comment”),因为它仅在配对末端的R1和R2以单端模式分别映射、然后重新配对时才相关(SAM格式要求R1和R2具有相同的读取ID)。配对末端映射已生成具有相同读取ID的BAM文件。更多信息请参见:https://github.com/FelixKrueger/Bismark/issues/236。默认:关闭。

其他选项

-h/–help
显示此帮助文件。

-v/–version
显示版本信息。

Bowtie 2特定选项

–bowtie2
默认:开启。使用Bowtie 2作为默认比对器。Bismark限制Bowtie 2仅执行端到端比对,即搜索涉及所有读取字符的比对(也称为未修剪或未剪切比对)。Bismark假定原始序列数据已进行适当的适配器和/或质量修剪。支持小(.bt2)和大(.bt2l)Bowtie 2索引。若要使用HISAT2而非Bowtie 2,请参见--hisat2选项。

–no_dovetail
配对末端可能出现“重叠”情况,即配对末端看似相互“延伸”,如以下示例:

Mate 1:                 GTCAGCTACGATATTGTTTGGGGTGACACATTACGC  
Mate 2:            TATGAGTCAGCTACGATATTGTTTGGGGTGACACAT  
参考序列: GCAGATTATATGAGTCAGCTACGATATTGTTTGGGGTGACACATTACGCGTCTTTGAC  

默认情况下,重叠被视为与一致比对不一致,但Bismark默认使用--dovetail调用Bowtie 2,使其将重叠比对视为一致。当读取在映射前从5’端剪切时(如因质量或偏差问题),此选项变得相关。
指定--no_dovetail可关闭配对末端文库的此行为。默认:关闭。

HISAT2特定选项

–hisat2
使用HISAT2代替Bowtie 2。Bismark默认以端到端模式使用HISAT2,即使用--no-softclipping选项搜索涉及所有读取字符的比对(也称为未修剪或未剪切比对)。Bismark假定原始序列数据已进行适当的适配器和/或质量修剪。从v0.22.0版本起,Bismark还支持HISAT2的局部比对模式(请参见--local)。支持小(.ht2)和大(.ht2l)HISAT2索引。默认:关闭。

–no-spliced-alignment
禁用剪接比对。默认:执行剪接比对。

–known-splicesite-infile

提供已知剪接位点列表。

配对末端选项

–no-mixed
此选项禁用以下行为:当无法找到一致或不一致的配对比对时,尝试为单个配对末端查找比对。此选项默认开启。

–no-discordant
通常,若无法找到任何一致比对,Bowtie 2或HISAT2会查找不一致比对。不一致比对是指两个配对末端均唯一比对,但不满足配对末端约束(--fr/--rf/--ff-I-X)。此选项禁用此行为,默认开启。

Bowtie 2 优化选项

-D
在Bowtie 2继续之前,允许最多<int>次连续的种子扩展尝试“失败”,使用迄今为止找到的比对。若种子扩展未产生新的最佳或次佳比对,则视为“失败”。默认:15。

-R
<int>是Bowtie 2对具有重复种子的读取进行“重新播种”的最大次数。“重新播种”时,Bowtie 2仅在不同偏移量处选择新的读取集(相同长度,允许相同错配数)并搜索更多比对。若种子命中总数除以至少比对一次的种子数大于300,则读取被视为具有重复种子。默认:2。

Bowtie 2/HISAT2 并行化选项

-p NTHREADS
启动NTHREADS个并行搜索线程(默认:1)。线程将在不同处理器/核心上运行,并在解析读取和输出比对时同步。搜索比对高度并行,加速接近线性。增加-p会增加Bowtie 2的内存占用。例如,比对人类基因组索引时,将-p从1增加到8会增加数百兆字节的内存占用。此选项仅在Bowtie 2与pthreads库链接时可用(即构建时未指定BOWTIE_PTHREADS=0)。此外,此选项将自动使用--reorder选项,确保输出SAM记录的顺序与原始输入文件中的读取顺序一致,即使-p大于1(Bismark要求Bowtie 2输出为此顺序)。指定--reorder并将-p设置为大于1会使Bowtie 2运行稍慢,并使用稍多内存。若-p设置为1,则无影响,因为此时输出顺序自然与输入顺序一致。

评分选项

–score_min
设置控制比对被视为“有效”(即足够好以报告)所需的最小比对分数的函数,该函数是读取长度的函数。

在端到端模式(默认)和仅HISAT2的局部模式下,--score_min设置为线性函数,格式为<L,value,value>。例如,指定L,0,-0.2将最小分数函数f设置为f(x) = 0 + (-0.2) * x,其中x为读取长度。端到端(全局)比对的默认值为:L,0,-0.2
在Bowtie 2的局部模式下,函数为对数函数,格式为<G,value,value>。例如,指定G,20,8将最小分数函数f设置为f(x) = 20 + 8 * ln(x),其中x为读取长度。Bowtie 2模式下局部比对的默认值为:G,20,8
另请参见:http://bowtie-bio.sourceforge.net/bowtie2 上的函数选项设置。

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

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

minimap2特定选项

–minimap2/–mm2
使用minimap2作为底层读取比对器,此模式非常新,目前为实验性。预计近期可能会有变化。默认映射模式为--nanopore(预设-x map-ont,适用于Nanopore读取)。目前不计划支持PacBio读取。内部使用选项-a --MD运行minimap2。更多信息请参见:https://lh3.github.io/minimap2/minimap2.html。默认:关闭。

–mm2_nanopore
使用minimap2预设用于牛津纳米孔(ONT)与参考映射(-x map-ont),仅与--minimap2结合使用。当--minimap2未指定其他限定符时为默认模式。

–mm2_pacbio
使用minimap2预设用于PacBio与参考映射(-x map-pb),仅与--minimap2结合使用。默认:关闭。

–mm2_short_reads
此选项调用minimap2预设设置-x sr,用于具有准确读取的基因组短读取映射(可能为Illumina 150bp+?)。对于剪接短读取,请改用--hisat2
sr预设模式(无剪接的短单端读取)使用以下选项:

-k21 -w11 --sr --frag=yes -A2 -B8 -O12,32 -E2,1 -r50 -p.5 -N20 -f1000,5000 -n2 -m20 -s40 -g200 -2K50m --heap-sort=yes --secondary=no

默认:关闭。

–mm2_maximum_length
非常长序列的最大长度截断值(当前允许100-100,000 bp),默认:10000。

Bismark BAM/SAM输出(默认)

(1) QNAME(序列ID)
(2) FLAG(此标志尝试考虑亚硫酸氢盐读取的来源链,这与普通DNA比对标志不同!)
(3) RNAME(染色体)
(4) POS(起始位置)
(5) MAPQ(对Bowtie始终为255)
(6) CIGAR
(7) RNEXT
(8) PNEXT
(9) TLEN
(10) SEQ
(11) QUAL(Phred33量表)
(12) NM-tag(与参考的编辑距离)
(13) MD-tag(与参考的逐碱基错配,处理插入/缺失)
(14) XM-tag(甲基化调用字符串)
(15) XR-tag(比对的读取转换状态)
(16) XG-tag(比对的基因组转换状态)
(17) XA/XB-tag(非亚硫酸氢盐错配,可选!)

每个配对末端比对的读取均以上述格式单独一行写出。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容