主要是annovar中的clinvar数据库,是20190305的版本,太久没有更新了。
以前也写过一篇clinvar的格式调整,但是貌似已经不适用了。按照以往的方式在ncbi的ftp中找到最新的clinvar并且下载下来然后解压。
wget ftp://ftp.ncbi.nlm.nih.gov/pub/clinvar/vcf_GRCh37/clinvar_20200106.vcf.gz
gunzip clinvar_20200106.vcf.gz
然后按照annovar里的格式,撸了个python脚本进行解析
origin = open("clinvar_20200106.vcf", "r")
annovar = open("hg19_clinvar_20200106.txt", "w")
annovar.write("#Chr\tStart\tEnd\tRef\tAlt\tCLNALLELEID\tCLNDN\tCLNDISDB\tCLNREVSTAT\tCLNSIG\n")
for line in origin:
if line.startswith("#"):
continue
else:
lines = line.split("\t")
chrom = lines[0]
pos = lines[1]
# ID = lines[2]
ref = lines[3]
alt = lines[4]
infos = lines[7].split(";")
Chr = chrom
Start = pos
End = int(pos) + len(ref) - 1
Ref = ref
Alt = alt
CLNALLELEID = "."
CLNDN = "."
CLNDISDB = "."
CLNREVSTAT = "."
CLNSIG = "."
for i in infos:
if "ALLELEID" in i:
CLNALLELEID = i.split("=")[1]
elif "CLNDN" in i:
CLNDN = i.split("=")[1].replace(",", "\\x2c")
elif "CLNDISDB" in i:
CLNDISDB = i.split("=")[1].replace(",", "\\x2c")
elif "CLNREVSTAT" in i:
CLNREVSTAT = i.split("=")[1].replace(",", "\\x2c")
elif "CLNSIG" in i:
CLNSIG = i.split("=")[1]
else:
continue
output = [Chr, Start, str(End), Ref, Alt, CLNALLELEID, CLNDN, CLNDISDB, CLNREVSTAT, CLNSIG]
annovar.write("\t".join(output) + "\n")
annovar.close()
origin.close()
应该是可以用的。最后按这里的方式用perl建个索引,扔到humandb里就ok了。
上面这个是可以用的!
当然annovar官方提供了自己的转换脚本,可以看这里。但是王凯老师没有给出建索引的脚本。