Description

侃大山,随便聊聊。有啥新奇特的Idea都可以分享。

By wuzhenzhen, 31 December, 2025

# 报错详细信息

A USER ERROR has occurred: An index is required but was not found for file drivingVariantFile:/home/Raw_data_20250821/Rmolle_callsnp_work/Rmolle_all_results/8snp_index_filter/SNP.raw.chr14.401.vcf.gz. Support for unindexed block-compressed files has been temporarily disabled. Try running IndexFeatureFile on the input.

# 解决

  • 该错误表明正在处理的 .vcf.gz压缩VCF文件缺少索引文件(通常为 .tbi或 .csi),而GATK要求必须提供索引才能读取压缩的块文件(block-compressed files)。
  • 首先,确定是否未将索引文件一起复制到工作目录中,如果是该情况,复制后则解决。
  • 如果不生效或者没有索引文件,则按照以下步骤重新生成:

By wuzhenzhen, 31 December, 2025

01 需要准备的文件

  1. gff文件(如果有的话,最好是gtf文件,gtf文件格式更严谨)
  2. 基因组文件
  3. vcf文件

02  利用annovar进行SNP注释

(1)准备基因组文件构建数据库

  • 下载gffread:将gff文件转化为gtf文件

    # 版本为为gffread v0.12.8
    git clone https://github.com/gpertea/gffread
    cd gffread
    make release
  • 将gff文件转换为gtf文件

    # gff转换为gtf
    gffread Rmolle_genomic_GCA_025413875.1.gff -T -o Rmolle.gtf
  • 将gtf文件转成refGene格式

By wuzhenzhen, 31 December, 2025

 01 将分染色体的vcf文件合并成全基因组vcf文件

1. 首先,生成vcf列表文件:

ls INDEL.raw.chr*.vcf.gz > INDEX_raw_all_vcf.list
ls SNP.raw.chr*.vcf.gz > SNP_raw_all_vcf.list
# 如果有叶绿体等染色体,手动删除

2.  使用gatk合并vcf文件

gatk \
  --java-options "-Xmx10g -Djava.io.tmpdir=./tmp" \
  MergeVcfs \
  -I raw_vcf.list \
  -O all.merge_raw.vcf

02 过滤变异

gatk官网在2025年更新了Hard Filter的标准,选择最新的标准进行筛选:

By wuzhenzhen, 30 November, 2025

# 生成单个样本的gVCF文件

# HaplotypeCaller最多可以设置4个线程,由于Java限制再增加也没有用 
gatk --java-options "-Xmx10g -XX:ParallelGCThreads=4" HaplotypeCaller -R genome.fasta -I sample1.pe.sort.markdup.bam -ERC GVCF -O sample1.g.vcf.gz

# 利用gatk生成每个样本的gVCF文件时,报错

  • 具体的报错信息:

By wuzhenzhen, 30 November, 2025

# 比对结果统计

在利用bwa mapping获得bam文件后,可以利用samtools对比对的结果进行统计。

# 统计每个样本的整体比对率(primary mapped)和双末端比对(properly paired)
samtools flagstat sample.bam 

# 统计每个样本的覆盖情况(coverage)和平均测序深度(meandepth)
samtools coverage sample.bam 
# 但要注意的是 coverage 参数在低版本的里面是没有的(如1.6),需要使用较新的版本的samtools,如1.21。

# 比对时候的注意事项

  • 在核基因组的SNP分析中如果参考基因组里面组装了叶绿体基因组,则会影响最后比对结果的统计。
  • 首先,叶绿体基因组通常没有重复序列且基因密度高,reads比对到叶绿体的成功率很高,会虚高整体比对率。
  • 其次,叶绿体的超高深度会严重拉高平均深度。
  • 因此,在比对的时候,最好先将染色体序列单独提取出来,进行比对。