關(guān)卡跑通你的第一次分子對(duì)接)
AutoDock Vina 新手上手指南6 個(gè)關(guān)卡跑通你的第一次分子對(duì)接【免費(fèi)下載鏈接】AutoDock-VinaAutoDock Vina項(xiàng)目地址: https://gitcode.com/gh_mirrors/au/AutoDock-Vina你聽(tīng)說(shuō)過(guò) AutoDock Vina 嗎它是目前全球使用最廣、速度最快的開(kāi)源分子對(duì)接引擎之一。簡(jiǎn)單說(shuō)它能預(yù)測(cè)一個(gè)小分子藥物配體會(huì)怎樣鉆進(jìn)蛋白質(zhì)受體的口袋里并穩(wěn)定地待住——這正是藥物發(fā)現(xiàn)中最關(guān)鍵的一步。這篇文章不打算給你一本冷冰冰的操作手冊(cè)而是把它設(shè)計(jì)成一條闖關(guān)路線6 個(gè)關(guān)卡 1 個(gè)隱藏副本 1 個(gè)補(bǔ)給站每關(guān)都有看得見(jiàn)的成果。跟著走完你就擁有了一份屬于自己的、真實(shí)可復(fù)現(xiàn)的分子對(duì)接實(shí)驗(yàn)記錄。先給你一張全程地圖讓你心里有數(shù)——分子對(duì)接從分子結(jié)構(gòu)到最終結(jié)果大致要走完下面三個(gè)環(huán)節(jié)為什么人人都想跑一次分子對(duì)接把藥物找出來(lái)這件事可以理解成一場(chǎng)找鑰匙開(kāi)鎖的游戲蛋白質(zhì)是鎖小分子是鑰匙。一把鑰匙能不能插進(jìn)鎖孔、插得夠不夠緊決定了它有沒(méi)有成為候選藥物的潛力。但蛋白質(zhì)和藥物分子都有幾十到上千個(gè)原子理論上的插法數(shù)以百萬(wàn)計(jì)挨個(gè)試根本不現(xiàn)實(shí)。AutoDock Vina 的價(jià)值就在于它用一套精心設(shè)計(jì)的打分函數(shù)scoring function快速評(píng)估這把鑰匙配這把鎖大概有多合適再用梯度優(yōu)化算法在海量可能性中快速搜索。同樣的任務(wù)它比上一代 AutoDock 4 可以快上最多兩個(gè)數(shù)量級(jí)而且是 Apache 2.0 協(xié)議的開(kāi)源軟件隨便用、隨便改。先記住它的幾個(gè)核心賣點(diǎn)核心優(yōu)勢(shì)具體說(shuō)明? 極速搜索相比 AutoDock 4 最高可提速約 100 倍 完全開(kāi)源Apache 2.0 許可商用學(xué)習(xí)皆可 多打分函數(shù)內(nèi)置 vina / vinardo / ad4 三種選擇 特種分子支持大環(huán)分子、水合對(duì)接、多配體同時(shí)對(duì)接 Python 綁定支持 Python 3可編程批量篩選光看介紹沒(méi)感覺(jué)我們直接開(kāi)局。關(guān)卡一先認(rèn)識(shí)三個(gè)主角——受體、配體與 PDBQT動(dòng)手之前有三個(gè)詞你必須先混個(gè)臉熟否則后面每一步都會(huì)卡殼。受體Receptor通常是蛋白質(zhì)也就是那把鎖。文件里記錄的是它的三維原子坐標(biāo)常見(jiàn)后綴是.pdb。配體Ligand小分子化合物也就是那把鑰匙常見(jiàn)后綴是.sdf、.mol2。PDBQT 格式AutoDock 家族統(tǒng)一的通行證格式。它比普通 PDB 多記錄了每個(gè)原子的部分電荷partial charge和原子類型以及分子的可旋轉(zhuǎn)鍵信息。對(duì)接前受體和配體都必須先轉(zhuǎn)換成 PDBQT這是所有 AutoDock 系軟件的地基。轉(zhuǎn)換工作一般交給一個(gè)叫Meeko的 Python 包來(lái)完成。它的命令行腳本mk_prepare_ligand.py和mk_prepare_receptor.py會(huì)幫你處理質(zhì)子化、加電荷、標(biāo)定可旋轉(zhuǎn)鍵這些繁瑣但決定成敗的細(xì)節(jié)。記住一個(gè)忠告配體文件盡量不要用 PDB 格式因?yàn)樗话瘜W(xué)鍵的連接信息也不要用二維平面結(jié)構(gòu)直接去對(duì)接。多一個(gè)氫、少一個(gè)氫都可能直接改變對(duì)接結(jié)果。這一關(guān)的成果你能說(shuō)出PDBQT 是干什么的、誰(shuí)來(lái)生成它。關(guān)卡二5 分鐘搭好對(duì)接工作臺(tái)好消息是Vina 的工作臺(tái)只需要兩條命令就能搭好。推薦在 conda 或 venv 虛擬環(huán)境里安裝避免污染系統(tǒng) Pythonpip install -U numpy scipy rdkit vina meeko gemmi prody這條命令同時(shí)裝了三類東西vinaVina 的 Python 綁定、meeko配體受體預(yù)處理工具、rdkit/numpy分子與數(shù)值計(jì)算底層。裝完可以用這個(gè)命令確認(rèn)工具是否就位mk_prepare_ligand.py --help如果你想直接拿到 Vina 的可執(zhí)行文件vina而不是只在 Python 里調(diào)用它有兩個(gè)途徑下載預(yù)編譯版本從官方 release 頁(yè)面按系統(tǒng)與架構(gòu)macOS / Linux / Windows下載對(duì)應(yīng)二進(jìn)制文件解壓后即可運(yùn)行。從源碼編譯只建議想折騰或需要魔改的用戶git clone https://gitcode.com/gh_mirrors/au/AutoDock-Vina cd AutoDock-Vina/build/linux/release make編譯前記得裝好 C 編譯器和 Boost 庫(kù)macOS 用brew install boost swigUbuntu/Debian 用apt install libboost-all-dev swig。普通用戶直接走路徑 1 就好源碼方式在官方文檔里也明確標(biāo)注了not meant to be done by regular users。這一關(guān)的成果終端里能敲出vina --help或順利導(dǎo)入from vina import Vina。關(guān)卡三動(dòng)手跑通第一個(gè)對(duì)接示例光說(shuō)不練假把式。項(xiàng)目倉(cāng)庫(kù)里已經(jīng)給你準(zhǔn)備了一套完整的基礎(chǔ)對(duì)接案例真實(shí)分子是抗癌藥伊馬替尼 imatinib 與 c-Abl 激酶正是電影《我不是藥神》里那個(gè)格列衛(wèi)的靶點(diǎn)。先把示例數(shù)據(jù)復(fù)制出來(lái)cp -r example/basic_docking/data/ .第一步準(zhǔn)備受體文件mk_prepare_receptor.py -i 1iep_receptorH.pdb -o 1iep_receptor -p -v \ --box_size 20 20 20 --box_center 15.190 53.903 16.917這條命令做了什么-i指定輸入受體-p表示要生成受體 PDBQT-v表示同時(shí)輸出對(duì)接盒子box的尺寸文件。后面那兩對(duì)參數(shù)是對(duì)接盒子的中心和邊長(zhǎng)——相當(dāng)于你在告訴 Vina別滿世界亂找就在這個(gè) 20×20×20 ? 的立方體里搜。 它對(duì)應(yīng)蛋白質(zhì)的活性口袋位置單位是埃?。第二步準(zhǔn)備配體文件mk_prepare_ligand.py -i 1iep_ligand.sdf -o 1iep_ligand.pdbqt第三步寫下你的點(diǎn)菜清單——配置文件Vina 的配置文件和餐廳點(diǎn)菜清單一個(gè)原理把要傳的參數(shù)都寫進(jìn)一個(gè)文件運(yùn)行時(shí)代理命令行就清爽很多。新建一個(gè)1iep_receptor.box.txt內(nèi)容如下center_x 15.190 center_y 53.903 center_z 16.917 size_x 20.0 size_y 20.0 size_z 20.0第四步啟動(dòng)對(duì)接vina --receptor 1iep_receptor.pdbqt --ligand 1iep_ligand.pdbqt \ --config 1iep_receptor.box.txt \ --exhaustiveness 32 --out 1iep_ligand_vina_out.pdbqt--exhaustiveness是努力程度參數(shù)默認(rèn) 8這個(gè)案例里官方建議調(diào)到 32 以獲得更穩(wěn)定的結(jié)果。--out指定結(jié)果輸出文件。幾秒鐘到幾十秒后終端會(huì)打印出進(jìn)度條和一張結(jié)果表結(jié)果文件1iep_ligand_vina_out.pdbqt里保存了所有找到的結(jié)合構(gòu)象。 恭喜你第一次分子對(duì)接已經(jīng)跑通了這一關(guān)的成果一個(gè)真實(shí)系統(tǒng)的對(duì)接結(jié)果文件。關(guān)卡四這一關(guān)看結(jié)果——affinity、RMSD 與 mode 表跑通不難看懂才算入門。Vina 輸出的核心是下面這樣一張表mode | affinity | dist from best mode | (kcal/mol) | rmsd l.b.| rmsd u.b. ------------------------------------- 1 -13.23 0 0 2 -11.29 0.9857 1.681 3 -11.28 3.044 12.41逐列解釋mode結(jié)合模式編號(hào)從好到差排列。affinity結(jié)合親和力預(yù)測(cè)的結(jié)合自由能單位 kcal/mol。負(fù)值表示能結(jié)合越負(fù)表示結(jié)合越強(qiáng)。這個(gè)案例中 vina 打分函數(shù)下最優(yōu)解大約在 -13 kcal/mol 附近。rmsd l.b. / rmsd u.b.各模式相對(duì)最優(yōu)模式的原子位置差異RMSD均方根偏差用來(lái)衡量這兩種擺法差別有多大。0 表示和最優(yōu)模式完全一致。需要提醒你vina 和 ad4 兩套打分函數(shù)算出的能量不能互相比較它們是兩種不同的尺子。拿到 PDBQT 結(jié)果后如果要在 PyMOL、ChimeraX 里可視化或者轉(zhuǎn)給其他軟件分析建議用 Meeko 轉(zhuǎn)成 SDF 格式——因?yàn)?PDBQT 不記錄化學(xué)鍵級(jí)而 Meeko 能從文件頭部的 SMILES 信息重建正確的鍵連關(guān)系mk_export.py 1iep_ligand_vina_out.pdbqt -s 1iep_ligand_vina_out.sdf這一關(guān)的成果能獨(dú)立解讀一張 mode 表并說(shuō)出分?jǐn)?shù)越負(fù)越好。關(guān)卡五為什么我的結(jié)果和別人不一樣你可能很快會(huì)撞上一個(gè)困惑同樣一條命令多跑幾次結(jié)果卻有細(xì)微差別或者和教程里的截圖對(duì)不上。別慌這不是你裝錯(cuò)了——Vina 的搜索算法是隨機(jī)性的。它的原理可以理解為每次對(duì)接由若干次獨(dú)立探索組成每次從隨機(jī)初始構(gòu)象出發(fā)經(jīng)過(guò)隨機(jī)擾動(dòng) 局部?jī)?yōu)化的迭代最后把各次探索中有希望的結(jié)果合并、聚類、排序。每次探索的起點(diǎn)不同結(jié)果自然有波動(dòng)。那么怎么讓結(jié)果更穩(wěn)定、更可信三招加大--exhaustiveness它控制的正是獨(dú)立探索的次數(shù)。8 是省電模式32 是認(rèn)真模式結(jié)果更穩(wěn)定代價(jià)是更久的運(yùn)行時(shí)間??刂扑阉骺臻g盒子越大搜索難度越高。官方建議盡量不要超過(guò) 30×30×30 ?體積超過(guò) 27000 ?3 會(huì)收到警告。記住Vina 的盒子單位是 ?不是 AutoDock 4 里的格點(diǎn)數(shù)——這是從 AD4 轉(zhuǎn)過(guò)來(lái)的人最常踩的坑。固定隨機(jī)種子--seed參數(shù)可以指定隨機(jī)種子兩次用同一個(gè)種子輸入不變時(shí)結(jié)果完全一致。想要可復(fù)現(xiàn)的實(shí)驗(yàn)記錄這一招很關(guān)鍵。另外輸出構(gòu)象里氫原子的位置是隨意的Vina 用的是聯(lián)合原子打分只考慮重原子。但輸入文件里的氫仍然重要因?yàn)樗鼪Q定哪些原子是氫鍵供體/受體——所以正確質(zhì)子化永遠(yuǎn)是第一優(yōu)先級(jí)。這一關(guān)的成果你會(huì)調(diào)參數(shù)也理解了結(jié)果的隨機(jī)性從何而來(lái)。關(guān)卡六從單個(gè)分子到批量虛擬篩選單個(gè)分子對(duì)接只是熱身現(xiàn)實(shí)中更常見(jiàn)的是一次篩幾百上千個(gè)化合物。Vina 支持兩種批量玩法玩法 A命令行 循環(huán)腳本。把多個(gè)配體各自準(zhǔn)備成 PDBQT寫個(gè)小循環(huán)逐個(gè)對(duì)接for ligand in ligs/*.pdbqt; do vina --receptor receptor.pdbqt --ligand $ligand \ --config box.txt --out out/$(basename $ligand) done玩法 BPython 綁定把整個(gè)流程編程化。項(xiàng)目自帶的示例腳本 example/python_scripting/first_example.py 展示了標(biāo)準(zhǔn)用法from vina import Vina v Vina(sf_namevina) v.set_receptor(1iep_receptor.pdbqt) v.set_ligand_from_file(1iep_ligand.pdbqt) v.compute_vina_maps(center[15.190, 53.903, 16.917], box_size[20, 20, 20]) energy v.score() # 先給當(dāng)前構(gòu)象打分 energy_minimized v.optimize() # 再做個(gè)局部能量最小化 v.write_pose(1iep_ligand_minimized.pdbqt, overwriteTrue) v.dock(exhaustiveness32, n_poses20) # 正式對(duì)接 v.write_poses(1iep_ligand_vina_out.pdbqt, n_poses5, overwriteTrue)切換到ad4或vinardo打分函數(shù)只需把sf_namevina改掉。跑法也很簡(jiǎn)單cd example/python_scripting python first_example.py這一關(guān)的成果你擁有了批量篩 編程控的組合拳。隱藏副本四個(gè)值得玩味的進(jìn)階玩法打通主線后倉(cāng)庫(kù)的example/目錄還藏著幾套隱藏關(guān)卡每個(gè)都對(duì)應(yīng)一個(gè)真實(shí)科研場(chǎng)景玩法場(chǎng)景示例目錄柔性對(duì)接蛋白質(zhì)結(jié)合時(shí)會(huì)變形允許指定殘基側(cè)鏈運(yùn)動(dòng)example/flexible_docking/水合對(duì)接顯式考慮水分子對(duì)結(jié)合的影響example/hydrated_docking/大環(huán)分子對(duì)接處理環(huán)狀大分子如 BACE-1 抑制劑example/docking_with_macrocycles/鋅金屬蛋白針對(duì)含金屬離子的靶點(diǎn)配合 AD4Zn 參數(shù)example/docking_with_zinc_metalloproteins/每個(gè)目錄下都有data/輸入和solution/參考答案你可以先猜結(jié)果再對(duì)照非常適合自學(xué)。想用 AutoDock4 力場(chǎng)的話加上--scoring ad4并傳入預(yù)先算好的親和圖需要autogrid4配合 GPF 文件即可。途中補(bǔ)給站新手高頻翻車現(xiàn)場(chǎng)與避坑手冊(cè)can not open conf.txt 但文件明明存在多半是系統(tǒng)隱藏了擴(kuò)展名你建的文件其實(shí)叫conf.txt.txt。在終端用ls確認(rèn)一下真實(shí)文件名。怎么驗(yàn)證裝好了運(yùn)行vina --help看有沒(méi)有正常輸出或python -c from vina import Vina檢查 Python 綁定。--out是什么它取代了老教程里的--all舊教程的命令照抄會(huì)報(bào) usage error。為什么--num_modes 20只輸出了 9 個(gè)模式它只是輸出數(shù)量的上限實(shí)際輸出還受內(nèi)部搜索和--energy_range限制。改了電荷怎么結(jié)果沒(méi)變化正常Vina 有自己處理靜電的方式忽略用戶提供的部分電荷。結(jié)果解不開(kāi)就反復(fù)跑先檢查盒子單位是不是寫錯(cuò)了、分子有沒(méi)有正確質(zhì)子化、搜索空間是不是太大。搞不清就按官方 FAQ 的思路逐條排查。更多問(wèn)題與解答集中在官方文檔 docs/source/faq.rst建議通讀一遍能幫你省下大量踩坑時(shí)間。通關(guān)之后給你的學(xué)習(xí)路徑與下一步建議如果你一路闖到這里恭喜你已經(jīng)完成了從聽(tīng)說(shuō)過(guò)分子對(duì)接到能獨(dú)立完成并解讀一次對(duì)接實(shí)驗(yàn)的跨越。接下來(lái)可以這樣規(guī)劃第一周 · 打牢基本功把基礎(chǔ)對(duì)接、結(jié)果解讀、參數(shù)調(diào)優(yōu)各練三遍直到不看文檔也能默寫出整條命令。第二周 · 處理真實(shí)數(shù)據(jù)去 PDB 數(shù)據(jù)庫(kù)下載一個(gè)感興趣的蛋白自己從去水、加氫、定盒子開(kāi)始走完整流程。第三周 · 玩轉(zhuǎn)批量用 Python 綁定寫一個(gè)自己的小腳本對(duì)一組配體做虛擬篩選并對(duì)結(jié)果排序。第四周 · 挑戰(zhàn)進(jìn)階玩法挑一個(gè)隱藏副本推薦從水合對(duì)接入手體會(huì)考慮越多模型越接近真實(shí)的樂(lè)趣。更深度的材料都在項(xiàng)目里基礎(chǔ)教程見(jiàn) docs/source/docking_basic.rstPython 編程見(jiàn) docs/source/docking_python.rst完整文檔目錄在 docs/source/所有示例在 example/。每次實(shí)驗(yàn)記得記錄參數(shù)、保存日志、統(tǒng)一命名——好習(xí)慣會(huì)隨著你的實(shí)驗(yàn)越做越復(fù)雜而越來(lái)越值錢。分子對(duì)接不是一門看書就能會(huì)的技術(shù)它是練出來(lái)的手感。從最簡(jiǎn)單的鑰匙鎖孔開(kāi)始一次一次地試你的判斷力會(huì)肉眼可見(jiàn)地增長(zhǎng)。鑰匙與鎖的故事每天都在真實(shí)的藥物研發(fā)里上演而你已經(jīng)拿到了入場(chǎng)券。 現(xiàn)在去跑通屬于你的第一個(gè)分子對(duì)接實(shí)驗(yàn)吧【免費(fèi)下載鏈接】AutoDock-VinaAutoDock Vina項(xiàng)目地址: https://gitcode.com/gh_mirrors/au/AutoDock-Vina創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考