在使用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-
引用转载请注明出处,如有错误敬请指出。
网友评论