参考基因组与VCF文件contigs不匹配
常见报错:参考基因组与VCF存在不匹配的contigs
处理方法:
①按照已有参考基因组更新VCF
java -jar picard.jar UpdateVcfSequenceDictionary R=reference.fasta I=input.vcf O=output.vcf
②如后续不需要contigs信息的话可以直接删掉
③使用匹配的参考基因组与VCF信息,最好统一在GATK中下载
④找统一版本的基因组与VCF信息,如同为GRCH38.p14,该方法暂未实现,不确定是否可行
⑤其他方法https://cloud.tencent.com/developer/article/2326070
可行版:
本人使用ENSEMBEL下载参考基因组数据,GATK broad下载的VCF文件,匹配时发生contigs不对应,代码:
java -jar GenomeAnalysisTK.jar -T BaseRecalibrator -R \${index} -I \${path}.realigned.bam -o \${path}.recal.table -knownSites Homo_sapiens_assembly38.dbsnp138.vcf
使用以上①②③均未可行,后查询https://cloud.tencent.com/developer/article/2326070发现:
①可使用 bcftools annotate
命令可以修改VCF文件的contig名称。
bcftools annotate --rename-chrs <contig_mapping.txt> input.vcf -o output.vcf
其中,<contig_mapping.txt>
是一个包含旧名称和新名称对应关系的文本文件。你需要提供一个符合格式要求的映射文件,将旧的contig名称映射到新的contig名称。
②修改后运行的BaseRecalibrator命令:
gatk BaseRecalibrator \ -R ~/refdata/Homo_sapiens.GRCh38.dna_sm.primary_assembly.fa \ -I ./SRR11178348_dedup_split.bam \ --known-sites ~/refdata/gatk_resource_bundle/1000G_phase1.snps.high_confidence.hg38.RmChr.vcf \ --known-sites ~/refdata/gatk_resource_bundle/dbsnp_146.hg38.RmChr.vcf \ --known-sites ~/refdata/gatk_resource_bundle/Mills_and_1000G_gold_standard.indels.hg38.RmChr.vcf \ -O ./SRR11178348_recal_data.table && \ gatk ApplyBQSR \ -R ~/refdata/Homo_sapiens.GRCh38.dna_sm.primary_assembly.fa \ -I ./SRR11178348_dedup_split.bam \ -bqsr ./SRR11178348_recal_data.table \ -O ./SRR11178348_BQSR.bam
注意一定不要使用 GenomeAnalysisTK.jar ,直接使用GATK命令,否则会报错报错报错!!!(比如报错参考和VCF的contig顺序不对应巴拉巴拉巴拉)
未明白这是什么原因导致的,但还是不要使用 GenomeAnalysisTK.jar ,太费劲了!