ModelAngelo是一个用于冷冻电镜自动原子模型构建的程序。建议使用显存大于8GB的GPU。ModelAngelo在NVIDIA 2080Super及更新的GPU上表现良好。其使用的语言模型所需的权重文件合计需要大概10 GB的硬盘空间。Github 官网:https://github.com/3dem/model-angelo.git
安装
使用conda管理安装环境,需要先安装conda。下载源代码后使用官方的安装脚本就能自动安装。
git clone https://github.com/3dem/model-angelo.git
cd model-angelo
source install_script.sh
如果顺利的话,现在应该有一个叫model_angelo的conda环境,可以用conda activate model_angelo
来激活环境。
然后输入model_angelo build --help
来确认是否安装正确了。
已知序列的建模
输入model_angelo build --help
可以查看已知序列建模的帮助文件。
需要输入map和蛋白质序列fasta文件。同源多聚体的fasta只需要写一次序列,相同的序列会被移除。
model_angelo build -v map.mrc -pf prot.fasta -o output
也可以有dna或者rna序列。
model_angelo build -v map.mrc -pf prot.fasta -df dna.fasta -rf rna.fasta -o output
输出模型会在output/output.cif。
安装完成后第一次运行会下载权重文件,之后就不用了。
未知序列的建模
输入model_angelo build_no_seq --help
可以查看未知序列建模的帮助文件。
一般情况下,只需要输入map就可以。
model_angelo build_no_seq -v map.mrc -o output
输出模型会在output/output.cif。
未知序列搜索
未知序列的建模之后,可以用这个模型去RCSB PDB数据库进行结构相似性比对,或者直接拿预测的序列进行blast,就能知道蛋白是什么。前者的成功率一般会高一点,而且速度很快,因为单从密度精确判断氨基酸种类对分辨率要求还是比较高的,可以手动确认验证一下。
ModelAngelo也内置了HMM search的方法来检索未知序列。
先按照未知序列建模运行命令,结果里应该会有一个output/hmm_profiles,此外还需要下载fasta格式的对应物种蛋白质组数据库。
人类Homo sapiens数据库:https://ftp.uniprot.org/pub/databases/uniprot/current_release/knowledgebase/reference_proteomes/Eukaryota/UP000005640/UP000005640_9606.fasta.gz
大肠杆菌E.coli (K12)数据库:https://ftp.uniprot.org/pub/databases/uniprot/current_release/knowledgebase/reference_proteomes/Bacteria/UP000000625/UP000000625_83333.fasta.gz
酿酒酵母Saccharomyces cerevisiae数据库:https://ftp.uniprot.org/pub/databases/uniprot/current_release/knowledgebase/reference_proteomes/Eukaryota/UP000002311/UP000002311_559292.fasta.gz
然后运行命令:
model_angelo hmm_search --i output --f PATH_TO_DB --o hmm_output
–i输入就是前面建模产生的output文件夹,PATH_TO_DB就是下载的对应物种的数据库(需要解压一下),–o就是输出文件。
指定GPU
所有命令都可以通过--device 0
的方式来指定使用的GPU id,多个的话可以用逗号隔开。