AlphaPulldown 完全保持與 1.x 版本的輸入檔和腳本的向後相容性。
AlphaPulldown:版本 2.0.0(測試版)
目錄
關於 AlphaPulldown
概述
Alphafold 資料庫
Snakemake AlphaPulldown
1. 安裝
2. 配置
3、執行
運行 AlphaPulldown Python 命令列介面
建立 Jupyter 筆記本
建立結果表
下一步
下一步
2.1.基本運行
2.2.使用 SLURM 運行範例(EMBL 叢集)
2.3.下拉模式
2.4.全部對全部模式
2.5.使用自訂模板運行 (TrueMultimer)
2.6。使用交聯資料運行 (AlphaLink2)
輸入
腳本執行:結構預測
輸出
下一步
輸入
腳本執行
輸出和下一步
多輸入“下拉”模式
輸出和下一步
輸入
TrueMultimer 結構預測的腳本執行
輸出和下一步
輸入
透過 AlphaPulldown 運行 AlphaLink2 預測
輸出和下一步
1.1.基本運行
1.2. SLURM(EMBL 叢集)的範例 bash 腳本
1.3.使用 MMseqs2 和 ColabFold 資料庫運行(更快)
1.4.使用自訂模板運行 (TrueMultimer)
輸入
腳本執行
輸出
下一步
輸入
腳本執行
下一步
遠端運行 MMseqs2
輸出
本地運行 MMseqs2
下一步
輸入
腳本執行
輸出
下一步
0.1。創建Anaconda環境
0.2。使用 pip 安裝
0.3。安裝下游分析工具
0.4。透過 AlphaLink2 安裝交叉連結輸入資料(可選!)
0.5。開發者安裝
0. 安裝
1. 計算多序列比對(MSA)和模板特徵(CPU階段)
2. 預測結構(GPU階段)
3. 分析與視覺化
下游分析
減小 AlphaPulldown 輸出的大小
將模型從 PDB 格式轉換為 ModelCIF 格式
1.將所有模型轉換為單獨的ModelCIF文件
2. 只為每個複合體轉換特定的單一模型
3. 擁有代表性模型並保留關聯模型
相關郵編檔案
雜項選項
Jupyter筆記本
結果表
結果管理腳本
特徵資料庫
列出可用的生物體:
下載特定蛋白質特徵:
下載有機體的所有特徵:
步驟:
驗證安裝:
安裝
配置
下載功能
AlphaPulldown 是 AlphaFold-Multimer 的客製化實現,專為蛋白質-蛋白質相互作用的可自訂高通量篩選而設計。它透過合併其他運行選項來擴展AlphaFold 的功能,例如可自訂的多聚體結構模板(TrueMultimer)、透過ColabFold 資料庫的MMseqs2 多序列比對(MSA)、蛋白質片段預測以及使用AlphaLink2 將質譜資料合併為輸入的能力。
AlphaPulldown 可以透過兩種方式使用:透過由python 腳本組成的兩步驟管道,或透過整個Snakemake 管道。有關使用 Snakemake 管道的詳細信息,請參閱單獨的 GitHub存儲庫。
圖1 AlphaPulldown工作流程概述
AlphaPulldown 工作流程涉及以下 3 個步驟:
建立和儲存 MSA 和模板功能:
在此步驟中,AlphaFold 使用 HMMER 搜尋預先安裝資料庫中的每個查詢的蛋白質序列,並計算所有找到的同源物的多重序列比對 (MSA)。它還搜尋同源結構以用作特徵生成的模板。這一步只需要CPU。
可自訂的選項包括:
為了加快搜尋過程,可以使用 MMSeq2 來取代預設的 HHMER。
使用自訂 MSA。
使用自訂結構模板,包括多聚體模板(TrueMultimer 模式)。
結構預測:
在此步驟中,AlphaFold 神經網路運作並產生最終的蛋白質結構,需要 GPU。 AlphaPulldown 的一個關鍵優勢是它能夠靈活定義蛋白質如何組合以預測蛋白質複合物的結構。以下是您可以使用的三種主要方法:
圖2 AlphaPulldown涵蓋的三種典型場景
此外,AlphaPulldown 還允許:
僅選擇您想要預測的蛋白質區域,而不是全長序列。
調整 MSA 深度以控制初始 MSA 對最終模型的影響。
透過 AlphaLink2 將高通量交聯資料與 AlphaFold 建模整合。
單一文件(自訂模式或同源寡聚體模式):建立一個文件,其中每行列出您想要一起預測的蛋白質序列,或每行告訴程式使用您指定的拷貝數對同源寡聚體進行建模。
多個文件(下拉模式):提供多個文件,每個文件包含蛋白質序列。 AlphaPulldown 將透過配對每個檔案中的蛋白質名稱行來自動產生所有可能的組合。
全部與全部:AlphaPulldown 將產生清單中所有可能的非冗餘蛋白質組合。
下游結果分析:
可以使用以下選項之一對所有預測模型的結果進行系統化:
包含蛋白質複合物相互作用的各種分數和物理參數的表格。
帶有互動式 3D 蛋白質模型和 PAE 圖的 Jupyter 筆記本。
對於標準 MSA 和特徵計算,AlphaPulldown 需要遺傳資料庫。檢查您是否已按照 AlphaFold 文件中的說明下載了必要的參數和資料庫(例如 BFD、MGnify 等)。您應該有一個結構如下的目錄:
alphafold_database/ # Total: ~ 2.2 TB (download: 438 GB)
bfd/ # ~ 1.7 TB (download: 271.6 GB)
# 6 files.
mgnify/ # ~ 64 GB (download: 32.9 GB)
mgy_clusters_2018_12.fa
params/ # ~ 3.5 GB (download: 3.5 GB)
# 5 CASP14 models,
# 5 pTM models,
# 5 AlphaFold-Multimer models,
# LICENSE,
# = 16 files.
pdb70/ # ~ 56 GB (download: 19.5 GB)
# 9 files.
pdb_mmcif/ # ~ 206 GB (download: 46 GB)
mmcif_files/
# About 227,000 .cif files.
obsolete.dat
pdb_seqres/ # ~ 0.2 GB (download: 0.2 GB)
pdb_seqres.txt
small_bfd/ # ~ 17 GB (download: 9.6 GB)
bfd-first_non_consensus_sequences.fasta
uniref30/ # ~ 86 GB (download: 24.9 GB)
# 14 files.
uniprot/ # ~ 98.3 GB (download: 49 GB)
uniprot.fasta
uniref90/ # ~ 58 GB (download: 29.7 GB)
uniref90.fasta
筆記
Uniclust30是2019年之前產生的資料庫版本,UniRef30是2019年後產生的資料庫版本。這個版本可以透過這個腳本下載。或者,請使用 create_individual_features.py 的 --uniref30_database_path 標誌覆蓋 uniref30 資料庫的預設路徑。
筆記
由於所有遺傳資料庫的本機安裝都非常消耗空間,因此您也可以使用遠端執行的 MMseqs2 和 ColabFold 資料庫。請按照相應的說明進行操作。但是,為了讓 AlphaPulldown 發揮作用,您必須下載儲存在 AlphaFold 資料庫的params/
目錄中的參數。
AlphaPulldown 可用作 Snakemake 管道,可讓您順序執行(1) MSA 和模板特徵的生成, (2)結構預測,以及(3)結果分析,而無需在步驟之間進行手動幹預。有關更多詳細信息,請參閱AlphaPulldownSnakemake存儲庫。
警告
Snakemake 版本的 AlphaPulldown 在輸入檔案規格方面與傳統的基於腳本的 AlphaPulldown 略有不同。
在安裝之前,請確保您的 python 版本至少為 3.10。
python3——版本
安裝依賴項
pip安裝snakemake==7.32.4snakedeploy==0.10.0pulp==2.7click==8.1cookiecutter==2.6
Snakemake 叢集設置
為了允許 Snakemake 與計算集群交互,我們將使用 SLURM 的 Snakemake-Profile。如果您不使用 SLURM 集群,您可以在此處找到不同架構的設定檔。下面將建立一個可與 Snakemake 一起使用的設定文件,並提示您提供一些附加資訊。
git 克隆 https://github.com/Snakemake-Profiles/slurm.git profile_dir =“$ {HOME}/.config/snakemake”mkdir -p“$ profile_dir”template =“gh:Snakemake-Profiles / slurm”cookiecutter --output-dir“$ profile_dir”“$ template”
在設定過程中,系統將提示您回答幾個設定問題。以下是問題和建議的答案:
profile_name [slurm]:
slurm_noSidecar
Select use_singularity:
1 (False)
Select use_conda:
1 (False)
jobs [500]:
按 Enter 接受預設值)
restart_times [0]:
按 Enter 接受預設值)
max_status_checks_per_second [10]:
按 Enter 接受預設值)
max_jobs_per_second [10]:
按 Enter 接受預設值)
latency_wait [5]:
30
Select print_shell_commands:
1 (False)
sbatch_defaults []:
qos=低節點=1
Select cluster_sidecar:
2 (否)
cluster_name []:
按 Enter 鍵留空)
cluster_jobname [%r_%w]:
按 Enter 接受預設值)
cluster_logpath [logs/slurm/%r/%j]:
按 Enter 接受預設值)
cluster_config []:
按 Enter 鍵留空)
回應這些提示後,您的 Snakemake 名為slurm_noSidecar的 Slurm 設定檔將按照指定進行設定。
奇點(可能已安裝) :此管道使用容器來實現可重複性。如果您正在處理的 EMBL 叢集奇點已經安裝,則可以跳過此步驟。否則,請使用 Singularity 官方指南安裝 Singularity。
下載管道:這將下載snakemake管道的「--tag」指定的版本,並建立儲存庫AlphaPulldownSnakemake或您選擇的任何其他名稱。
Snakedeploy 部署工作流程 https://github.com/KosinskiLab/AlphaPulldownSnakemake AlphaPulldownSnakemake --tag 1.4.0cd AlphaPulldownSnakemake
筆記
如果你想使用 GitHub 上的最新版本,請將--tag XXX
替換為--branch main
安裝 CCP4 軟體包:若要安裝分析步驟所需的軟體,請依照下列說明操作:
使用我們的分析軟體包下載所謂的奇點影像
奇點拉 docker://kosinskilab/fold_analysis:latest 奇點建置 --sandboxFold_analysis_latest.sif
從 https://www.ccp4.ac.uk/download/#os=linux 下載 CCP4 並複製到您的伺服器
tar xvzf ccp4-9.0.003-linux64.tar.gzcd ccp4-9 cp bin/pisa bin/sc <可寫入映像目錄>/軟體/ cp /lib/* <可寫入映像目錄>/software/lib64/
建立包含 CCP4 的新奇點
cd <要儲存本機軟體的目錄>singularity build Fold_analysis_latest_withCCP4.sif
它應該創建fold_analysis_latest_withCCP4.sif
檔。
現在您可以刪除
根據您的特定用例調整config/config.yaml
。
如果要使用CCP4進行分析,請在文字編輯器中開啟config/config.yaml
並將分析容器的路徑變更為:
Analysis_container:“/path/to/fold_analysis_latest_withCCP4.sif”
input_files此變數保存樣本表的路徑,其中每一行對應一個折疊作業。對於此管道,我們使用以下格式規格:
protein:N:start-stop[_protein:N:start-stop]*
其中 Protein 是帶有「.fasta」副檔名或 uniprot ID 的檔案的路徑,N 是該特定蛋白質的單體數量,start 和 stop 是應該預測的殘基。然而,只需要蛋白質,N、start和stop可以省略。因此,包含殘基 1-50 的蛋白質範例的以下折疊作業是等效的:
example:2 example_example example:2:1-50 example:1-50_example:1-50 example:1:1-50_example:1:1-50
這種格式類似地擴展了異聚體的折疊:
example1_example2
假設您有兩個範例表 config/sample_sheet1.csv 和 config/sample_sheet2.csv。以下相當於計算sample_sheet1.csv 中的全部與全部:
input_files : - config/sample_sheet1.csv - config/sample_sheet1.csv
而下面的程式碼片段相當於計算sample_sheet1.csv和sample_sheet2.csv之間的下拉
input_files : - config/sample_sheet1.csv - config/sample_sheet2.csv
此格式可以擴展到任意數量的文件,但請記住折疊數量將急劇增加。
input_files : - config/sample_sheet1.csv - config/sample_sheet2.csv - ...
alphafold_data_directory這是 alphafold 資料庫的路徑。
output_directory Snakemake 會將管道輸出寫入此目錄。如果不存在,則會建立它。
save_msa、use_precompulated_msa、predictions_per_model、number_of_recycles、report_cutoff之前傳遞給 AlphaPulldown 的 run_multimer_jobs.py 和 create_notebook.py (report_cutoff) 的命令列參數。
alphafold_inference_threads, alphafold_inference Slurm 特定參數,非專家使用者不需要修改。
only_generate_features如果設定為 True,則在產生特徵後停止,並且不執行結構預測和報告。
執行安裝和設定步驟後,現在可以執行 Snakemake 管道了。為此,請導航到克隆的管道目錄並運行:
蛇形 --使用奇點 --singularity-args "-B /scratch:/scratch -B /g/kosinski:/g/kosinski --nv " --工作 200 --重啟次數5 --設定檔 slurm_noSidecar --重新運行-不完整 --重新運行-觸發時間 --延遲等待 30 -n
以下是每個參數的作用的細分:
--use-singularity
:啟用奇點容器的使用。這允許管道環境的再現性和隔離性。
--singularity-args
:指定直接傳遞給 Singularity 的參數。在提供的範例中:
-B /scratch:/scratch
和-B /g/kosinski:/g/kosinski
:這些是綁定安裝點。它們使您的主機系統中的目錄可以在 Singularity 容器中存取。 --nv
確保容器可以使用主機 GPU。
--profile name_of_your_profile
:指定要使用的 Snakemake 設定檔(例如,您為叢集執行設定的 SLURM 設定檔)。
--rerun-triggers mtime
:如果特定檔案(觸發器)的修改時間晚於作業輸出,則重新執行作業。在這裡, mtime
檢查檔案修改時間。
--jobs 500
:允許最多 500 個作業同時提交到叢集。
--restart-times 10
:指定作業失敗時可以自動重新啟動最多 10 次。
--rerun-incomplete
:強制重新執行先前 Snakemake 執行中未完成的任何作業。
--latency-wait 30
:步驟完成後等待 30 秒,以檢查是否有預期的輸出檔。這在具有高延遲的檔案系統中非常有用。
-n
:試運轉標誌。這使得 Snakemake 顯示它將運行的命令而不實際執行它們。這對於測試很有用。要真正運行管道,只需刪除此標誌即可。
執行上面的命令將會向叢集提交以下作業:
AlphaPulldown 可以用作每個特定步驟的一組腳本。
create_individual_features.py
:產生多重序列比對 (MSA),識別結構模板,並將結果儲存在單體特徵.pkl
檔案中。
run_multimer_jobs.py
:執行結構預測。
create_notebook.py
和alpha-analysis.sif
:分別準備互動式 Jupyter Notebook 和結果表。
首先,安裝 Anaconda 並建立 AlphaPulldown 環境,收集必要的依賴項。我們推薦使用 mamba 來加速解決依賴關係:
conda create -n AlphaPulldown -comnia -c bioconda -c conda-forge python==3.11 openmm==8.0 pdbfixer==1.9 kalign2 hhsuite hmmer modelcif
源啟動 AlphaPulldown
這通常有效,但在某些運算系統上,使用者可能更喜歡使用已安裝的 HMMER 和 HH-suite 的其他版本或最佳化版本。
啟動AlphaPulldown環境並安裝AlphaPulldown:
源啟動 AlphaPulldown python3 -m pip install alphapulldown
pip install -U“jax[cuda12]”
筆記
對於舊版的 AlphaFold :如果您尚未根據 AlphaFold 2.3.0 的要求更新資料庫,您仍然可以將 AlphaPulldown 與舊版本的 AlphaFold 資料庫一起使用。請遵循專用分支上的安裝說明。
安裝 CCP4 軟體包:若要安裝分析步驟所需的軟體,請依照下列說明操作:
奇點拉 docker://kosinskilab/fold_analysis:latest singleity build --sandboxFold_analysis_latest.sif# 從https://www.ccp4.ac.uk/download/#os=linuxtar xvzf ccp4-9.0.003-linux64.tar.gztar xvzf ccp4-9.0.003-linux64.tar.gzcd ccp4-9 下載最上面的一個 cp bin/pisa bin/sc <可寫入映像目錄>/軟體/ cp /lib/* <可寫入映像目錄>/software/lib64/ 奇點建置
確保您已安裝與您擁有的 CUDA 版本相對應的 PyTorch。這裡以 CUDA 11.7 和 PyTorch 1.13.0 為例:
pip install torch==1.13.0+cu117 --extra-index-url https://download.pytorch.org/whl/cu117
編譯 UniCore.
源啟動 AlphaPulldown git克隆 https://github.com/dptech-corp/Uni-Core.gitcd Uni-Core python setup.py install --disable-cuda-ext # 測試unicore是否安裝成功python -c "import unicore"
您可能會看到以下警告,但沒關係:
fused_multi_tensor is not installed corrected
fused_rounding is not installed corrected
fused_layer_norm is not installed corrected
fused_softmax is not installed corrected
從 Zenodo 下載 PyTorch 檢查點,解壓縮,然後您應該獲得一個名為: AlphaLink-Multimer_SDA_v3.pt
的文件
僅適用於想要修改AlphaPulldown程式碼並測試其修改的開發人員。請將您的 SSH 金鑰新增至您的 GitHub 帳戶
克隆 GitHub 儲存庫
git clone --recurse-submodules [email protected]:KosinskiLab/AlphaPulldown.gitcd AlphaPulldown git 子模組初始化 git 子模組更新
依照創建 Anaconda 環境中所述建立 Conda 環境
安裝AlphaPulldown套件並將其子模組新增至Conda環境(如果要更新依賴項則不起作用)
源啟動 AlphaPulldowncd AlphaPulldown pip install .pip install -e 。 --無依賴 pip install -e ColabFold --no-deps pip install -e alphafold --no-deps
您只需要做一次。
當你想要開發時,啟動環境,修改文件,改變應該會被自動辨識。
在開發過程中使用test/
中的測試來測試您的套件,例如:
pip安裝pytest pytest -s 測試/ pytest -s 測試/test_predictions_slurm.py pytest -s test/test_features_with_templates.py::TestCreateIndividualFeaturesWithTemplates::test_1a_run_features_ Generation
在推送到遠端或提交拉取請求之前:
pip install .pytest -s 測試/
安裝包並測試。只有當 SLURM 可用時,Pytest 預測才有效。檢查目前目錄中建立的日誌檔案。
筆記
如果您使用來自模式生物的蛋白質,您可以直接從 AlphaPulldown 特徵資料庫下載特徵檔案並跳過此步驟。
這是create_individual_features.py
用法的一般範例。有關在叢集上執行特定任務或並行執行的信息,請參閱本章的相應部分。
在此步驟中,您需要提供一個蛋白質 FASTA 格式文件,其中包含將用於複雜預測的所有蛋白質序列。
FASTA 檔案 ( sequences.fasta
) 範例:
>proteinA
SEQUENCEOFPROTEINA
>proteinB
SEQUENCEOFPROTEINB
啟動AlphaPulldown環境並執行腳本create_individual_features.py
如下所示:
源啟動 AlphaPulldown create_individual_features.py --fasta_paths=<序列.fasta> --data_dir=--output_dir=<儲存輸出物件的目錄> --max_template_date=<您想要的任何日期,格式如下:2050-01-01>
提供輸入 FASTA 檔案的路徑,而不是
。您也可以提供多個以逗號分隔的檔案。
提供遺傳資料庫的路徑,而不是
(請參閱安裝部分的 0. Alphafold 資料庫)。
提供輸出目錄的路徑,而不是
,您的功能檔案將保存在其中。
需要標誌--max_template_date
中的日期來限制對指定日期之前沉積的蛋白質結構的搜尋。除非日期晚於本地基因組資料庫的上次更新日期,否則腳本將在所有可用結構中搜尋模板。
特徵計算腳本create_individual_features.py
有幾個可選的FLAGS:
--[no]save_msa_files
:預設為False以儲存儲存階段,但可以變更為True 。如果設定為True
,程式將為每個蛋白質建立一個單獨的資料夾。輸出目錄將如下所示:
output_dir
|- proteinA.pkl
|- proteinA
|- uniref90_hits.sto
|- pdb_hits.sto
|- etc.
|- proteinB.pkl
|- proteinB
|- uniref90_hits.sto
|- pdb_hits.sto
|- etc.
如果save_msa_files=False
那麼output_dir
將如下所示:
output_dir
|- proteinA.pkl
|- proteinB.pkl
--[no]use_precomputed_msas
:預設值為False
。但是,如果您已經擁有蛋白質的 MSA 文件,請將參數設為 True 並按以下格式排列您的 MSA 文件:
example_directory
|- proteinA
|- uniref90_hits.sto
|- pdb_hits.sto
|- ***.a3m
|- etc
|- proteinB
|- ***.sto
|- etc
然後,在命令列中設定output_dir=/path/to/example_directory
。
--[no]skip_existing
:預設值為False
,但如果您已經對某些蛋白質運行了第一步,現在將新蛋白質添加到列表中,您可以在命令列中將skip_existing
更改為True
,以避免對先前的過程重新運行相同的過程計算出的蛋白質。
--seq_index
:預設值為None
,程式將在給定檔案中一一運行預測。但是,如果您希望並行運行一組作業,則可以將seq_index
設定為不同的數字,那麼程式將僅執行seq_index
指定的對應作業。例如,如果seq_index
設定為 1,則程式僅計算 FASTA 檔案中第一個蛋白質的特徵。 ❗ seq_index
從 1 開始。
--[no]use_mmseqs2
:是否遠端使用 mmseqs2。預設值為 False。
與 TrueMultimer 模式相關的標誌:
--path_to_mmt
:包含多聚模板 mmCIF 檔案的目錄路徑。
--description_file
:包含用於產生特徵的描述的文字檔案的路徑。請注意,第一列必須是 FASTA 文件中蛋白質描述的精確副本。為了方便起見,請考慮使用您最喜歡的文字編輯器在 FASTA 檔案中縮短它們。這些名稱將用於產生具有單體特徵的pickle檔案! NS1-P85B 複合體的description.csv 應如下圖所示:
>sp|P03496|NS1_I34A1,3L4Q.cif,A
>sp|P23726|P85B_BOVIN,3L4Q.cif,C
在此範例中,我們在多聚體模板 3L4Q.cif 中將 NS1 蛋白稱為 A 鏈,將 P85B 蛋白稱為 C 鏈。
請注意,您的範本將被重新命名為取自_entry_id的 PDB 程式碼。如果您使用 *.pdb 檔案而不是 *.cif,AlphaPulldown 將首先嘗試從檔案解析 PDB 程式碼。然後它會檢查檔案名稱是否為 4 個字母長。如果不是,它將產生一個隨機的 4 個字母代碼並將其用作 PDB 代碼。
--threshold_clashes
:VDW 重疊的閾值以識別衝突。兩個原子之間的 VDW 重疊定義為它們的 VDW 半徑總和減去它們中心之間的距離。如果重疊超過此閾值,則兩個原子被認為發生碰撞。正閾值是在考慮原子發生碰撞之前允許 VDW 表面相互滲透的距離。 (預設值:1000,即無閾值,對於閾值處理,使用0.6-0.9)。
--hb_allowance
:氫鍵的額外餘裕(預設值:0.4),用於識別要從多聚體模板中刪除的衝突殘基。容差 > 0 反映了共享氫鍵的原子彼此之間的距離可能比根據其 VDW 半徑預期的距離更近。僅由供體(或供體攜帶的氫)和受體組成的對減去該津貼。這相當於使用較小的半徑來表徵氫鍵相互作用。
--plddt_threshold
:從多聚模板中刪除 pLDDT 分數的閾值(預設值:0)(所有 pLDDT>plddt_threshold 的殘基都被刪除並從頭開始建模)。僅當多聚體模板是由 AlphaFold 產生的模型時才能使用。
--new_uniclust_dir
:如果您想要覆寫 uniclust 資料庫的預設路徑,請使用此選項。
--[no]use_hhsearch
: 尋找結構範本時使用 hhsearch 而不是 hmmsearch。預設值為 False。
--[no]multiple_mmts
:每個鏈使用多個多聚體模板。預設值為 False。
create_individual_features.py
運行的結果是儲存在output_dir
中的輸入FASTA 檔案(例如sequence_name_A.pkl
和sequence_name_B.pkl
)中每個蛋白質的pickle 格式特徵。
筆記
泡菜的名稱將與 FASTA 檔案中序列的描述相同(例如 FASTA 檔案中的>protein_A
將產生proteinA.pkl
)。請注意特殊符號,例如| : ; #
, >
之後將替換為_
。
繼續下一步2.1 基本運行。
如果您在電腦叢集上執行 AlphaPulldown,您可能會想要並行執行特徵建立。在這裡,我們提供了一個適用於使用 SLURM 工作負載管理器的叢集的程式碼範例。
對於下列範例,我們將使用example_2_sequences.fasta
作為輸入。
建立create_individual_features_SLURM.sh
腳本並使用 vi、nano 或任何其他文字編輯器將以下程式碼放入其中。將輸入參數替換為create_individual_features.py
腳本的適當參數,如基本運行或您打算執行的任何其他類型的運行所述:
#!/bin/bash#典型的運行需要幾個小時,但可能會更長#SBATCH --job-name=array#SBATCH --time=10:00:00#log files:#SBATCH -e logs/ create_individual_features_%A_%a_err.txt#SBATCH -o logs/create_individual_features_%A_%a_out.txt#qos 設定優先權#SBATCH --qos=low#限制執行到單一節點#SBATCH -N 1依據節點TCH#SBATCH# ntasks=8#SBATCH --mem=64000模組載入HMMER/3.4-gompi-2023a 模組載入 HH-suite/3.3.0-gompi-2023aeval "$(conda shell.bash hook)"模組載入 CUDA/11.8.0 模組載入cuDNN/8.7.0.84-CUDA-11.8.0 conda activate AlphaPulldown# 為您的特定任務自訂以下腳本參數:####create_individual_features.py --fasta_paths=example_1_sequences.fasta --data_dir=/scratch/AlphaFold_DBs/2.3.2 / --output_dir=/scratch/mydir/test_AlphaPulldown/ --max_template_date=2050-01-01 --skip_existing=真 --seq_index=$SLURM_ARRAY_TASK_ID######
透過執行以下命令使腳本可執行:
chmod +x create_individual_features_SLURM.sh
接下來,執行以下命令,將
替換為輸入 FASTA 檔案的路徑:
mkdir logs#統計序列數對應的作業數量:count=`grep ">"| wc -l`#執行作業數組,一次100個作業:sbatch --array=1-$count%100 create_individual_features_SLURM.sh
兩個文件的範例(對於更多文件,建立count3
、 count4
等變數並將它們添加到計數總和中):
mkdir logs#統計序列數對應的作業數量:count1=`grep ">"| wc -l`count2=`grep ">" | wc -l`count=$(( $count1 + $count2 )) #執行作業數組,一次100個作業:sbatch --array=1-$count%100 create_individual_features_SLURM.sh
繼續下一步 2.2 使用 SLURM(EMBL 叢集)運行範例。
MMseqs2 是另一種同源搜尋和 MSA 生成方法。它提供了 AlphaFold 使用的預設 HMMER 和 HHblits 的替代方案。由於 MSA 中捕獲的演化資訊存在差異,這些不同方法的結果可能會導致蛋白質結構預測略有不同。 AlphaPulldown支援ColabFold進行的MMseqs2搜尋的實現,ColabFold也提供了用於MSA產生的Web伺服器,因此不需要在本機安裝資料庫。
引用:如果您使用 MMseqs2,請記住引用:Mirdita M、Schütze K、Moriwaki Y、Heo L、Ovchinnikov S、Steinegger M。自然方法 (2022) doi: 10.1038/s41592-022-01488-1
注意:為避免遠端伺服器過載,請勿同時提交大量作業。如果您想計算多個序列的 MSA,請在本機上使用 MMseqs2。
若要使用 MMseqs2 遠端執行create_individual_features.py
,請新增--use_mmseqs2=True
標誌:
源啟動 AlphaPulldown create_individual_features.py --fasta_paths=<序列.fasta> --data_dir=--output_dir=<儲存輸出物件的目錄> --use_mmseqs2=真 --max_template_date=<您想要的任何日期,格式如下:2050-01-01>
腳本運行完成後,您的output_dir
將如下所示:
output_dir
|-proteinA.a3m
|-proteinA_env/
|-proteinA.pkl
|-proteinB.a3m
|-proteinB_env/
|-proteinB.pkl
...
繼續下一步2.1 基本運行。
AlphaPulldown不提供在本機上執行 MMseqs2 的介面或程式碼,也不會安裝 MMseqs2 或任何其他所需的程式。使用者必須安裝 MMseqs2、ColabFold 資料庫、ColabFold 搜尋和其他所需的依賴項,並先執行 MSA 比對。可以在 ColabFold GitHub 上找到範例指南。
假設您已使用colab_search
程式在本機成功執行 MMseqs2;它將為您感興趣的每種蛋白質產生一個 A3M 檔案。因此,您的output_dir
應如下所示:
output_dir
|-0.a3m
|-1.a3m
|-2.a3m
|-3.a3m
...
這些來自colabfold_search
的 a3m 檔案命名不方便。因此,我們提供了rename_colab_search_a3m.py
腳本來幫助您重新命名所有這些檔案。從 https://github.com/KosinskiLab/AlphaPulldown/blob/main/alphapulldown/scripts/rename_colab_search_a3m.py 下載腳本並執行:
cd 輸出目錄 python rename_colab_search_a3m.py path_to_fasta_file_you_used_as_input_for_colabfold_search
那麼你的output_dir
將會變成:
output_dir
|-proteinA.a3m
|-proteinB.a3m
|-proteinC.a3m
|-proteinD.a3m
...
這裡, proteinA
、 proteinB
等對應於輸入 FASTA 檔案中的名稱(例如, >proteinA
將為您提供proteinA.a3m
, >proteinB
將為您提供proteinB.a3m
等)。
注意:您也可以提供自己的
.a3m
格式的自訂 MSA 文件,而不是使用 MMSeq2 或標準 HHMER 建立的文件。將適當命名的檔案放入輸出目錄中並使用下列程式碼。
之後,返回包含原始 FASTA 檔案的項目目錄,並在命令中指向該目錄:
源啟動 AlphaPulldown create_individual_features.py --fasta_paths=<序列.fasta> --data_dir=--output_dir=<輸出目錄> --skip_existing=False --use_mmseqs2=真 --seq_index=<您想要的任何數字或跳過該標誌以逐一運行所有>
AlphaPulldown會自動搜尋每個蛋白質對應的a3m檔案。最後,你的output_dir
將如下所示:
output_dir
|-proteinA.a3m
|-proteinA.pkl
|-proteinB.a3m
|-proteinB.pkl
|-proteinC.a3m
|-proteinC.pkl
...
<