背景
近三十年来,生命科学与计算科学飞速发展。生物信息学是一门生命科学与计算科学的前沿交叉学科。生物信息学产生和迅猛发展的主要推动力来自于新一代测序等高通量技术在生命科学领域越来越广泛的应用。 基因组学是这一趋势的一个主要例子,其中高通量下一代测序 (NGS) 设备被用于对 DNA、mRNA、调控区域、肠道微生物组等进行测序。计算工作流程也在快速开发和标准化,并且支持动态进行扩展。随着大量基因组数据的收集,处理时间通常在数十亿核心小时的数量级,处理成本也相应增加。因此,客户正在寻找运行时间最短、成本最低的优化工具和系统。通常清况下有2种方式可供选择。 第一种是建设本地计算集群。一方面建设本地大型计算集群成本昂贵,同时峰值负载的能力有限,项目的周期也相对较长,前期成本投入很大。第二种是构筑云上的HPC平台。利用云资源可以快速构建云上HPC平台,云上还提供了最新技术和资源的快速访问,包括最新加速卡或减少计算所需时间的最新一代处理器。通过选择合适的实例类型,可以缩短总体计算时间。
在这篇博文中,我们将展示如何利用北鲲云HPC平台在AWS运行运行基因分析HPC任务。
概述
本指南将向您展示如何通过北鲲云控制台启动基于Amazon EC2构建的slurm集群,该集群提供有一个登录节点,您可以在此节点上通过简单配置结合AWS S3存储快速投递多个基因分析任务。
前置条件
在开始使用北鲲云平台之前您需要做下面准备:
1.拥有访问指定S3 bucket权限的1对AWS AK/SK。
2.用于存放计算输入文件的S3 bucket。
3.用于存放计算结果文件的S3 bucket,也可以使用输入文件bucket的不同目录作为区分。
您可以通过AWS S3控制台来快速创建S3 bucket并上传输入文件,如果已有bucket可跳过此步骤。这是一个简单的过程,仅涉及四个步骤:
登录AWS S3控制台。
创建s3 bucket。
设置bucket权限,推荐私有读写或者使用S3 bucket ACL策略进行更细粒度控制。
通过ACL限制只有指定的IAM角色ROLENAME可以访问指定bucket下的资源(可选步骤):
参考示例:https://aws.amazon.com/cn/blogs/security/how-to-restrict-amazon-s3-bucket-access-to-a-specific-iam-role/
任务整体流程
用户只需要准备好存放输入和输出文件的s3 bucket即可,无需关心集群内部调度细节,非常容易上手使用。
注册并登录北鲲云控制台
您可能需要先注册北鲲云账号,账号注册后联系客服可以获得200算力金。
创建Workspace
Workspace是北鲲云为您在AWS上创建的一片虚拟空间,对应了AWS的某个region,后续使用的AWS相关服务和资源都在这个region下进行配置。
您需要先将账号免费升级到企业版才能使用此功能,请联系我们!
您需要选择数据存放相同的地域创建Workspace,选择相同地域的好处是数据在AWS EC2上和S3之间上传下载可以使用内网进行访问,速度更快而且更加安全。
支持免费创建多个Workspace以支持不同的研发团队使用就近的AWS资源。
创建并登录集群登录节点
登录到北鲲云控制台后,首先要选择与您数据存放地域一致或相邻的Workspace, 后续使用的EC2集群及其他资源都在此地域下进行配置。
可通过webssh方式通过浏览器直接登录,也可以通过xShell等其他连接工具连接到集群登录节点内部。
集群登录节点内部已内置虚拟用户,可用于提交基因分析任务。
配置AWS AK/SK
AWS CLI 将使用 aws configure 指定的敏感凭证信息存储在主目录中名为 credentials 的文件夹中名为 .aws 的本地文件中。
在集群登录节点内根据提示输入AK/SK进行快速配置。
aws configure
特别申明:北鲲云不会在未经用户授权的情况下访问用户的EC2,也不会获取用户的数据,用户在使用平台前需要签署电子版法律协议。
准备作业脚本
大部分计算所需要的软件在平台上已经预装好,IT人员不需要安装和配置软件运行环境,缺少您想要的软件请点击这里。
以常用的序列对比软件blast+为例:
使用vim编辑器编写您的作业计算脚本
vim job.sbatch
#!/bin/bash
#SBATCH --job-name=example //作业名称
#SBATCH --partition c-64-1 //硬件类型 64核64G
#SBATCH --ntasks=64 //任务数量
#从s3下载您的输入文件
aws s3 cp --quiet s3://genomics-cloudam/input.tar.gz /home/cloudam/
tar -zxvf input.tar.gz
#加载软件blast+
module add BLAST+/2.2.31
#提交blast+计算任务 相关参数需要替换为实际参数值
blastx -i -o -num_threads
#将结果文件打包上传至s3
tar -zcvf result.tar.gz /home/cloudam/result
aws s3 cp --quiet /home/cloudam/result.tar.gz s3://genomics-cloudam/
提交作业
sbatch job.sbatch
作业结束后,将会进行后置处理,结果将被写入到s3 bucket内,闲置的EC2服务器将被销毁并立即停止计费。
恭喜!您已使用北鲲云HPC平台在 AWS上成功运行基因分析任务。还有更多的功能等待您来探索。
北鲲云平台和AWS ParallelCluster的对比
结论
在这篇博文中,我们演示了如何使用北鲲云平台在AWS来提交基因分析任务。快速访问北鲲云用户手册并亲自试用演示。有关北鲲云的更多信息,请查看主页和文档。