科研信息学Linux-NGS-二代测序分析流程生物信息学

Samtools使用大全

2019-10-28  本文已影响0人  Davey1220

一、简介

Samtools是一个用于操作sam和bam格式文件的应用程序集合,具有众多的功能。 它从SAM(序列比对/映射)格式导入和导出,进行排序,合并和索引,并允许快速检索任何区域中的读数。SAM和BAM格式的比对文件主要由bwa、bowtie2、tophat和hisat2等序列比对工具产生,用于记录测序reads在参考基因组上的映射信息。其中,BAM格式文件是SAM文件的 的二进制格式,占据内存较小且运算速度更快。

二、基本用法

Samtools由一系列的子命令组成,可以对sam和bam格式的文件进行不同的整合与处理。

$ samtools --help

Program: samtools (Tools for alignments in the SAM format)
Version: 1.3.1 (using htslib 1.3.1)

Usage:   samtools <command> [options]

Commands:
  -- Indexing
     dict           create a sequence dictionary file
     faidx          index/extract FASTA
     index          index alignment

  -- Editing
     calmd          recalculate MD/NM tags and '=' bases
     fixmate        fix mate information
     reheader       replace BAM header
     rmdup          remove PCR duplicates
     targetcut      cut fosmid regions (for fosmid pool only)
     addreplacerg   adds or replaces RG tags

  -- File operations
     collate        shuffle and group alignments by name
     cat            concatenate BAMs
     merge          merge sorted alignments
     mpileup        multi-way pileup
     sort           sort alignment file
     split          splits a file by read group
     quickcheck     quickly check if SAM/BAM/CRAM file appears intact
     fastq          converts a BAM to a FASTQ
     fasta          converts a BAM to a FASTA

  -- Statistics
     bedcov         read depth per BED region
     depth          compute the depth
     flagstat       simple stats
     idxstats       BAM index stats
     phase          phase heterozygotes
     stats          generate stats (former bamcheck)

  -- Viewing
     flags          explain BAM flags
     tview          text alignment viewer
     view           SAM<->BAM<->CRAM conversion
     depad          convert padded BAM to unpadded BAM

2.1 构建索引(Indexing)

2.2 文件编辑(Editing)

2.3 文件处理(File operations)

2.4 数据统计(Statistics)

2.5 可视化(Viewing)

三、常用示例

  1. sam/bam格式文件互换
$ samtools view -bS -1 test.sam > test.bam # sam转bam
$ samtools view -h test.bam > test.sam # bam转sam
  1. 提取比对到参考基因组上的数据
$ samtools view -bF 4 test.bam > test.F.bam
  1. 提取没有比对到参考基因组上的数据
$ samtools view -bf 4 test.bam > test.f.bam
  1. 双端reads都比对到参考基因组上的数据
$ samtools view -bF 12 test.bam > test.12.bam
  1. 单端reads1比对到参考基因组上的数据
samtools view -bF 4 -f 8  test .bam > test1.bam
  1. 单端reads2比对到参考基因组上的数据
$ samtools view -bF 8 -f 4 test.bam > test2.bam
  1. 提取bam文件中比对到scaffold1上的比对结果,并保存到sam文件格式
$ samtools view abc.bam scaffold1 > scaffold1.sam
  1. 提取scaffold1上能比对到30k到100k区域的比对结果
$ samtools view abc.bam scaffold1:30000-100000 > scaffold1_30k-100k.sam
  1. 根据fasta文件,将 header 加入到 sam 或 bam 文件中
$ samtools view -T genome.fasta -h scaffold1.sam > scaffold1.h.sam
  1. call SNP和INDEL等变异信息
$ samtools mpileup -f genome.fasta abc.bam > abc.txt
$ samtools mpileup -gSDf genome.fasta abc.bam > abc.bcf
$ samtools mpileup -guSDf genome.fasta abc.bam | \
           bcftools view -cvNg - > abc.vcf

参考来源:
http://www.htslib.org/doc/samtools.html
https://www.cnblogs.com/xiaofeiIDO/p/6805373.html
https://blog.csdn.net/sunchengquan/article/details/85176940

上一篇下一篇

猜你喜欢

热点阅读