小编已经从原始的perl代码转到python的大部队中,越深入就越觉得python的强大。顺便说一句小编自我经验关于学习一门编程语言的最好方式不是要看多少书,而是在解决问题中不断成长提高。
对于一个COSMIC数据库的变异往往注释信息如下:
COSM5424184被认定为一个snp:
COSM2240643不被认定为一个somatic位点:
COSM3677745被认定是一个somatic突变:
OK,问题来了对于一个cosmicID我想获得Ever confirmed somatic?(Yes or No)的结果甚至还是一个确定的SNP位点。闲言碎语不多讲直接上代码:
import requests
from bs4 import BeautifulSoup
import re
id=input("please input COSMIC ID(e.g:COSM3677745):")
pattern=re.compile(r'\d+')
num=pattern.findall(id)
url="https://cancer.sanger.ac.uk/cosmic/mutation/overview?genome=37&id=%s" %(num[0])
res=requests.get(url)
ret = res.text
soup=BeautifulSoup(ret,'html.parser')
dbsnp=soup.find_all(text=re.compile("has been flagged as a SNP."))
dt = soup.find_all('dt')
dd = soup.find_all('dd')
for i in range(len(dt)):
if dt[i].string == "Ever confirmed somatic?":
print("%s\t%s" % (id, dd[i].string))
if dbsnp!=[]:
print("%s\tSNP" % (id))
最后命令行运行:
Python3 test.py
Please input COSMIC ID(e.g:COSM3677745):COSM3677745
COSM3677745 Yes
怎么样,是不是很简单。