文件格式说明 - SAM/BAM

Sam 格式文献
Sam 格式博客
Sam 格式说明

Bam 头文件

头文件是一行行以 @ 开头的注释文件,文件记录了比对是所用的参考序列信息,序列的名称和序列的长度(@SQ),同时也记录了比对、Markdup、重比对等过程所使用的软件以及对应的软件版本(@PG),同时还会有记录的样本信息(@RG);
如果有需要更改样本的头文件,可以通过Samtools rehead# 定义一个新的头文件,来替代原来的头文件.

Bam头文件示例

Bam 头文件:

1
2
3
4
5
6
7
8
9
10
11
12
@HD	VN:1.0	GO:none	SO:coordinate
@SQ SN:chr1 LN:249250621
@SQ SN:chr2 LN:243199373
@SQ SN:chr3 LN:198022430
@SQ SN:chr4 LN:191154276
@SQ SN:chr5 LN:180915260
@SQ SN:chr6 LN:171115067
@SQ SN:chr7 LN:159138663
@RG ID:cancer PL:illumina PU:FCHF3HCBCX2 LB:17D0846999-98 SM:cancer CN:BGI
@PG ID:MarkDuplicates PN:MarkDuplicates VN:1.98(1547) CL:net.sf.picard.sam.MarkDuplicates INPUT=[/THL4/home/bgi_thcancer/liubo/Project/BRAC_CY/2018-05-29/17D0846999-98/cancer/3_markdup_bam/17D0846999-98_sort.bam] OUTPUT=/THL4/home/bgi_thcancer/liubo/Project/BRAC_CY/2018-05-29/17D0846999-98/cancer/3_markdup_bam/17D0846999-98_sort_markdup.bam METRICS_FILE=/THL4/home/bgi_thcancer/liubo/Project/BRAC_CY/2018-05-29/17D0846999-98/cancer/3_markdup_bam/17D0846999-98_sort_markdup.bam.metrics REMOVE_DUPLICATES=false ASSUME_SORTED=true VALIDATION_STRINGENCY=LENIENT PROGRAM_RECORD_ID=MarkDuplicates PROGRAM_GROUP_NAME=MarkDuplicates MAX_SEQUENCES_FOR_DISK_READ_ENDS_MAP=50000 MAX_FILE_HANDLES_FOR_READ_ENDS_MAP=8000 SORTING_COLLECTION_SIZE_RATIO=0.25 READ_NAME_REGEX=[a-zA-Z0-9]+:[0-9]:([0-9]+):([0-9]+):([0-9]+).* OPTICAL_DUPLICATE_PIXEL_DISTANCE=100 VERBOSITY=INFO QUIET=false COMPRESSION_LEVEL=5 MAX_RECORDS_IN_RAM=500000 CREATE_INDEX=false CREATE_MD5_FILE=false
@PG ID:bwa PN:bwa VN:0.6.2-r126
@PG ID:GATK IndelRealigner VN:2.3-9-ge5ebf34 CL:knownAlleles=[(RodBinding name=knownAlleles source=/THL4/home/bgi_thcancer/pipeline/chip_1.7M/db/aln/dbsnp/dbSNP132_1000GIndel_merge_for_realgn.txt)] targetIntervals=/THL4/home/bgi_thcancer/liubo/Project/BRAC_CY/2018-05-29/17D0846999-98/cancer/4_realign_bam/17D0846999-98_cancer.intervals LODThresholdForCleaning=5.0 consensusDeterminationModel=USE_READS entropyThreshold=0.15 maxReadsInMemory=150000 maxIsizeForMovement=3000 maxPositionalMoveAllowed=200 maxConsensuses=30 maxReadsForConsensuses=120 maxReadsForRealignment=20000 noOriginalAlignmentTags=false nWayOut=null generate_nWayOut_md5s=false check_early=false noPGTag=false keepPGTags=false indelsFileForDebugging=null statisticsFileForDebugging=null SNPsFileForDebugging=null

Bam 内容部分

Bam 的内容部分,包含了所有序列的比对信息,包括比对位置,比对质量值查看方式 samtools view ;
在Bam/Sam输出的结果中每一行都包括十二项通过Tab分隔,从左到右分别是:

  1. 序列的名称
  2. 概括出一个合适的标记,各个数字分别代表

    • 1 read是pair中的一条(read表示本条read,mate表示pair中的另一条read)
    • 2 pair一正一负完美的比对上
    • 4 这条read没有比对上
    • 8 mate没有比对上
    • 16 这条read反向比对
    • 32 mate反向比对
    • 64 这条read是read1
    • 128 这条read是read2
    • 256 第二次比对
    • 512 比对质量不合格
    • 1024 read是PCR或光学副本产生
    • 2048 辅助比对结果

假如说标记为以上列举出的数目,就可以直接推断出匹配的情况。假如说标记不是以上列举出的数字,比如说 83=(64+16+2+1),就是这几种情况值和。

  1. 参考序列的名字
  2. 在参考序列上的位置
  3. mapping qulity?? 越高则位点越独特
    bowtie2有时并不能完全确定一个短的序列来自与参考序列的那个位置,特别是对于那些比较简单的序列。但是bowtie2会给出一个值来显示出 这个段序列来自某个位点的概率值,这个值就是mapping qulity。Mapping qulity的计算方法是:Q=-10log10p,Q是一个非负值,p是这个序列不来自这个位点的估计值。
    假如说一条序列在某个参考序列上找到了两个位点,但是其中一个位点的Q明显大于另一个位点的Q值,这条序列来源于前一个位点的可能性就比较大。Q值的差距越大,这独特性越高。
    Q值的计算方法来自与SAM标准格式,请查看SAM总结。
  4. 代表比对结果的CIGAR字符串,如37M1D2M1I,这段字符的意思是37个匹配,1个参考序列上的删除,2个匹配,1个参考序列上的插入。M代表的是alignment match(可以是错配)

    • “M”表示 match或 mismatch;
    • “I”表示 insert;
    • “D”表示 deletion;
    • “N”表示 skipped(跳过这段区域);
    • “S”表示 soft clipping(被剪切的序列存在于序列中);
    • “H”表示 hard clipping(被剪切的序列不存在于序列中);
    • “P”表示 padding;
    • “=”表示 match;
    • “X”表示 mismatch(错配,位置是一一对应的);
  5. mate 序列所在参考序列的名称

  6. mate 序列在参考序列上的位置
  7. 估计出的片段的长度,当mate 序列位于本序列上游时该值为负值。
  8. read的序列
  9. ASCII码格式的序列质量
  10. 可选的区域
    • AS:i? 匹配的得分
    • XS:i? 第二好的匹配的得分
    • YS:i? mate 序列匹配的得分
    • XN:i? 在参考序列上模糊碱基的个数
    • XM:i? 错配的个数
    • XO:i? gap open的个数
    • XG:i? gap 延伸的个数
    • NM:i? 经过编辑的序列
    • YF:i? 说明为什么这个序列被过滤的字符串
    • YT:Z
    • MD:Z? 代表序列和参考序列错配的字符串
-------------本文结束感谢您的阅读-------------