还是来更新一下clinvar吧

主要是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官方提供了自己的转换脚本,可以看这里。但是王凯老师没有给出建索引的脚本。