AlphaFold是一个能根据蛋白质序列预测构象的深度学习模型,2021年7月,DeepMind开源了升级版本AlphaFold v2.0,本文简要描述了如何在亚马逊云科技上使用AlphaFold进行蛋白质结构预测

????  想要了解更多亚马逊云科技最新技术发布和实践创新,敬请关注2021亚马逊云科技中国峰会!点击图片报名吧~

Amazon EC2实例设置

运行AlphaFold需要安装Docker和NVIDIA Container Toolkit,我们可以启动一台运行Amazon ECS GPU-optimized AMI的Amazon EC2实例,以省去这些工具的安装操作:

启动Amazon EC2实例,搜索AMI: amzn2-ami-ecs-gpu-hvm-2.0.2021,选择最新的日期的版本,也可以从:

https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html

查询对于区域的最新Amazon Linux(GPU)AMI ID

如果要使用NVIDIA A100则实例类型可选择p4d.24xlarge,本例测试选择具有4块NVIDIA V100 GPU的p3.8xlarge

系统卷100G,增加一个3T的数据卷,卷类型均为gp3

实例创建完成后登录系统,格式化并挂载3T的数据盘到/data,具体操作参考该文档

  • 文档

    https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/ebs-using-volumes.html

数据库下载

1.安装依赖

sudo rpm http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpmsudo yum install aria2 rsync git vim wget -y

2.修改/data目录权限

sudo chown ec2-user:ec2-user -R /data

3.克隆AlphaFold代码库并进入alphafold目录

git clone https://github.com/deepmind/alphafold.git

4.下载数据到/data,因为数据下载加解压可能需要十几个小时的时间,所以使用nohup让下载任务在后台执行

nohup scripts/download_all_data.sh /data &

完成之后在下载目录会有如下文件生成

$DOWNLOAD_DIR/                          # 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.faparams/                                # ~ 3.5 GB (download: 3.5 GB)# 5 CASP14 models,# 5 pTM models,# LICENSE,# = 11 files.pdb70/                                 # ~ 56 GB (download: 19.5 GB)# 9 files.pdb_mmcif/                             # ~ 206 GB (download: 46 GB)mmcif_files/# About 180,000 .cif files.obsolete.datsmall_fbd/                             # ~ 17 GB (download: 9.6 GB)bfd-first_non_consensus_sequences.fastauniclust30/                            # ~ 86 GB (download: 24.9 GB)uniclust30_2018_08/# 13 files.uniref90/                              # ~ 58 GB (download: 29.7 GB)uniref90.fasta

运行AlphaFold

1.创建输出目录

mkdir -p /tmp/alphafold

2.将docker/run_docker.py中的DOWNLOAD_DIR修改为包含下载数据库目录的路径/data, output_dir设置为上一步创建的输出目录

3.构建Docker镜像

docker build -f docker/Dockerfile -t alphafold .

完成后查看

4.安装依赖

pip3 install -r docker/requirements.txt

5.测试文件

打开:

https://www.predictioncenter.org/casp14/target.cgi?target=T1050

复制Sequence的文本到T1050.fasta文件中

6.运行可能需要几个小时时间,可以同样使用nohup命令让任务在后台执行

nohup python3 docker/run_docker.py --fasta_paths=T1050.fasta --max_template_date=2020-05-14 &

一个任务只能使用一块GPU,如果计算实例具有多块GPU,可以利用–gpu_devices参数将多个任务投递到不同的GPU上进行计算,如:

nohup python3 docker/run_docker.py --fasta_paths=T1050-1.fasta --max_template_date=2020-05-14 --gpu_devices=0 &
nohup python3 docker/run_docker.py --fasta_paths=T1050-2.fasta --max_template_date=2020-05-14 --gpu_devices=1 &

7.完成之后在之前设置的/tmp/alphafold目录下会有结果输出

监控配置

我们可以通过Amazon CloudWatch来监控CPU、内存和GPU的使用率,其中CPU监控指标Amazon CloudWatch默认就支持,内存监控指标需要通过Amazon CloudWatch Agent来实现,GPU监控需要通过一个python程序来实现

Amazon IAM角色

新建一个具有ClooudWatchAgentServerPolicy权限的角色,取名CW-Role

将它附加到Amazon EC2实例上

Amazon CloudWatch Agent

1.安装

sudo yum install collectd amazon-cloudwatch-agent -y

2.执行如下命令并按提示进行配置,详见附录

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard

3.重新启动agent

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json

GPU监控

1.下载python脚本

wget https://s3.amazonaws.com/aws-bigdata-blog/artifacts/GPUMonitoring/gpumon.py

2. vim gpumon.py

修改### 选择区域 ####EC2_REGION = 'us-east-1'#在此处选择命名空间参数,名字可以随意取###my_NameSpace = 'AlphaFold'### 选择推送间隔 ####sleep_interval = 10### 选择存储精度 (在 1-60 之间) ####store_reso = 60

3. 安装python2的依赖

wget https://bootstrap.pypa.io/pip/2.7/get-pip.pypython get-pip.pypip install nvidia-ml-pypip install boto3

执行

nohup python gpumon.py &

Amazon CloudWatch

在Amazon CloudWatch的指标中可以发现Amazon CWAgent和AlphaFold两个命名空间,其中包含了我们所需要的内存和GPU监控指标

创建一个控制面板来统一监控这些指标

测试结果分析

python3 docker/run_docker.py --fasta_paths=T1050.fasta --max_template_date=2020-05-14

结果如下:

只有在模型的推理阶段才会用到GPU,而且只用到了4块GPU中的一块,其余阶段都是用的CPU(https://github.com/deepmind/alphafold/issues/67)

投递两个任务

nohup python3 docker/run_docker.py --fasta_paths=T1050-1.fasta --max_template_date=2020-05-14 --gpu_devices=0 > a.out &
nohup python3 docker/run_docker.py --fasta_paths=T1050-2.fasta --max_template_date=2020-05-14 --gpu_devices=1 > b.out &

结果如下:

可以看到用到了2块GPU

参考

更详细的AlphaFold使用请参考:

https://github.com/deepmind/alphafold

附录

Amazon CloudWatch Agent配置示例

本篇作者

孙亮

亚马逊云科技解决方案架构师

硕士毕业于浙江大学计算机系。在加入亚马逊云科技之前,拥有多年软件行业开发经验。目前在Public Sector部门主要服务于生命科学和医疗健康相关的行业客户,致力于提供有关HPC、无服务器、数据安全等各类云计算解决方案的咨询与架构设计。

相关阅读

呼叫医生云!Amazon HealthLake 现已正式上线

点击图片查看原文

听说,点完下面4个按钮

就不会碰到bug了!

手把手教程 | 使用AlphaFold进行蛋白质结构预测,探索生命信息密码相关推荐

  1. 计算机技术预测蛋白质结构,蛋白质结构预测:生命科学的又一场竞争

    中国学者张阳最近在第七届蛋白质结构预测技术评估大赛中获得第一名的好成绩.消息传来,他做博士后时的导师欧阳钟灿院士给予高度评价.据欧阳钟灿介绍,由生物大分子的基因序列预测其结构,是当前生物学研究面临的最 ...

  2. 利用AlphaFold进行蛋白质结构预测

    AlphaFold是DeepMind公司下的一个预测蛋白质结构的AI,这个公司下的AI还有我们所熟悉的AlphaGo.它对大部分蛋白质结构的预测与真实结构只差一个原子的宽度,达到了人类利用冷冻电子显微 ...

  3. 谷歌提前开源AlphaFold 2!Nature、Science同时公开两大蛋白质结构预测工具

     新智元报道  ,来源:nature Science nature和Science两本杂志一直相爱相杀,总是喜欢争着发表科学领域中的重大发现.重要突破,抢夺大师文章的发表版权. 这次也不例外. 7月1 ...

  4. 后AlphaFold时代的蛋白质结构预测

    最新一届的蛋白质结构预测奥林匹克大赛,即15届CASP比赛(CASP15),在日前拉下了帷幕.这正值谷歌团队AlphaFold2在上一届CASP大赛给该领域带来革命性冲击后两周年.两年后,该领域的状况 ...

  5. Google Research进军蛋白质结构预测:为Pfam数据库新增680万标注数据

      视学算法报道   编辑:LRS [新智元导读]用深度学习模型来预测蛋白质的结构和功能已经取得了不小的进展,但还缺乏优质的数据.最近Google开源了一个模型ProtENN,提供了680万条蛋白质结 ...

  6. 使用AlphaFold2进行蛋白质结构预测

    前言 AlphaFold 2,是DeepMind公司的一个人工智能程序.2020年11月30日,该人工智能程序在蛋白质结构预测大赛CASP 14中,对大部分蛋白质结构的预测与真实结构只差一个原子的宽度 ...

  7. 【学习笔记】山东大学生物信息学-04 蛋白质结构预测与分析

    课程地址:山东大学生物信息学 文章目录 四.蛋白质结构预测与分析 4.1 蛋白质的二级结构 4.2 蛋白质的三级结构 4.3 三级结构可视化软件 VMD 4.4 计算方法预测三级结构 4.5 三级结构 ...

  8. DeepMind攻破生物学领域50年难题:蛋白质结构预测准确性可达92.4分

    译者 | 刘畅 来源 | Google博客 导语:蛋白质的形状与其功能密切相关,能够预测这种结构可使人们更好地了解它的功能和工作原理,从而突破世界上许多强有力的挑战,如开发疾病治疗方法或寻找分解工业废 ...

  9. 清华AI蛋白质结构预测,连续4周夺得CAMEO第一

    衡宇 梦晨 发自 凹非寺 量子位 | 公众号 QbitAI AI蛋白质结构预测赛道,国产模型又有吸睛表现: 在蛋白质结构预测竞赛CAMEO上,有支队伍连续四周夺得全球第一. 达成这一成就的是来自清华大 ...

最新文章

  1. Cobbler-自动化部署神器
  2. 【原创】大叔案例分享(3)用户行为分析--见证scala的强大
  3. springboot配置spring.profiles.active多环境支持
  4. linux跑r语言代码,R语言快捷键(示例代码)
  5. Linux编译安装中configure、make和make install各自的作用详解
  6. win7 64 pl/sql developer 不能选择database下来框
  7. Android之如何用cmd方法查看logcat
  8. 【Spring Bean的生命周期】
  9. 一个资源管理系统的设计--基于cgroup机制
  10. java程序包r不存在_java - 从命令行使用Gradle构建时,“程序包R不存在”错误 - 堆栈内存溢出...
  11. 软件工程--结对第二次作业
  12. c# 实现查找mysql安装路径
  13. 设计模式学习每天一个——Bridge模式
  14. 信雅达银行外包怎么样_光大银行信用卡逾期2年3万会坐牢吗?信用卡逾期半年要起诉...
  15. 华为 HG526 破解实录(一)Cfg文件加解密工具
  16. 支付设计白皮书:支付系统的概念与中国互联网支付清算体系
  17. 文件格式介绍:文本,图片,音频,视频
  18. Toshiba e-STUDIO5616AC 一体机驱动
  19. 使用微信提供的云开发实现后端 微信小程序云开发的内容管理CMS
  20. mysql ndbcluster 缺点_MySQL集群 -- NDB Cluster

热门文章

  1. MDT自动部署弹出Dirty Environment Found
  2. python字符串模糊匹配_NLP教程:用Fuzzywuzzy进行字符串模糊匹配
  3. 信捷PLC 流程指令STL,S使用
  4. element-ui改造表格样式
  5. 2015年上半年 系统分析师 论文 真题
  6. LeetCode #226 - Invert Binary Tree - Easy
  7. 【ESP32】HFP/A2DP 共存时,iOS的兼容性问题
  8. 大数据各种相关软件的下载
  9. NTFS文件系统若干技术研究
  10. Zemax Lumerical Speos | 联合实现衍射光波导AR系统设计仿真