Samtools手册中文版

软件手册:Samtools 手册翻译
Samtools 是一个用于处理和分析 SAM(Sequence Alignment/Map)和 BAM(Binary Alignment/Map)格式文件的工具集。它提供了多种命令用于序列比对、格式转换、索引创建和统计分析等。

接下来我们翻译这一部分的命令说明:

常用 samtools 命令列表

好的,我们将这39条命令拆分为三部分进行说明,并为每个部分提供举例。

1. 添加或替换读取组信息
samtools addreplacerg -r 'ID:fish' -r 'LB:1334' -r 'SM:alpha' -o output.bam input.bam

解释:将读取组信息(ID、Library、Sample等)添加到 BAM 文件中。
示例:如果你有一个 BAM 文件 input.bam,想为其添加样本信息 alpha,并将结果保存为 output.bam,可以使用此命令。

2. 裁剪扩增子
samtools ampliconclip -b bed.file input.bam

解释:基于 BED 文件中的位置信息,对 BAM 文件中的扩增子进行裁剪。
示例:将 input.bam 中的序列根据 bed.file 中定义的区域进行裁剪,生成更新后的 BAM 文件。

3. 生成扩增子统计数据
samtools ampliconstats primers.bed in.bam

解释:根据引物 BED 文件,生成扩增子统计信息。
示例:通过 primers.bed 中定义的引物区域,统计 in.bam 文件中的数据,常用于分析扩增子测序数据。

4. 计算基因组覆盖范围
samtools bedcov aln.sorted.bam

解释:计算 BAM 文件中的覆盖范围。
示例:统计 aln.sorted.bam 中每个区域的读取覆盖数,用于了解基因组覆盖情况。

5. 校正 MD 标签
samtools calmd in.sorted.bam ref.fasta

解释:基于参考基因组文件,更新或校正 BAM 文件中的 MD 标签。
示例:使用 ref.fasta 作为参考,修复或校正 in.sorted.bam 文件中的 MD 标签。

6. 连接 BAM 文件
samtools cat out.bam in1.bam in2.bam in3.bam

解释:将多个 BAM 文件合并为一个。
示例:将 in1.bamin2.bamin3.bam 合并为一个新的 BAM 文件 out.bam

7. 按名称整理 BAM 文件
samtools collate -o aln.name_collated.bam aln.sorted.bam

解释:按读取名称整理 BAM 文件中的读取序列。
示例:将 aln.sorted.bam 按读取名称进行整理,输出为 aln.name_collated.bam

8. 生成共识序列
samtools consensus -o out.fasta in.bam

解释:从 BAM 文件生成共识序列。
示例:从 in.bam 文件中提取共识序列,并将其保存为 out.fasta

9. 计算覆盖率
samtools coverage aln.sorted.bam

解释:计算 BAM 文件的覆盖率。
示例:统计 aln.sorted.bam 中的每个基因组区域的覆盖率。

10. 计算 CRAM 文件大小
samtools cram-size -v -o out.size in.cram

解释:计算 CRAM 文件大小的摘要信息。
示例:生成 in.cram 文件的大小摘要,并输出为 out.size

11. 去除插入位点的 BAM 文件
samtools depad input.bam

解释:去除 BAM 文件中的插入位点,生成去插入位点的 BAM 文件。
示例:对 input.bam 进行处理,去除插入的位点信息。

12. 计算读取深度
samtools depth aln.sorted.bam

解释:计算 BAM 文件中每个位置的读取深度。
示例:统计 aln.sorted.bam 文件中每个位点的深度,常用于覆盖率分析。

13. 生成字典文件
samtools dict -a GRCh38 -s "Homo sapiens" ref.fasta

解释:基于参考基因组文件生成序列字典文件。
示例:生成 ref.fasta 的字典文件,包含注释信息。

14. 生成参考基因组索引
samtools faidx ref.fasta

解释:对参考基因组文件进行索引,生成一个 .fai 文件,方便后续快速查找。
示例:为 ref.fasta 生成索引文件 ref.fasta.fai,便于快速检索序列。

15. 将 BAM 转换为 FASTA
samtools fasta input.bam > output.fasta

解释:从 BAM 文件中提取序列,并将其转换为 FASTA 格式。
示例:将 input.bam 中的序列提取并保存为 output.fasta 文件。

16. 将 BAM 转换为 FASTQ
samtools fastq input.bam > output.fastq

解释:从 BAM 文件中提取序列,并将其转换为 FASTQ 格式。
示例:将 input.bam 文件中的序列提取并保存为 output.fastq 文件。

17. 修复配对信息
samtools fixmate in.namesorted.sam out.bam

解释:修复 BAM 文件中成对读取的配对信息。
示例:对按名称排序的 SAM 文件 in.namesorted.sam 进行处理,修复配对信息并输出为 BAM 文件 out.bam

18. 解释 FLAG 字段
samtools flags PAIRED,UNMAP,MUNMAP

解释:解释 BAM 文件中的 FLAG 字段,将其转换为可读形式或数值形式。
示例:解释 PAIRED(成对读取)、UNMAP(未比对的读取)和 MUNMAP(下一个片段未比对)这些 FLAG 的含义。

19. 统计 FLAG 信息
samtools flagstat aln.sorted.bam

解释:生成 BAM 文件中的 FLAG 字段的统计信息。
示例:统计 aln.sorted.bam 文件中每个 FLAG 的数量,如成对读取、未比对读取等。

20. 生成 FASTQ 索引
samtools fqidx ref.fastq

解释:为 FASTQ 文件生成索引。
示例:为 ref.fastq 文件生成一个 .fai 索引文件,以便快速检索序列。

21. 打印 BAM 文件头
samtools head in.bam

解释:打印 BAM 文件的头部信息,通常包含文件的元数据信息。
示例:打印 in.bam 文件的头部信息,用于检查文件格式或验证元数据。

22. 获取 BAM 文件索引信息
samtools idxstats aln.sorted.bam

解释:从 BAM 文件的索引中获取统计信息。
示例:打印 aln.sorted.bam 文件的索引统计信息,如参考序列的长度、映射读取的数量等。

23. 导入 FASTQ 文件
samtools import input.fastq > output.bam

解释:将 FASTQ 文件转换为未比对的 BAM 文件。
示例:将 input.fastq 文件转换为 BAM 格式并保存为 output.bam

24. 为 BAM 文件生成索引
samtools index aln.sorted.bam

解释:为排序后的 BAM 文件生成索引,便于快速检索特定区域的读取。
示例:为 aln.sorted.bam 生成 .bai 索引文件,允许通过参考序列位置快速查找读取。

25. 标记重复读取
samtools markdup in.algnsorted.bam out.bam

解释:在 BAM 文件中标记 PCR 或光学重复的读取。
示例:将 in.algnsorted.bam 文件中的重复读取标记,并将结果输出为 out.bam

26. 合并 BAM 文件
samtools merge out.bam in1.bam in2.bam in3.bam

解释:将多个 BAM 文件合并为一个文件。
示例:将 in1.bamin2.bamin3.bam 合并为一个 out.bam 文件,通常用于将多个样本数据合并。

27. 生成 pileup 文件
samtools mpileup -f ref.fasta -r chr3:1,000-2,000 in1.bam in2.bam

解释:生成 pileup 格式的输出文件,显示指定区域内的每个碱基的覆盖情况。
示例:在 in1.bamin2.bam 文件中生成参考序列 ref.fasta 的第3号染色体1,000到2,000碱基的 pileup 信息。

28. 处理相位信息
samtools phase input.bam

解释:处理 BAM 文件中的相位信息,将成对读取的相位信息区分开。
示例:为 input.bam 文件中的成对读取处理相位信息,帮助确定各个片段的父母来源。

29. 快速检查文件完整性
samtools quickcheck in1.bam in2.cram

解释:快速检查 BAM 或 CRAM 文件是否完整,是否包含有效的头部和 EOF。
示例:快速检查 in1.bamin2.cram 是否包含有效的头部和结尾标记,以确认文件完整性。

30. 生成参考文件
samtools reference -o ref.fa in.cram

解释:从 CRAM 文件中提取参考序列信息,生成一个参考基因组文件。
示例:从 in.cram 中提取参考序列,输出为 ref.fa

31. 替换 BAM 文件头
samtools reheader in.header.sam in.bam > out.bam

解释:用新的头部信息替换 BAM 文件的原始头部信息。
示例:用 in.header.sam 中的头部信息替换 in.bam 的头部,并将结果保存为 out.bam

32. 重置 BAM 文件
samtools reset -o /tmp/reset.bam processed.bam

解释:重置 BAM 文件,移除比对信息和标志,生成未比对的 BAM 文件。
示例:重置 processed.bam 中的比对信息,并将结果保存到 /tmp/reset.bam

33. 列出样本信息
samtools samples input.bam

解释:列出 BAM 文件中的样本信息。
示例:显示 input.bam 文件中的所有样本名称和相关信息。

34. 排序 BAM 文件
samtools sort -T /tmp/aln.sorted -o aln.sorted.bam aln.bam

解释:对 BAM 文件按照左端坐标进行排序,并输出排序后的 BAM 文件。
示例:将 aln.bam 按照坐标排序,结果保存为 aln.sorted.bam,临时文件保存路径为 /tmp/aln.sorted

35. 拆分 BAM 文件
samtools split merged.bam

解释:根据读取组(Read Group)信息将 BAM 文件拆分成多个文件。
示例:将 merged.bam 文件按读取组信息拆分为多个 BAM 文件。

36. 统计 BAM 文件
samtools stats aln.sorted.bam

解释:生成 BAM 文件的统计数据,结果包括映射质量、读取长度分布等。
示例:生成 aln.sorted.bam 的统计信息,用于分析读取质量、覆盖率等。

37. 剪切目标区域
samtools targetcut input.bam

解释:基于读取的覆盖连续性剪切 BAM 文件中的目标区域。
示例:对 input.bam 进行剪切,生成剪切后的 BAM 文件,适用于特定的克隆或扩增子测序数据。

38. 查看比对信息
samtools tview aln.sorted.bam ref.fasta

解释:使用基于 ncurses 的文本查看器,显示 BAM 文件中的比对信息。
示例:在终端中查看 aln.sorted.bam 中比对到参考基因组 ref.fasta 的结果,交互式查看对齐情况。

39. 转换 SAM/BAM/CRAM 格式
samtools view -bt ref_list.txt -o aln.bam aln.sam.gz

解释:将 SAM、BAM 或 CRAM 文件转换为另一种格式,如 BAM 转 SAM,SAM 转 BAM。
示例:将 aln.sam.gz 转换为 BAM 格式 aln.bam,使用 ref_list.txt 文件作为参考。
好的,接下来是这段 DESCRIPTION(描述)COMMANDS(命令) 部分的翻译。


DESCRIPTION(描述)

Samtools 是一组用于操作 SAM(序列比对/映射)、BAM 和 CRAM 格式文件的工具。它可以在这些格式之间进行转换,还能够对文件进行排序、合并和索引,并且能够快速检索任意区域的读取信息。

Samtools 被设计为流式处理工具,它将输入文件 - 视为标准输入(stdin),将输出文件 - 视为标准输出(stdout)。因此,多个命令可以通过 Unix 管道(pipes)组合使用。Samtools 始终将警告和错误消息输出到标准错误输出(stderr)。

Samtools 还可以打开远程 FTP 或 HTTP(S) 服务器上的文件(如果文件名以 ftp://http:// 等开头)。Samtools 会在当前工作目录中查找索引文件,若索引文件不存在,则会自动下载索引文件。除非特别要求,Samtools 不会检索整个比对文件。

如果需要索引,Samtools 会寻找附加在文件名上的索引后缀(如 in.bam.bai),如果找不到,它会再次尝试使用没有文件名后缀的文件(如 in.bai)。不过,如果索引位于完全不同的位置或具有不同的名称,则数据文件名和索引文件名可以通过 ##idx## 语法组合在一起。例如,/data/in.bam##idx##/indices/in.bam.bai 可明确指定数据和索引文件的位置。


COMMANDS(命令)

每个命令都有单独的手册页面,可以通过如 man samtools-view 或使用较新的 GNU 手册页工具 man samtools view 来查看。以下是各子命令的简要语法和描述。

常见选项在**GLOBAL COMMAND OPTIONS(全局命令选项)**部分有说明。

view
samtools view [选项] in.sam|in.bam|in.cram [region...]

如果未指定选项或区域,将会输出指定输入文件(SAM、BAM 或 CRAM 格式)中的所有比对数据,并以 SAM 格式输出(默认不含头部)。
要查看 SAM、BAM 或 CRAM 文件的头部信息(header),可以使用 samtools view 命令的-H选项。这个选项只会输出文件的头部部分,而不会输出比对数据。

samtools view -h 6463-1t.bam|head -n 10
@HD	VN:1.0	SO:unsorted
@SQ	SN:1	LN:308452471
@SQ	SN:2	LN:243675191
@SQ	SN:3	LN:238017767
@SQ	SN:4	LN:250330460
@SQ	SN:5	LN:226353449
@SQ	SN:6	LN:181357234
@SQ	SN:7	LN:185808916
@SQ	SN:8	LN:182411202
@SQ	SN:9	LN:163004744
#@HD VN:1.0 SO:unsorted:头部信息,表示文件是 SAM 格式的版本 1.0,且数据未排序。
#@SQ SN:1 LN:308452471:染色体 1 的名称是 "1",长度是 308,452,471 个碱基对。
#@SQ SN:2 LN:243675191:染色体 2 的名称是 "2",长度是 243,675,191 个碱基对。

示例 1:查看所有比对数据
假设你有一个 in.bam 文件,想要查看其中所有的比对数据:

samtools view in.bam

这条命令会将 in.bam 中的所有比对信息以 SAM 格式 输出到终端。

你可以在输入文件名后指定一个或多个空格分隔的区域,以限制输出只包含那些与指定区域重叠的比对。指定区域要求输入文件已按坐标排序并生成索引。
示例 2:指定区域输出比对数据
你可以指定某个区域,比如染色体 1 的 1000 到 2000 碱基区域:

samtools view in.bam chr1:1000-2000

这条命令只会输出位于 chr1 染色体上 1000 到 2000 碱基范围内的比对信息。前提是 in.bam 文件已经按坐标排序并生成了索引文件(通常是 .bai 文件)。

此命令还可以将输出格式从 SAM 转换为 BAM 或 CRAM,因此也可以作为文件格式转换工具。不做演示

tview
samtools tview [-p chr:pos] [-s STR] [-d display] <in.sorted.bam> [ref.fasta]

需要有索引文件
基于 ncurses 库的文本比对查看器。在查看器中,按 ? 可以查看帮助,按 g 可以从某个区域开始查看比对,例如 chr10:10,000,000=10,000,000(在查看同一参考序列时使用)。

quickcheck
samtools quickcheck [选项] in.sam|in.bam|in.cram [ ... ]

#例
samtools quickcheck *.bam || echo "Some files are corrupted or incomplete"

快速检查输入文件是否完整。检查文件开头是否包含有效头部(适用于所有格式),并检查文件末尾是否有完整的文件结束标记(EOF,仅适用于 BAM 格式)。

该命令不会读取文件中间的数据,因为这样会非常耗时,因此该命令无法检测到文件内部的损坏,但它可以用于在执行更复杂的任务之前检查文件是否被截断。

如果任何输入文件没有有效头部或缺少 EOF 块,该命令将以非零退出代码退出。否则,将成功退出(退出代码为 0)。

head
samtools head [选项] in.sam|in.bam|in.cram

打印输入文件的头部信息,且可选地输出文件的前几条比对记录。此命令始终按原样显示文件中的头部信息,且不会添加额外的 @PG 头部。

index
samtools index [-bc] [-m INT] aln.sam.gz|aln.bam|aln.cram [out.index]

为按坐标排序的 SAM、BAM 或 CRAM 文件生成索引,以便快速随机访问。注意,若为 SAM 文件,必须先进行 BGZF 压缩(block gzip file)。

从 Samtools 1.16 版本开始,此命令也可以接受多个比对文件名,并为它们单独生成索引。

该索引在使用 samtools view 和其他类似命令时,通过指定区域参数限制操作区域时是必需的。

如果提供了输出文件名,索引文件将保存为 out.index。否则,对于 CRAM 文件 aln.cram,索引文件将生成为 aln.cram.crai;对于 BAM 或 SAM 文件,索引文件可能为 aln.bam.baialn.bam.csi,具体取决于选择的索引格式。


sort

samtools sort [-l level] [-m maxMem] [-o out.bam] [-O format] [-n] [-t tag] [-T tmpprefix] [-@ threads] [in.sam|in.bam|in.cram]
总结:
默认情况下,samtools sort 会按坐标排序。
-n 选项用于按名称排序。
-o 选项指定输出文件。
-m 控制最大内存使用量。
-@ 选项允许使用多线程。

将比对结果按照最左端坐标进行排序,或者在使用 -n 选项时按读段名称进行排序。如果需要,会自动添加或更新适当的 @HD-SO 排序标签到头部信息中。

排序后的输出默认写入标准输出,或者在使用 -o 选项时写入指定的文件(如 out.bam)。当比对数据不能完全放入内存时(可通过 -m 选项控制内存大小),该命令还会创建临时文件,如 tmpprefix.%d.bam

如果你需要按名称分组而不需要完全按字典顺序排序,可以考虑使用 samtools collate

需要注意的是,如果排序后的文件要用 samtools index 生成索引,必须使用默认的坐标排序,因此 -n-t 选项与 samtools index 不兼容。


collate

samtools collate [options] in.sam|in.bam|in.cram [<prefix>]

collate 命令将读段按照名称分组并打乱顺序,这是一个比完全按名称排序更快的替代方案。collate 确保具有相同名称的读段被分组在一起,但不保证组与组之间的名称顺序。

该命令输出的文件适用于任何需要将同一个模板的所有读段分组在一起的操作。


idxstats

samtools idxstats in.sam|in.bam|in.cram

#$ samtools idxstats 6463-1t_reo_sort_GR.bam
1	308452471	2942955	162522
2	243675191	3234974	124714
3	238017767	1518091	40625
4	250330460	20289517	201084
5	226353449	1965540	48470
6	181357234	8769111	48916
7	185808916	13011480	218949
8	182411202	1634882	24605
9	163004744	2381199	29917
10	152435371	1000139	36766

idxstats 命令用于从输入文件的索引文件中检索并打印统计信息。输入文件应该是 BAM 文件,并且事先已经用 samtools index 命令生成了索引。

如果你运行这个命令用于 SAM 文件、CRAM 文件,或未索引的 BAM 文件,idxstats 仍然可以生成相同的统计摘要,但它会通过遍历整个文件实现,因此速度较慢。

输出为 TAB 分隔,每一行包括以下信息:

  • 参考序列名称
  • 参考序列长度
  • 已比对的读取数
  • 未比对的读取数

输出结果会写到标准输出。


flagstat

samtools flagstat in.sam|in.bam|in.cram
#例子
srun -A 2022099 -p Debug -n 1 -N 1 samtools flagstat 6463-1t_sort_GR.bam
srun: job 1271776 queued and waiting for resources
srun: job 1271776 has been allocated resources
srun -A 2022099 -p Debug -n 1 -N 1 samtools flagstat 6463-1t_sort_GR.bam

# 输出结果:
# 65154635 + 0 in total (QC-passed reads + QC-failed reads)
# 总读取数,其中包括通过和未通过质量控制(QC)的读取数。

# 46718598 + 0 primary
# 主比对读取数,即比对到参考基因组的主要读取数。

# 18436037 + 0 secondary
# 次级比对数,这些读取不是最优比对,而是比对到其他位置的读取。

# 0 + 0 supplementary
# 补充比对数,通常指比对的一部分在其他地方映射的读取片段。

# 0 + 0 duplicates
# 标记为重复的读取数(可能是 PCR 或光学重复)。

# 0 + 0 primary duplicates
# 主比对中的重复读取数。

# 63203357 + 0 mapped (97.01% : N/A)
# 映射到参考基因组的读取数,占总读取数的 97.01%。

# 44767320 + 0 primary mapped (95.82% : N/A)
# 主比对映射的读取数,占总主比对读取数的 95.82%。

# 46718598 + 0 paired in sequencing
# 成对的测序读取数。

# 23359299 + 0 read1
# 第一个读段的读取数。

# 23359299 + 0 read2
# 第二个读段的读取数。

# 42967232 + 0 properly paired (91.97% : N/A)
# 正确配对的成对读取数,占成对测序的 91.97%。

# 43825644 + 0 with itself and mate mapped
# 自身和配对读段均映射到参考序列的读取数。

# 941676 + 0 singletons (2.02% : N/A)
# 仅自身映射的单端读取数,占比 2.02%。

# 69172 + 0 with mate mapped to a different chr
# 配对的另一端映射到不同染色体的读取数。

# 48034 + 0 with mate mapped to a different chr (mapQ>=5)
# 配对的另一端映射到不同染色体且映射质量值大于等于 5 的读取数。

flagstat 命令会完整地遍历输入文件,计算并打印统计信息到标准输出。它主要基于 FLAG 字段 中的位标志来对读取进行分类和统计。

输出包括 13 类的统计数据,每一类的结果都被分为 QC 通过QC 未通过,并以 #PASS + #FAIL 的形式展示,后面附有类别描述。这些统计信息包括:

  • 总的读取数
  • 已比对的读取数
  • 多次比对的读取数
  • 不同 FLAG 标志对应的读取数

flags

samtools flags INT|STR[,...]

#提取bam文件中的列,之后使用samtools flags
samtools view ../6463-1z_reo_sort_GR.bam | awk '{print $2}' > flags.txt

head -n 3 flags.txt 
#133
#89
#99

cat flags.txt | while read flag; do samtools flags $flag; done
#0x85	133	PAIRED,UNMAP,READ2
#0x59	89	PAIRED,MUNMAP,REVERSE,READ1
#0x63	99	PAIRED,PROPER_PAIR,MREVERSE,READ1

flags 命令用于在 数字表示文本表示 之间进行 FLAG 标志的转换。

常见的 FLAG 标志如下:

数值 文本表示 描述
0x1 PAIRED 该片段属于成对的(或多片段)测序技术
0x2 PROPER_PAIR 每个片段都正确比对,符合比对程序的标准
0x4 UNMAP 该片段未比对
0x8 MUNMAP 模板中的下一个片段未比对
0x10 REVERSE 序列是反向互补的
0x20 MREVERSE 模板中下一个片段的序列是反向互补的
0x40 READ1 模板中的第一个片段
0x80 READ2 模板中的最后一个片段
0x100 SECONDARY 次级比对(不用于主比对)
0x200 QCFAIL 不通过质量控制的片段
0x400 DUP PCR 或光学重复片段
0x800 SUPPLEMENTARY 补充比对(多次比对中的额外片段)

这个命令可以用来将 FLAG 的数值转换为对应的文本描述,或者将 FLAG 的文本描述转换为对应的数值。


stats

samtools stats [options] in.sam|in.bam|in.cram [region...]

samtools stats 用于从 BAM 文件中收集统计信息,并以文本格式输出。这些统计信息可以通过 plot-bamstats 命令生成图形化的可视化结果。

示例 1:收集 BAM 文件的统计信息
假设你有一个 BAM 文件 sample.bam,你可以使用以下命令收集其统计信息:

samtools stats sample.bam

这些信息对于评估比对文件的质量非常有帮助。

示例 2:指定基因组区域
如果你只想查看特定区域的统计信息,可以在命令中指定区域:

samtools stats sample.bam chr1:100000-200000

这条命令会只针对 chr1 染色体上 100,000 到 200,000 位置之间的比对数据生成统计结果。

输出结果解析
samtools stats 的输出是一个文本文件,包含了详细的统计信息,比如:

  • Total reads:总读取数。
  • Mapped reads:成功比对到参考基因组的读取数。
  • Insert size:插入片段长度分布。
  • GC content:GC 含量分布。

这些统计信息可以帮助你了解比对的覆盖度、碱基分布、质量评分等。

结合 plot-bamstats 使用
生成的统计信息可以使用 plot-bamstats 命令生成图形化展示:

plot-bamstats stats_out.txt

这将根据 samtools stats 的输出生成各种图表,直观展示比对文件的质量。

你对这些示例和解释是否清楚?如果理解了,我们可以继续探讨更多选项或其他相关命令的内容。


bedcov

samtools bedcov [options] region.bed in1.sam|in1.bam|in1.cram[...]

bedcov 命令用于报告每个由 BED 文件指定的基因组区域的总读取碱基计数(即每个碱基读取深度的总和)。输出的区域按照 BED 文件中的顺序,且为 0-based(基于零的坐标系)。每个输入文件的读取计数会输出在不同的列中。


depth

samtools depth [options] [in1.sam|in1.bam|in1.cram [in2.sam|in2.bam|in2.cram] [...]]

depth 命令计算每个位点或区域的读取深度(read depth)。可以用于查看比对文件中每个碱基位置的覆盖深度。


ampliconstats

samtools ampliconstats [options] primers.bed in.sam|in.bam|in.cram[...]

ampliconstats 命令从一个或多个输入的比对文件中收集统计信息,并生成文本格式的表格。输出可以通过 plot-ampliconstats 图形化展示。比对文件应事先经过引物序列的剪切处理,例如通过 samtools ampliconclip,并且这些引物的位点需要通过 BED 文件指定。


mpileup

samtools mpileup [-EB] [-C capQcoef] [-r reg] [-f in.fa] [-l list] [-Q minBaseQ] [-q minMapQ] in.bam [in2.bam [...]]

mpileup 命令生成一个或多个 BAM 文件的文本格式 pileup 输出。如果需要生成 VCFBCF 格式的输出,请使用 bcftools mpileup 命令。比对记录按 @RG 头部行中的样本标识符(SM)进行分组。如果没有样本标识符,每个输入文件将被视为一个单独的样本。

可以查看 samtools-mpileup 手册页,了解 pileup 格式及其选项的详细说明。


consensus

samtools consensus [options] in.bam

consensus 命令基于比对记录内容,从 SAM、BAM 或 CRAM 文件中生成共识序列。共识序列可以输出为 FASTAFASTQ 或 pileup 形式。

默认情况下,FASTA 和 FASTQ 格式的输出会为每个非缺口的共识生成一个碱基,因此相对于参考序列的插入会包含,而缺失会被移除。这种行为可以根据需要进行调整。

提供了两种共识调用算法:

  1. 默认算法以 贝叶斯方法 计算杂合共识,该方法来源于 Gap5 共识算法。
  2. 另一种方法是基于碱基频率的简单计数。

我们继续翻译这些命令的相关内容。

reference

samtools reference [options] in.bam

samtools reference 命令基于 SAM、BAM 或 CRAM 文件中的 SEQuence 字段MD:Z: 辅助标签 生成参考序列。对于 CRAM 文件,还可以从嵌入的参考序列块中生成参考序列(前提是该 CRAM 文件是在使用 embed_ref=1 选项时构建的)。


coverage

samtools coverage [options] [in1.sam|in1.bam|in1.cram [in2.sam|in2.bam|in2.cram] [...]]

samtools coverage 命令根据输入文件生成每条染色体的覆盖度直方图或表格,适用于查看不同染色体的覆盖情况。


merge

samtools merge [-nur1f] [-h inh.sam] [-t tag] [-R reg] [-b list] out.bam in1.bam [in2.bam in3.bam ... inN.bam]

samtools merge 用于合并多个已排序的比对文件,生成包含所有输入记录的单个排序输出文件,且保持原有的排序顺序。如果指定了 -h 选项,输入文件的 @SQ 头部信息将被合并到指定的头部文件中,否则这些头部信息将合并为一个复合头部文件。如果 @SQ 头部的顺序不同,输出文件可能需要在合并后重新排序。

输入文件的记录顺序必须与 -n-t 选项的使用一致,否则输出顺序将是不确定的。


split

samtools split [options] merged.sam|merged.bam|merged.cram

samtools split 命令根据读取组(read group)将文件拆分,生成一个或多个输出文件,每个文件包含一个读取组。输出文件的前缀可以自定义,默认是基于输入文件名的前缀。


cat

samtools cat [-b list] [-h header.sam] [-o out.bam] in1.bam in2.bam [ ... ]

samtools cat 用于连接多个 BAMCRAM 文件。虽然该命令适用于 BAM 或 CRAM 文件,但所有输入文件必须使用相同的格式。输入文件的序列字典必须相同,但该命令不会进行检查。该命令使用与 reheader 类似的技巧,以实现快速的 BAM 文件连接。


import

samtools import [options] in.fastq [ ... ]

samtools import 将一个或多个 FASTQ 文件 转换为未比对的 SAMBAMCRAM 格式。这些格式提供了更丰富的能力来跟踪样本元数据(通过 SAM 头部)和每个读取的元数据(通过辅助标签)。你可以使用 samtools fastq 命令来逆转这个转换。


fastq/a

samtools fastq [options] in.bam
samtools fasta [options] in.bam

samtools fastqsamtools fasta 命令分别将 BAMCRAM 文件转换为 FASTQFASTA 格式。根据所使用的命令生成相应格式的输出文件。如果文件名以 .gz.bgz.bgzf 结尾,文件将自动压缩。

这些命令要求输入文件已按名称整理。你可以使用 samtools collatesamtools sort -n 来确保文件已按名称排列。


faidx

samtools faidx <ref.fasta> [region1 [...]]

samtools faidx 命令用于索引 FASTA 格式的参考序列,或者从已索引的参考序列中提取子序列。如果未指定区域,该命令会为文件生成索引,并在磁盘上创建 .fai 文件。如果指定了区域,则会提取子序列并以 FASTA 格式输出到标准输出。

输入文件可以采用 BGZF 格式压缩。该命令也可以读取和索引 FASTQ 文件,如果不使用 --fastq 选项,提取的子序列将以 FASTA 格式输出。


fqidx

samtools fqidx <ref.fastq> [region1 [...]]

samtools fqidx 命令用于索引 FASTQ 格式的参考序列,或者从已索引的参考序列中提取子序列。如果未指定区域,该命令将索引文件并在磁盘上创建 .fai 文件。如果指定了区域,则提取的子序列会以 FASTQ 格式打印到标准输出。

输入文件可以采用 BGZF 格式压缩。该命令适用于包含少量条目的 FASTQ 文件,因为如果文件包含数百万短测序读取,生成的索引几乎与原始文件一样大,并且索引搜索会非常慢且占用大量内存。


dict

samtools dict ref.fasta|ref.fasta.gz

samtools dict 命令用于从 FASTA 文件创建序列字典文件。


calmd

samtools calmd [-Eeubr] [-C capQcoef] aln.bam ref.fasta

samtools calmd 用于生成 MD 标签。如果 MD 标签已经存在,命令会发出警告,提示生成的 MD 标签与现有标签不同。默认情况下,输出为 SAM 格式。

虽然 calmd 可以读取和写入 CRAM 文件,但在大多数情况下没有必要,因为 CRAM 会动态重新计算 MD 和 NM 标签。唯一的例外是输入和输出 CRAM 文件使用了 no_ref 选项时。


fixmate

samtools fixmate [-rpcm] [-O format] in.nameSrt.bam out.bam

samtools fixmate 命令用于填充基于名称排序的比对文件中的配对坐标ISIZE配对相关标志


markdup

samtools markdup [-l length] [-r] [-s] [-T] [-S] in.algsort.bam out.bam

samtools markdup 命令从已经通过 samtools fixmate 处理且坐标排序的文件中标记重复比对。该命令依赖于 MCms 标签,这些标签是 fixmate 提供的。


rmdup

samtools rmdup [-sS] <input.srt.bam> <out.bam>

samtools rmdup 命令已经过时,建议使用 samtools markdup 代替。


addreplacerg

samtools addreplacerg [-r rg-line | -R rg-ID] [-m mode] [-l level] [-o out.bam] in.bam

samtools addreplacerg 命令用于在文件中添加或替换读取组(read group)标签。


reheader

samtools reheader [-iP] in.header.sam in.bam

samtools reheader 命令将 in.bam 文件中的头部替换为 in.header.sam 中的头部。该命令比使用 BAM→SAM→BAM 转换来替换头部要快得多。

默认情况下,该命令将 BAM 或 CRAM 文件输出到标准输出(stdout),但对于 CRAM 格式文件,可以选择进行就地编辑,直接读取和写入同一文件。此命令不对头部的有效性进行检查,也不检查它是否适合用于与序列数据一起使用。


targetcut

samtools targetcut [-Q minBaseQ] [-i inPenalty] [-0 em0] [-1 em1] [-2 em2] [-f ref] in.bam

samtools targetcut 命令通过检查读取深度的连续性来识别目标区域,计算目标的单倍体共识序列,并输出每个序列对应于目标的 SAM 文件。当使用 -f 选项时,BAQ 将被应用。该命令仅设计用于从 fosmid pool sequencing 切割 fosmid 克隆。


phase

samtools phase [-AF] [-k len] [-b prefix] [-q minLOD] [-Q minBaseQ] in.bam

samtools phase 命令用于调用和定位异位 SNPs。


depad

samtools depad [-SsCu1] [-T ref.fa] [-o output] in.bam

samtools depad 命令将相对于填充参考比对的 BAM 转换为相对于未填充参考的 BAM。


ampliconclip

samtools ampliconclip [-o out.file] [-f stat.file] [--soft-clip] [--hard-clip] [--both-ends] [--strand] [--clipped] [--fail] [--no-PG] -b bed.file in.file

samtools ampliconclip 命令基于 BED 文件的数据在 SAM 兼容文件中剪切读取。


samples

samtools samples [-o out.file] [-i] [-T TAG] [-f refs.fasta] [-F refs_list] [-X]

samtools samples 命令从比对文件中打印样本信息。


reset

samtools reset [-o FILE] [-x/--remove-tag tag_list] [--keep-tag tag_list] [--reject-PG pgid] [--no-RG] [--no-PG] [...]

samtools reset 命令从记录中删除比对信息,生成未比对的 SAMBAMCRAM 文件。标志被重置,头部标签根据需要更新或删除,辅助标签根据指定的选项进行删除或保留。需要注意的是,排序顺序不会更改。


你可能感兴趣的:(linux,生信,linux)