samtools常用操作

以下是对 Samtools 常用命令及各参数的详细解释,整理为 Markdown 格式:

Samtools 常用命令总结

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

常用操作

1. 将 SAM 文件转换为 BAM 文件

说明: 将 SAM 文件转换为 BAM 文件,以节省存储空间,同时许多下游分析工具使用 BAM 格式。

samtools view -bS -o alignments.bam input.sam
  • view:将文件从 SAM 格式转换为 BAM 格式。
  • -b:输出 BAM 格式(binary)。
  • -S:指定输入为 SAM 格式(如果是旧版 SAMtools,1.3.0 之后可省略)。
  • -o:指定输出文件名为 alignments.bam

2. 将 BAM 文件转换为 SAM 文件,同时包含 header 信息

说明: 提取 BAM 文件内容并保留头部信息,以 alignments.sam 为输出文件名。

samtools view -h -o alignments.sam alignments.bam
  • -h:包含头部信息(header)。
  • -o:指定输出文件名为 alignments.sam

3. 仅获取 BAM 文件中的 header 信息

说明: 只提取 BAM 文件中的头部信息。

samtools view -H alignments.bam
  • -H:仅输出头部信息(header lines)。

4. 对 BAM 文件进行排序

说明: 对 BAM 文件进行排序,便于下游分析。

samtools sort alignments.bam -o alignments.sorted.bam
samtools sort -n alignments.bam -o alignments.name.sorted.bam
  • sort:对 BAM 文件进行排序。
  • -o:指定输出文件名为 alignments.sorted.bam
  • -n:基于 read 名进行排序(而非染色体位置)。

5. 为排序的 BAM 文件建立索引

说明: 对排序后的 BAM 文件建立索引,索引文件用于快速检索特定区域。

samtools index alignments.sorted.bam
  • index:为 BAM 文件生成索引,输出文件为 .bam.bai 格式。

6. 列出每条染色体上的 reads 数量

说明: 列出回帖到每条染色体的 reads 数目。

samtools idxstats alignments.sorted.bam > alignments.sorted.bam.stat
  • idxstats:显示每条染色体的比对统计信息。
  • 输出结果:
    • 第一列:染色体名称。
    • 第二列:染色体长度。
    • 第三列:mapped reads 数量。
    • 第四列:unmapped reads 数量。

7. 基于比对质量筛选比对子集

说明: 筛选出比对质量高于 30 的 reads 子集,存储为 BAM 格式。

samtools view -b -q 30 -o alignments_MQmin30.bam alignments.bam
  • -q:设置比对质量过滤阈值为 30,保留比对质量大于 30 的 reads。
  • -b:输出 BAM 格式。

8. 基于 SAM 标记字段的值筛选比对子集

说明: 根据标记值(flag)筛选或过滤 reads。标记值描述了 read 的比对情况,如是否比对成功、是否正确配对等。

# 去除没有比对的 reads
samtools view -b -F 4 -o alignments.mapped_only.bam alignments.bam
# 保留正确配对的 reads
samtools view -b -f 2 -o properly_paired_reads.bam alignments.bam
  • -F:过滤掉具有指定标记的 reads(如 -F 4 过滤掉未比对的 reads)。
  • -f:保留具有指定标记的 reads(如 -f 2 保留正确配对的 reads)。

标记值示例:

  • 0x1(PAIRED):双端测序。
  • 0x2(PROPER_PAIR):正确配对。
  • 0x4(UNMAP):未比对的片段。
  • 0x8(MUNMAP):下一个片段未比对。

9. 基于标记字段获取 reads 的比对统计信息

说明: 生成比对统计报告,显示 QC 通过和未通过的 reads 数。

samtools flagstat alignments.bam
  • flagstat:输出包含 QC 通过与未通过的 reads 的详细统计信息。

10. 提取 BAM 文件中比对到特定 contig 或区域的 reads

说明: 提取比对到特定 contig 或基因组区域的 reads。

# 提取比对到 contig18 的 reads
samtools view accepted_hits.bam.sort.bam Contig18 > Contig18.sam
# 提取比对到 contig18 上 10k-20k 区域的 reads
samtools view accepted_hits.bam.sort.bam Contig18:10000-20000 > Contig18_10-20k.sam
samtools view -b accepted_hits.bam.sort.bam Contig18:10000-20000 > Contig18_10-20k.bam

11. 合并多个 BAM 文件

说明: 将多个已排序的 BAM 文件合并为一个文件。

samtools merge merge.bam HS.sort.bam CK.sort.bam KO.sort.bam
  • merge:合并多个已排序的 BAM 文件。

12. 统计测序深度

说明: 统计每个碱基位点的测序深度并输出到文件。

samtools depth merge.bam > depth

主要参数:

  • -r:指定染色体号(region)。
  • -q:要求测序碱基的最低质量值。
  • -Q:要求比对的最低质量值。

参考

Samtools 官方文档


这个总结包括了 Samtools 的常见命令和每个参数的解释,有助于快速上手使用 Samtools 进行数据处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值