web自動化 從excel 單倍型位置資料讀取到網頁鹼基序列,自動填寫NCBI的blast表單 並提交自動化流程
阿新 • • 發佈:2019-01-13
#匯入資料庫 import requests import pandas as pd from selenium import webdriver import time import pyperclip from selenium.webdriver.common.keys import Keys #鹼基位置引數資訊提取 d1 = pd.read_excel('D:/GWAS全套資料庫/haploview單倍型/單倍型分析結果.xlsx',sheetname='連鎖區間位置總結',header=0) d1 d2=d1.iloc[:,11] d2 d3=list(d2) d3 len(d3) d3[36:] #通過觀察構造URL url_pre= 'http://may2017.archive.ensembl.org/Sus_scrofa/Export/Output/Location?db=core;flank3_display=0;flank5_display=0;output=fasta;r=' url_last=';strand=feature;peptide=yes;coding=yes;utr3=yes;utr5=yes;intron=yes;genomic=unmasked;cdna=yes;exon=yes;_format=Text' #遍歷esmbel,爬取單倍型鹼基序列,blast比對 for i in d3[36:]: #爬取單倍型的鹼基序列 url = url_pre + str(i) + url_last r = requests.get(url) time.sleep(20) #開啟Firefox瀏覽器,做blast比對 browser = webdriver.Firefox() browser.get('https://blast.ncbi.nlm.nih.gov/Blast.cgi?PROGRAM=blastn&PAGE_TYPE=BlastSearch&LINK_LOC=blasthome') time.sleep(20) #定位輸入鹼基資料的位置 linkElem = browser.find_element_by_xpath('//*[@id="seq"]') type(linkElem) linkElem.click() type(r.text) pyperclip.copy(r.text) pyperclip.paste() linkElem.send_keys(Keys.CONTROL,'v' ) time.sleep(20) #定位選擇人類基因組的位置,並click選擇,提交 linkElem = browser.find_element_by_xpath('//*[@id="Rhc"]') linkElem.click() linkElem.submit()