samtools

samtools及bam文件的相关知识

找到一个bam文件并输入如下命令查看title信息
samtools view *.bam -H|less

(chipseq) [ ~ dum]$ samtools view RNAPII_S5P.merge.rmdup.bam -H|less
@HD     VN:1.0  SO:coordinate
@SQ     SN:chr1 LN:195471971
@SQ     SN:chr2 LN:182113224
@SQ     SN:chr3 LN:160039680
@SQ     SN:chr4 LN:156508116
@SQ     SN:chr5 LN:151834684
@SQ     SN:chr6 LN:149736546
@SQ     SN:chr7 LN:145441459
@SQ     SN:chr8 LN:129401213
@SQ     SN:chr9 LN:124595110
@SQ     SN:chr10        LN:130694993
@SQ     SN:chr11        LN:122082543
@SQ     SN:chr12        LN:120129022
@SQ     SN:chr13        LN:120421639
@SQ     SN:chr14        LN:124902244
@SQ     SN:chr15        LN:104043685
@SQ     SN:chr16        LN:98207768
@SQ     SN:chr17        LN:94987271
@SQ     SN:chr18        LN:90702639
@SQ     SN:chr19        LN:61431566
@SQ     SN:chrX LN:171031299
@SQ     SN:chrY LN:91744698
@SQ     SN:chrM LN:16299
@SQ     SN:chr1_GL456210_random LN:169725
@SQ     SN:chr1_GL456211_random LN:241735
@SQ     SN:chr1_GL456212_random LN:153618
@SQ     SN:chr1_GL456213_random LN:39340
@SQ     SN:chr1_GL456221_random LN:206961
@SQ     SN:chr4_GL456216_random LN:66673
@SQ     SN:chr4_GL456350_random LN:227966
@SQ     SN:chr4_JH584292_random LN:14945
@SQ     SN:chr4_JH584293_random LN:207968
@SQ     SN:chr4_JH584294_random LN:191905
@SQ     SN:chr4_JH584295_random LN:1976
@SQ     SN:chr5_GL456354_random LN:195993
@SQ     SN:chr5_JH584296_random LN:199368
@SQ     SN:chr5_JH584297_random LN:205776
@SQ     SN:chr5_JH584298_random LN:184189
@SQ     SN:chr5_JH584299_random LN:953012
@SQ     SN:chr7_GL456219_random LN:175968
@SQ     SN:chrX_GL456233_random LN:336933
@SQ     SN:chrY_JH584300_random LN:182347
@SQ     SN:chrY_JH584301_random LN:259875
@SQ     SN:chrY_JH584302_random LN:155838

可以看到bam文件的header有如下几个部分组成
@HD 标题行(The header line)主要用于版本号,是否排序等标注
@SQ 参考序列字典(Reference sequence dictionary)注意它们的顺序决定了排序的优先级
@RQ read group主要记录了一文件的描述信息,例如样本信息,文库编号等
@PG program主要记录比对的软件等代码信息
@CO comments一行评论

-F 过滤 ## -F 4 过滤掉没有mapping上的reads,也就是说提取出mapping上的reads

(chipseq) [yangjy@GSCG01 dum]$ samtools view -F 4 RNAPII_S5P.merge.rmdup.bam|less
SRR391032.11913822      0       chr1    3003566 42      50M     *       0       0       TCTGCATGCTGATCTGCGCAGACTGTTCTCAGAGGGATCTGGCAGACAAG      BCCCBBCBBCCBCBBCBBABCB@BB?@:@=AB??@A8@:???=?@?6<=<      AS:i:0  XN:i:0  XM:i:0  XO:i:0  XG:i:0  NM:i:0  MD:Z:50 YT:Z:UU
SRR391033.8486314       0       chr1    3006117 42      51M     *       0       0       AAGTAAATTCCTCACTTTTCATCCAGGAAACCTCTCTTCCCAACAAAGAGA     BBBABBBCBCCCCCCCCCCCCCCBBCBBBBBABBBBBBBBBBBBBA1>@B@     AS:i:0  XN:i:0  XM:i:0  XO:i:0  XG:i:0  NM:i:0  MD:Z:51 YT:Z:UU

参考:https://www.bioinfo-scrounger.com/archives/245/

samtoolsview命令简介
  • 处理对象主要是BAM文件

  • bam文件是sam文件的二进制格式,更加节省存储空间而且操作速度更快。
    samtools view [options] in.sam | in.bam | in.cram[region...]
    如果没有指定option和region选项,则会在屏幕中显示sam格式的文件

  • 将比对后的sam文件转换为bam文件 ---利用samtools view的-b参数就能把sam文件转为bam文件。

sam 和 bam 格式转换
1 BAM转换为SAM
samtools view -h -o out.sam out.bam
2 SAM转换为BAM
samtools view -bS out.sam >out.bam
-b 意思使输出使BAM format
-S 意思使输入使SAM

samtools rmdup

NGS上机测序前需要进行PCR一步,使一个模板扩增出一簇,从而在上机测序的时候表现出为1个点,即一个reads。若一个模板扩增出了多簇,结 果得到了多个reads,这些reads的坐标(coordinates)是相近的。在进行了reads比对后需要将这些由PCR duplicates获得的reads去掉,并只保留最高比对质量的read。使用rmdup命令即可完成.

Usage:  samtools rmdup [-sS]  
-s 对single-end reads。默认情况下,只对paired-end reads
-S 将Paired-end reads作为single-end reads处理。

$ samtools input.sorted.bam output.bam

其他参考文件:
https://www.bioinfo-scrounger.com/archives/245/

Usage: samtools sort [options...] [in.bam]

Options:
  -l INT     Set compression level, from 0 (uncompressed) to 9 (best)
  -u         Output uncompressed data (equivalent to -l 0)
  -m INT     Set maximum memory per thread; suffix K/M/G recognized [768M]
  -M         Use minimiser for clustering unaligned/unplaced reads
  -K INT     Kmer size to use for minimiser [20]
  -n         Sort by read name (not compatible with samtools index command)
  -t TAG     Sort by value of TAG. Uses position as secondary index (or read name if -n is set)
  -o FILE    Write final output to FILE rather than standard output
  -T PREFIX  Write temporary files to PREFIX.nnnn.bam
  --no-PG    do not add a PG line
      --input-fmt-option OPT[=VAL]
               Specify a single input file format option in the form
               of OPTION or OPTION=VALUE
  -O, --output-fmt FORMAT[,OPT[=VAL]]...
               Specify output format (SAM, BAM, CRAM)
      --output-fmt-option OPT[=VAL]
               Specify a single output file format option in the form
               of OPTION or OPTION=VALUE
      --reference FILE
               Reference sequence FASTA FILE [null]
  -@, --threads INT
               Number of additional threads to use [0]
      --verbosity INT
               Set level of verbosity

你可能感兴趣的:(samtools)