【发布时间】:2015-11-17 15:26:40
【问题描述】:
我有一位同事的任务是将患者样本中的丙型肝炎病毒基因序列提交到特定网站的请求表中,然后识别突变,从而提供有关潜在耐药性的信息。
这非常麻烦,需要几天时间。
我的想法是使用urllib2 使用 Python 脚本自动执行此操作(我不能使用 mechanize,我必须在 MAC OS 上进行开发,由于我既不了解 Python setup.py install 也不了解 pip mechanize install 工作的原因 - 所以我必须到urllib2)。
我的第一次尝试是访问相应的网站并首先提交样本基因序列。 (在原始网站上,您只需将序列粘贴到名为“或粘贴”的输入字段中,然后按“开始”。)
在下一页,你会得到结果,我想通过正则表达式读出突变。
我的第一次尝试:
import url lib
import urllib2
url = 'http://hcv.geno2pheno.org/index.php'
form_data = {'or paste in:': 'CTTCACGGAGGCTATGACGAGGTACTCCGCTCCCCCCGGGGACCCCCCCCAACCAGAATACGACTTGGAGCTCATAACATCGTGCTCCTCTAACGTGTCAGTCGCCCACGACGGCGCTGGAAAAAGGGTCTACTACCTTACCCGTGACCCTACAACCCCCCTCGCAAGAGCTGCGTGGGAGACAGCAAGACACACTCCAGTCAATTCCTGGCTAGGCAACATAATCATGTTTGCCCCCACATTGTGGGCGAGAATGATACTGATGACCCACTTCTTCAGTGTCCTCATCGCCAGGGATCAACTTGAACAGGCCCTTGATTGCGAAATCTACGGAGCCTGCTACTCCATTCAACCACTGGACCTACCTCCAATCATTCAAAGACTCCATGGCCTTAGCGCATTTTCACTCCACAGTTACTCTCCAGGTGAAATCAATAGGGTGGCCGCATGCCTCAGGAAACTTGGGGTCCCGCCCTTGCGAGCTTGGAGACACCGGGCCCGGAGCGTCCGCGCTAAGCTTCTGTCCAGAGGAGGCAGGGCTGCCATATGTGGCAAGTACCTCTTCAATTGGGCAGTAAGAACAAAGCTCAAACTCACTCCAATAGCGGCCGCTGGCCAGCTGGACTTGTCCGGCTGGTTCACGGCTGGCTACAGCGGGGGAGACATTTATCACAGCGTGTCTC'}
params = urllib.urlencode(form_data)
response = urllib2.urlopen(url, params)
data = response.read()
print data
我从“数据”得到的是来自http://hcv.geno2pheno.org/index.php 的源代码,而不是来自以下结果页面。
因此,我有两个问题:
1) 如何确定我的序列已正确粘贴到输入字段“或粘贴:”中?
2) 如何访问结果页面的源代码以便应用正则表达式?
【问题讨论】:
-
pip mechanize install不起作用,因为您将 mechanize 作为第一个参数传递给 pip,而它应该是pip install mechanize -
谢谢威尔伯!但我仍然无法安装它。它总是说我没有权限这样做,即使以管理员身份登录....