标准的基因变异命名由人类基因组变异协会(the Human Genome Variation Society,HGVS)维护和版本化,除非另有说明,一般推荐该命名法作为确定变异命名的首要准则。
实验室应该注意他们在实验方法中所使用的版本。当描述变异时,可利用这些工具提供正确的HGVS命名(http://mutalyzer.nl)。临床报告应该包含参考序列以确保该变异在DNA水平上的明确命名,并提供编码和蛋白质命名法来协助功能注释(如“g”为基因组序列,“c”为编码DNA序列,“p”为蛋白质,“m”为线粒体)。
由于MNV(Multiple Nucleotide Variants)或MNPs (Multiple Nucleotide Polymorphisms)等复杂变异形式的存在再结合目前主流的变异注释软件VEP、Annovar、SnpEff等给出的变异注释都或多或少的存在一定的差异。因此,对于同一种变异注释HGVS中也会给出不同类型的注释结果。
那么有没有一个最具有代表性的变异注释结果呢?
答案是肯定的。
今天,小编为大家推荐的一款python分析模块:hgvs(https://github.com/biocommons/hgvs)
举例:
NM_004448.3:c.2310_2311insGCATACGTGATG,其对应的标准的hgvs的结果是:
NM_004448.3:c.2313_2324dup
NP_004439.2:p.Tyr772_Ala775dup
NM_004448.3:c.2313_2324dup
NP_004439.2:p.Tyr772_Ala775dup
最后,呈上小编亲笔代码:
import hgvs.parser
import hgvs.dataproviders.uta
import hgvs.assemblymapper
import hgvs.normalizer
import sys
def run(hgvs_c):
#hgvs_c = 'NM_004448.3:c.2310_2311insGCATACGTGATG'
hp = hgvs.parser.Parser()
hdp = hgvs.dataproviders.uta.connect()
hn = hgvs.normalizer.Normalizer(hdp)
var_c=hn.normalize(hp.parse_hgvs_variant(hgvs_c))
#################################################可以从基因翻译到蛋白
am = hgvs.assemblymapper.AssemblyMapper(hdp,assembly_name='GRCh37', alt_aln_method='splign',replace_reference=True)
var_p = am.c_to_p(var_c)
var_p.posedit.uncertain = False
return (str(var_c),str(var_p))
if __name__=="__main__":
if (len(sys.argv)!=2):
print("e.g:python3 %s NM_004448.3:c.2310_2311insGCATACGTGATG"%(sys.argv[0]))
print("\nEmail:fanyucai1@126.com")
else:
run(sys.argv[1])
参考文献:
1. Wang M, Callenberg K M, Dalgleish R, et al. hgvs: A Python package for manipulating sequence variants using HGVS nomenclature: 2018 Update[J]. Human mutation, 2018, 39(12): 1803-1813.
2. Hart R K, Rico R, Hare E, et al. A Python package for parsing, validating, mapping and formatting sequence variants using HGVS nomenclature[J]. Bioinformatics, 2014, 31(2): 268-270.