生物数据格式 - SAM/BAM

格式

sam文件是短序列比对生成的文件,是二代测序中最核心的文件。在RNAseq,变异检测等分析中,都需要首先生成sam文件格式。bam文件是sam格式的二进制格式,转换为二进制之后,可以减小文件的存储。sam文件的序列格式如下:
sam/bam示例.png

在header之后,每一行是一条record,也就是一条read比对的结果,信息包括标配的十一列和可能有的第十二列:
第一列:reads ID

第二列:是flag标识符,是一些代表比对模式的二进制数字之和,数字的具体含义如下:
flag含义.png

第三列:比对到参考序列上的染色体号。
第四列:在参考序列上的位置
第五列:比对的质量值,MAPQ
第六列:代表比对结果的CIGAR字符串
第七列:比对到的染色体号,若是没有比对到,则是*
第八列:比对到参考序列上的第一个碱基位置
第九列:Template的长度
第十列:为read的序列
第十一列:为ASCII码格式的序列质量

第十二列:元信息是第六列的详细信息,展示了比对的具体细节,一般包括了RG信息、missmatch信息、二次比对信息等。不过这些标识符是供下游软件处理,并不需要人工来解读,具体含义如下:
image.png
获取

许多比对软件如bwa,bowie2,tophat2,subread,minimap2等等都可以生成sam格式。软件将fastq格式的测序数据比对回fasta格式的参考序列上,就得到了储存了比对信息的sam文件。

# bwa建立索引
bwa index -a is ref.fna
#bwa mem比对
bwa mem -t 4 -R '@RG\tID:A1\tPL:illumina\tSM:A1'  ref.fa  A1_1.fastq.gz A1_2.fastq.gz >A1.sam

bwa默认生成的是sam格式,而绝大部分的软件需要bam格式,所以需要将sam转换为二进制的bam,可以节省大量存储。

samtools view -O bam -o A1.bam A1.sam  #sam转bam
samtools view A1.bam | less -S #查看bam

有些文件格式不正确或者内容不完整的bam文件运行samtools会报错,这个时候就可以使用samtools自带的quickcheck功能进行验证。

samtools quickcheck *.bam  && echo 'all ok' || echo 'fail!'
处理
文件与序列处理
##排序
samtools sort -@ 4 -m 12G -O bam -o A1.sorted.bam A1.sam  
##建立索引
samtools index A1.sorted.bam  
##统计
samtools stats  A1.sorted.bam  > A1.stats #比对结果统计
plot-bamstats -p test  A1.stats  #并绘图
samtools flags 83 #查看flag含义
samtools flagstat A1.sorted.bam #flag统计
samtools idxstats male.sorted.bam | head #单条染色体比对统计
samtools bedcov cancer_panel.bed A1.sorted.bam #目标区域(bed)统计
samtools depth A1.sorted.bam#深度统计
##过滤
samtools view -f 4 A1.sorted.bam #将没有比对上的reads筛选出来
samtools veiw -F 4 A1.sorted.bam #将比对上的reads输出出来
##输出比对fastq与fasta
samtools fastq A1.sorted.bam -1 A.1.fq.gz -2 A.2.fq.gz -c 6 #输出比对fastq
samtools fasta A1.sorted.bam #输出fasta
##tview查看每个位点细节
samtools tview A1.sorted.bam #排序建立索引的reads
samtools tview A1.sorted.bam ref.fna #排序建立索引的参考序列
##可视化
      #tablet
      #IGV
##mpileup
samtools mpileup --reference ref/ref.fna   A1.sorted.bam #pileup是之前maq工具查找SNP重要的步骤,目前已经逐渐将mpileup功能转移到bcftools中
功能相关处理
##MarkDuplication
### Dupliacation reads会对变异检测造成干扰,得到一些假阳性的结果,因此,需要将这些reads去除掉,只留一份即可。可以在比对之后进行标记。这一步骤只是在每一行比对结尾出添加一些CIGAR标志,并不过滤数据。samtools可以标记Duplication,也可以去除掉reads,GATK也可以进行标记。
gatk MarkDuplicates -I A1.sorted.bam -M Sample1.markdup_metrics.txt -O A1.sorted.markdup.bam #GATK进行标记
samtools index A1.sorted.markdup.bam #samtools进行标记
##BQSR Base Quality Score Recalibratio
### 是利用GATK做人全基因组分析的必要步骤。首先利用BaseRecalibrator进行机器学习,然后利用ApplyBQSR应用于比对结果。但是需要注意,BQSR至少要达到100万个突变位点,因此,外显子和目标区域捕获一般达不到这个要求,也就做不了这步奏。
#进行学习
gatk BaseRecalibrator -R Homo_sapiens_assembly38.fasta -I A1.sorted.markdup.bam --known-sites 1000G_phase1.snps.high_confidence.hg38.vcf.gz --known-sites Mills_and_1000G_gold_standard.indels.hg38.vcf.gz --known-sites dbsnp_146.hg38.vcf.gz -O A1.sorted.markdup.recal_data.table >bqsr.log
#进行BQSR
gatk ApplyBQSR --bqsr-recal-file A1.sorted.markdup.recal_data.table -R Homo_sapiens_assembly38.fasta -I A1.sorted.markdup.bam -O A1.sorted.markdup.BQSR.bam
#对新的bam创建索引
samtools index A1.sorted.markdup.BQSR.bam
##SNP检测   
bcftools mpileup -f ref.fna A1.sorted.bam | bcftools call -c -v -o A1.bcftool.vcf #bcftools进行检测  
freebayes  -f ref.fna -C 5 A1.sorted.bam -v A1.freebayes.vcf #freebayes进行检测
### GATK进行检测,输入数据为排序建立索引的bam,如果是人全基因组,则为排序,标记Duplication并经过BQSR的bam,并建立索引。
gatk HaplotypeCaller --emit-ref-confidence GVCF -R ref.fna -I A1.sorted.bam -O  A1.g.vcf.gz #HaplotypeCaller:Call germline SNPs and indels via local re-assembly of haplotypes 
gatk GenotypeGVCFs -R ref.fna A1.g.vcf.gz -O A1.HC.vcf.gz #GenotypeGVCFs:Perform joint genotyping on gVCF files produced by HaplotypeCaller
##SV检测
delly call -g ref.fna -o A11.delly.sv.bcf -n A11.sorted.bam  #delly进行检测
delly filter -f germline -p -q 20 A1.delly.sv.bcf -o A1.delly.sv.filter.bcf #germline突变过滤
————————————————————————————————————————————————————————————————————————————————————————————
samtools view -b -F 1294A1.sorted.bam  | samtools sort - > A1.discordants.sorted.bam #1 挑选flag值为1294(非正常范围内的比对)的reads 
samtools view -h A1.sorted.bam | extractSplitReads_BwaMem -i stdin | samtools view -Sb - | samtools sort -> A.splitters.sorted.bam  #2 挑选split比对的reads
lumpyexpress -BA1.sorted.bam -S A1.discordants.sorted.bam -D A1.splitters.sorted.bam -o A1.lumpu.sv.vcf  #3 利用lumpy找SV
##CNVnator进行CNV检测
cnvnator -root A1.root -tree A1.sorted.bam -unique #1.提取mapping信息  
cnvnator -root A1.root -his 100  -d ref.fna #2.生成质量分布图HISTOGRAM   
cnvnator -root A1.root -stat 100 #3.生成统计结果  
cnvnator -root A1.root -partition 100  #4.RD信息分割partipition   
cnvnator -root A1.root -call 100 > A1.cnvnator.vcf #5.变异检出

———以上纯属个人理解与记录

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容