参考基因组与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 ,太费劲了!

posted @ 2024-04-04 15:54  jcfaieng  阅读(177)  评论(0编辑  收藏  举报