0
点赞
收藏
分享

微信扫一扫

GATK推荐的序列存储格式-uBAM

小布_cvg 2022-06-21 阅读 32

欢迎关注"生信修炼手册"!

二代测序平台产生的数据通常用fastq格式进行存储,fastq 存储了我们最关心的序列和碱基质量的信息。就测序而言,这样的信息当然是足够了。但是对于分析而言,还缺少了一点信息。

给你一个fastq文件,你最多可以看出来样本名,测序平台,测序读长等基本信息,如果想知道测序类型(是WES, WGS 还是RNA-seq),  样本的采样信息,样本的分组信息,这些信息从fastq 文件是无法得到的。这些实验相关的数据,称之为​​metadata​​。

​uBAM​​​和​​FASTQ​​​相比,处理存储了序列和碱基质量信息之外,还可以存储​​metadata​​信息。

​GATK4​​​中,数据预处理部分的示意图如下
GATK推荐的序列存储格式-uBAM_数据

可以看到,对于原始数据,有两种格式,一种就是我们常见的​​FASTQ​​​; 另外一种就是​​uBAM​​​。官方更加推荐使用​​uBAM​​格式。

如何从​​FASTQ​​​转换得到​​uBAM​​​格式呢?我们需要借助​​picatd​​​工具。​​picard​​​提供了一个​​FastqToSam​​​功能,可以将序列转换成​​ubam​​格式。

基本用法如下:

java -jar picard.jar FastqToSam
   F1=sampleA_R1.fastq.gz
   F2=sampleA_R2.fastq.gz
   PL=illumina
   SM=sampleA
   LB=sampleA
   RG=sampleA
   O=sampleA.ubam

​F1​​​和​​F2​​​指定原始的fastq格式的数据,对于双端测序,同时指定F1和F2, 对于单端测序,指定F1就可以了。​​PL​​​代表platform, 指定测序平台,取值包含 illumina 和  solid 两种;​​SM​​​代表 sample  name, 指定样本名称;​​LB​​​代表library name, 指定文库名称,​​RG​​代表read group, 指定reads group的名字,这两个参数一般和样本名相同就可以了。

​ubam​​​从名称上也可以看出来,是属于​​bam​​格式的,所以其内容也分成了头部和正文两个部分。

1. 头部的内容

samtools view -H  sampleA.ubam
@HD    VN:1.5    SO:queryname
@RG    ID:sampleA    SM:sampleA    LB:sampleA    PL:illumina

第一行是标准的​​bam​​​文件头部的声明,第二行的​​@RG​​​就是转换过程中添加的几种​​metadata​​信息。

2. 正文的内容

samtools view  sampleA.ubam

由于列数较多,这里我截取了前面几列

GATK推荐的序列存储格式-uBAM_jar_02

每一行代表一条序列,序列ID相同的实际上是R1和R2端,从第二列的flag可以区分R1和R2端。

samtools flags 77
0x4d    77    PAIRED,UNMAP,MUNMAP,READ1
samtools flags 141
0x8d    141    PAIRED,UNMAP,MUNMAP,READ2

77对应R1端, 141对应R2端。
第三列的​​​*​​​代表没有比对上染色体,这就是​​unmapped bam​​的由来。

通过​​FastqToSam​​​可以从fastq文件得到​​ubam​​​文件,picard 还提供了​​SamtoFastq​​​命令,从bam 文件得到fastq 文件
用法如下:

java -jar picard.jar SamToFastq
   I=sampleA.ubam
   F=sampleA_R1.fastq
   F2=sampleA_R2.fastq

​I​​代表input, 指定输入的bam 文件;F和F2 指定输出的fastq 文件。

总结

通过​​picard​​​工具,可以轻松实现​​FASTQ​​​和​​uBAM​​格式之间的转换。

扫描关注微信号,更多精彩内容等着你!

GATK推荐的序列存储格式-uBAM_java_03


举报

相关推荐

0 条评论