ANNOVAR是一款功能强大的基因组变异注释软件,由王凯博士开发,广泛应用于遗传学研究和临床诊断领域。它能够对基因组中的变异位点进行多功能注释,帮助研究人员理解变异的生物学意义。最近使用的时候发现有一个报错经常出现但是没有特别清晰的原因解读。报错如下:
Error: invalid record found in exonic_variant_function file (exonic format error)
通常来说我们都是基于自己的基因组fa和gff3文件来做vcf文件的注释。因此通用的使用教程如下:
1.1. 从gff得到gtf
gffread gff3文件 -T -o gtf文件
1.2. 构建注释库,前缀保持一致
# 用 gtfToGenePred 工具将 GTF file 转换 GenePred file
gtfToGenePred -genePredExt gtf文件 库前缀_refGene.txt
# 用retrieve_seq_from_fasta.pl生成 transcript FASTA file
retrieve_seq_from_fasta.pl --format refGene --seqfile fa --outfile 库前缀_refGeneMrna.fa 库前缀_refGene.txt
1.3. 注释
table_annovar.pl vcf文件 注释库所在文件夹 -buildver 库前缀 -out 输出前缀-remove -protocol refGene -operation g -nastring . -vcfinput
这个报错一般是在运行第三步注释的时候出现,发生在处理基因变异数据时,coding_change.pl 脚本无法正确解析exonic_variant_function文件中的特定行格式。
Error: invalid record found in exonic_variant_functionfile (exonic format error)
coding_change.pl脚本是在数据转化(convert2annovar.pl)、注释(annotate_variation.pl)完成之后会运行的脚本,table_annovar.pl会自动调用这三个脚本。coding_change.pl的运行命令如下:
coding_change.pl 前缀.refGene.exonic_variant_function.orig 库文件夹/库前缀_refGene.txt 库文件夹/库前缀_refGeneMrna.fa -alltranscript -out 前缀.refGene.fa -newevf 前缀refGene.exonic_variant_function
coding_change.pl的第77行:
$field[2] =~ m/^[\w\-\.\@\/]+?:([\w\.]+?):exon\d+:c.([\w\->]+)(:p.([\w\*]+))?/ or die "Error: invalid record found in exonic_variant_function file (exonic format error): <$_>";
经过排查,发现问题出在正则表达式与数据格式不匹配上:
正则表达式:^[\w\-\.\@\/]+?:([\w\.]+?):exon\d+:c.([\w\->]+)(:p.([\w\*]+))?
第一部分:基因名字:^[\w\-\.\@\/]+?:
匹配范围:字母、数字、下划线、连字符、点、@符号、斜杠,后跟冒号
第二部分:mRNA名字:([\w\.]+?):
匹配范围:只匹配字母、数字、下划线和点,后跟冒号
第三部分:外显子编号:exon\d+:
匹配范围:exon后跟数字,再跟冒号
第四部分:CDS上的变化:c.([\w\->]+)
匹配范围:c.后跟字母、数字、下划线、连字符、大于号
第五部分:蛋白上的变化:(:p.([\w\*]+))?
匹配范围:可选的 :p.后跟字母、数字、下划线、星号
本次产生报错的原因是,第二部分RNA名称中存在”-“这种无法识别的符号。因此只要把mRNA名字里面的不识别符号替换掉就可以了。
替换可以使用命令:sed -i "s/rna-/rna_/g" gtf文件
然后再重新运行第一部分的命令就可以了!
参考:
https://github.com/WGLab/doc-ANNOVAR
https://www.jianshu.com/p/461f2cd47564
https://www.jianshu.com/p/20b316b15b1a
https://www.jianshu.com/p/20b316b15b1a
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!