玩转ChatGPT:批量下载Alphafold的蛋白pdb文件

一、写在前面

突发奇想,想批量下载Alphafold网站的蛋白pdb文件,后续再做个分子对接用。又不想手动下载,来求助CSDN和GPT。

二、CSDN白嫖基础代码

CSDN大神多,这不,找到一个:
Alphafold批量下载蛋白的pdb文件_pdb文件下载-CSDN博客

不过使用的是谷歌浏览器,我自己用的是Edge浏览器,因此需要魔改。

三、GPT魔改代码

话不多说,直接上步骤。

(1)安装Selenium包

selenium是自动化测试工具,可以理解为Python使用它来操作网页。

安装代码:

python 复制代码
pip install selenium 

或者

python 复制代码
conda install selenium

(2)安装 Selenium驱动

Selenium需要一个驱动程序来与所选的浏览器交互,不同浏览器驱动不同。

我的是Edge浏览器,下载地址:

Microsoft Edge WebDriver - Microsoft Edge Developer

当然,是有版本区别的,因此,先看看我们的版本号:

下载相应版本的驱动:

解压,但是要记住放的路劲地址,比如我的是:O:/msedgedriver.exe

(3)GPT魔改后的代码

咒语要点主要是告诉GPT我们使用的是Edge浏览器、驱动放置的地点等,经过几轮Debug,代码如下:

python 复制代码
import os
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.edge.service import Service
from selenium.webdriver import EdgeOptions
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

# Constants
EDGE_DRIVER_PATH = r'O:/msedgedriver.exe'
WORK_PATH = r"O:/"
PROTEIN_FILE = "test1.txt"
XPATH_DOWNLOAD_LINK = "//*[@id=\"main-content-area\"]/app-entry/div[1]/div/app-summary-text/div/div[1]/div[2]/a[1]"
PAGE_LOAD_TIMEOUT = 2500
EXPLICIT_WAIT_TIMEOUT = 30  # 设置显式等待的超时时间

# Edge Options
edge_options = EdgeOptions()
# edge_options.add_argument('--headless')
edge_options.add_argument('--disable-gpu')
service = Service(executable_path=EDGE_DRIVER_PATH)

# Change working directory
os.chdir(WORK_PATH)

# Read proteins from file
with open(PROTEIN_FILE, "r") as f:
    proteins = [line.strip() for line in f.readlines()]

failed_downloads = []

# Initialize browser instance
with webdriver.Edge(service=service, options=edge_options) as driver:
    driver.set_page_load_timeout(PAGE_LOAD_TIMEOUT)
    wait = WebDriverWait(driver, EXPLICIT_WAIT_TIMEOUT)

    for protein_id in proteins:
        print(f"{protein_id} is downloading!")
        driver.get(f"https://alphafold.ebi.ac.uk/entry/{protein_id}")
        
        try:
            download_link = wait.until(EC.element_to_be_clickable((By.XPATH, XPATH_DOWNLOAD_LINK)))
            download_link.click()
            time.sleep(4)  # Wait for the file to download
            print(f"{protein_id} succeed!")
        except Exception as e:
            print(f"{protein_id} download failed!")
            failed_downloads.append(protein_id)

# Write failed downloads to file
with open("failed.txt", "w") as df:
df.write("\n".join(failed_downloads))

(4)运行

首先,把需要下载的蛋白的Uniport的ID整理到一个txt文件,蛋白后面不要有空格,一个蛋白一行!!!我的保存路劲为: O:/。

准备就绪,运行代码:

批量下载Alphafold的蛋白pdb文件

可以看到,自动打开网页,点击下载,简单粗暴有内涵~

相关推荐
wangruofeng1 小时前
ChatGPT Images 2.5 技术解读:图像生成从能力展示转向工程体验
chatgpt·aigc·openai
請你喝杯Java7 小时前
网站部署平台怎么选:Vercel、Cloudflare、ChatGPT Sites 的区别、费用与国内访问
chatgpt·cloudflare·vercel
dunge20267 小时前
2026年9月8日|ChatGPT Pro + Codex:用 GPT‑6 Astra 重做自动化测试
gpt·chatgpt
精彩AI说7 小时前
ChatGPT整理SOP总是步骤不完整?流程拆解、输入输出与异常情况整理方法
chatgpt·流程管理·ai工具·办公效率·sop
承渊政道8 小时前
【从零开始大模型开发与微调:基于PyTorch与ChatGLM】(实战训练自己的ChatGPT从续写模型到对齐助手:RLHF、奖励模型与PPO精读)
人工智能·pytorch·chatgpt·预训练·rlhf·大模型微调
乃嘿仔20 小时前
AI 热点日报 · 2026-09-04
人工智能·chatgpt
ServBay21 小时前
GPT-6 Astra 发布,当 AI 开始自己操作电脑,AGI 还远吗?
gpt·chatgpt·openai
精彩AI说1 天前
ChatGPT照着参考文档改内容为什么总跑偏?模板结构、字段对应与格式约束方法
chatgpt·ai工具·办公效率·文档整理·chatgpt教程·模板改写
浩风祭月1 天前
GPT-6 Astra API怎么接?Responses API迁移、异步工具调用与兼容项清单
人工智能·chatgpt·大模型·openai api·gpt-6 astra
七牛开发者1 天前
HarnessDev:让 LLM 自己创建并迭代 Agent Harness
chatgpt·llm·agent