Linux学习与应用技巧

picard——修改BAM文件的Read Group

2022-01-27  本文已影响0人  Wei_Sun

在使用GATK进行变异位点检测时,报错A USER ERROR has occurred: Argument emit-ref-confidence has a bad value: Can only be used in single sample mode currently. Use the --sample-name argument to run on a single sample out of a multi-sample BAM file.

GATK HaplotypeCaller只能处理单样本文件,但是我使用的bam文件也是单样本,为确定样本信息,通过samtools查看bam文件。bam文件标准格式如下,引用自bam文件的理解 - 简书 (jianshu.com)

$ samtools view -H CPF1_R1_CE.sort.bam | grep '@RG'

没有返回值,查看bam文件信息:

$ samtools view -H CPF1_R1_CE.sort.bam

发现bam文件中没有RG信息,因此通过picard修改BAM文件的Read Group。

1.下载安装

建议使用conda进行安装,省了很多麻烦。

#创建环境
$ conda create -p /your/path/picard_env
#激活环境
$ conda activate /your/path/picard_env
#安装
$ conda install -c bioconda picard

2.修改BAM文件RG

用Picard的 AddOrReplaceReadGroups命令来完成:

$ vim rg.sh
$ picard AddOrReplaceReadGroups \
    -I ./data/sample.raw.bam \
    -O ./data/sample.AddOrReplaceReadGroups.bam \
    --RGID sample1 \
    --RGLB lib1 \
    --RGPL illumina \
    --RGPU unit1 \
    --RGSM sample1 \
    --VALIDATION_STRINGENCY LENIENT \
    -Xms1g -Xmx10g -XX:ParallelGCThreads=10
$ bsub -n 10 -o rg.log sh rg.sh

--VALIDATION_STRINGENCY LENIENT这里是为了避免Picard因为检查Header 不符合规范而报错终止。
-Xms1g 是 Java Virtual Machine的参数,设置最小内存为1G。
-Xmx10g 也是 Java Virtual Machine的参数,设置最大内存为10G。
-XX:ParallelGCThreads=4 还是 Java Virtual Machine的参数,设置并行 线程为4。

再次查看RG信息:

$ samtools view -H CPF1_R1_CE.rg.sort.bam | grep '@RG'
@RG     ID:CPF1_R1_CE   LB:lib1 PL:illumina     SM:CPF1_R1_CE   PU:unit1

参考材料:
https://wolfsonliu.github.io/archive/2020/gatk4-germline-variant-calling-fen-xi-liu-cheng.html

https://gatk.broadinstitute.org/hc/en-us/articles/4404607557787-AddOrReplaceReadGroups-Picard-

引用转载请注明出处,如有错误敬请指出。

上一篇下一篇

猜你喜欢

热点阅读