web自动化 从excel 单倍型位置数据读取到网页碱基序列,自动填写NCBI的blast表单 并提交自动化流程

#导入数据库
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()

猜你喜欢

转载自blog.csdn.net/qq_40256654/article/details/86293432