本指导帮助用户为大规模分析准备基因组、临床、突变、表达和成像数据,并对数据湖执行交互式查询。它包括用于快速迭代的基础设施即代码(IaC)自动化、持续集成和持续交付(CI/CD)、用于存储和转换数据的摄取管道,以及用于交互分析的笔记本和控制面板。我们还演示了如何使用 AWS HealthOmics、Amazon Athena 和 Amazon SageMaker 笔记本存储和查询基因组学变体和注释数据。本指导在 Bioteam的协助下建立。
架构图
-
架构
-
CI/CD
-
架构
-
第 1 步
从癌症基因组图谱(TCGA)提取数据并调整格式和编制目录。原始数据通过 TCGA API 从 Registry of Open Data on AWS(RODA)抽取。数据在 AWS Glue 提取、转换、加载(ETL)作业中转换并由 AWS Glue 爬网程序编制目录。这样,数据就可以在 Athena 中进行查询。第 2 步
从癌症成像图谱(TCIA)提取数据并调整格式和编制目录。原始数据通过 TCIA API 从 RODA 中抽取。数据在 AWS Glue ETL 作业中转换并由 AWS Glue 爬网程序编制目录。图像位置可以使用 SageMaker 笔记本查询和显示。
第 3 步
来自千人基因组计划的 VCF 数据、一个样本 VCF 和 ClinVar 注释 VCF 被摄取到 Amazon Omics 变体和注释存储中,并在 Lake Formation 中作为表格提供。
第 4 步
研究科学家通过 QuickSight 中的可视化界面分析多模式数据。数据缓存在 SPICE(超快并行内存式计算引擎)数据库中,优化了查询性能。
第 5 步
数据科学家使用通过 SageMaker 笔记本环境提供的 Jupyter 笔记本分析数据的代码。
-
CI/CD
-
第 1 步
创建 AWS CodeBuild 项目,其中包含 setup.sh 脚本。此脚本创建剩余的 AWS CloudFormation 堆栈、代码存储库和代码。第 2 步
登录区(zone)堆栈创建 AWS CodeCommit pipe 存储库。登录区(zone)堆栈完成设置后,setup.sh 脚本会将源代码推送到 CodeCommit pipe 存储库。第 3 步
部署管道(pipe)堆栈将创建 CodeCommit code 存储库、Amazon CloudWatch 事件和 AWS CodePipeline code 管道。部署管道(pipe)堆栈完成设置后,setup.sh 脚本会将源代码推送到 CodeCommit code 存储库。
第 4 步
CodePipeline(code)管道将部署代码库(genomics、imaging 和 omics)CloudFormation 堆栈。CodePipeline 管道完成设置后,您账户中部署的资源包括 Amazon Simple Storage Service(Amazon S3)桶,用于在数据湖中存储对象访问日志、构建构件和数据;用于源代码的 CodeCommit 存储库;一个用于构建代码构件的 CodeBuild 项目;一个 CodePipeline 管道,用于自动执行资源的构建和部署;AWS Glue 作业、爬网程序和数据目录的示例;以及一个 Amazon SageMaker Jupyter 笔记本实例。预调配了一个 Amazon Omics 参考存储、变体存储和注释存储,并提取了示例变体调用文件(VCF)、1000 个基因组 VCF 子集和 ClinVar 注释 VCF 进行分析。借助 AWS Lake Formation,数据湖管理员可以使用 Amazon Athena 和 SageMaker 访问 Omics 变体和注释存储中的数据。 预调配 Amazon Omics 参考存储、变体存储和注释存储,用于存储公开可用的变体和注释数据,并使其可用于查询和分析。
第 5 步
成像堆栈创建指向 CloudFormation 快速入门的超链接,可以启动它来部署 Amazon QuickSight 堆栈。QuickSight 堆栈创建 Identity and Access Management(IAM)和交互地探索多组学数据集所需的 QuickSight 资源。
Well-Architected 支柱
当您在云中构建系统时,AWS Well-Architected Framework 可以帮助您了解所做决策的利弊。框架的六大支柱使您能够学习设计和操作可靠、安全、高效、经济高效且可持续的系统的架构最佳实践。使用 AWS 管理控制台中免费提供的 AWS Well-Architected Tool,您可以通过回答每个支柱的一组问题,根据这些最佳实践来检查您的工作负载。
上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。
-
卓越运营
本指导使用 CodeBuild 和 CodePipeline 构建、打包和部署解决方案中所需的一切,以提取并存储变体调用文件(VCF)并处理来自癌症基因组图谱(TCGA)和癌症成像图谱(TCIA)中的数据集的多模式与多组学数据。使用完全托管的服务 - Amazon Omics 演示无服务器基因组学数据摄取和分析。在解决方案 CodeCommit 存储库中所做的代码更改将通过提供的 CodePipeline 部署管道进行部署。
-
安全性
本指导通过 IAM 使用基于角色的访问,所有桶都已启用加密,成为私有桶,阻止公共访问。AWS Glue 中的数据目录已启用加密,通过 AWS Glue 写入到 Amazon S3 的所有元数据也已加密。所有角色都定义为最低权限,服务之间的所有通信都保留在客户账户内部。管理员可以控制 Jupyter 笔记本,Amazon Omics 变体存储的数据和 AWS Glue Catalog 数据访问使用 Lake Formation 进行完全管理,Athena、SageMaker 笔记本和 QuickSight 数据访问通过提供的 IAM 角色进行管理。
-
可靠性
AWS Glue、Amazon S3、Amazon Omics 和 Athena 均为无服务器式,将可随着数据量的增加扩展数据访问性能。AWS Glue 会预调配、配置和扩展运行数据集成作业所需的资源。Athena 为无服务器模式,因此您可以快速查询数据,而无需设置和管理任何服务器或数据仓库。QuickSight SPICE 内存存储可将您的数据探查扩展到数千个用户。
-
性能效率
使用无服务器技术,您只需预调配自己使用的准确资源即可。每个 AWS Glue 作业都将预置按需 Spark 集群,以转换数据并在完成后取消预置资源。如果您选择添加新 TCGA 数据集,则可以添加新 AWS Glue 作业以及还将预配按需资源的 AWS Glue 爬网程序。Athena 将自动并行执行查询,因此在数秒内可返回最多的结果。 Amazon Omics 通过将文件转换为 Apache Parquet 来大规模优化变量查询性能。
-
成本优化
使用可按需扩展的无服务器技术,您只需为自己使用的资源付费。为了进一步优化成本,当不再使用时您可以在 SageMaker 中停止笔记本环境。QuickSight 控制面板也通过单独的 CloudFormation 模板部署,因此如果您不打算使用可视化控制面板,则可以选择不部署它以节省成本。 Amazon Omics 可大规模优化变体数据存储成本。查询成本由 Athena 扫描的数据量决定,可以通过编写相应的查询来优化。
-
可持续性
通过密集地使用托管服务和动态扩展,您可以最大限度地降低后台服务的环境影响。可持续性的关键组件是最大限度地使用笔记本服务器实例。不使用时您应该停止笔记本环境。
其他注意事项
数据转换
本架构选择 AWS Glue 作为在查询和性能分析解决方案中提取、准备数据集和编制目录所需的提取、转换、加载(ETL)工具。您可以添加新 AWS Glue 作业和 AWS Glue 爬网程序,以根据需要添加新的癌症基因组图谱(TCGA)和癌症成像图谱(TCIA)数据集。您还可以添加新作业和爬网程序,以提取、准备自己的私有数据集并编制目录。
数据分析
本架构选择 SageMaker 笔记本为分析提供 Jupyter notebook 环境。您可以向现有环境添加新笔记本,也可以创建新环境。如果您首选 RStudio 而非 Jupyter notebook,则可以使用 RStudio on Amazon SageMaker。
数据可视化
本架构选择 QuickSight 为数据可视化和探查提供交互式控制面板。QuickSight 控制面板通过单独的 CloudFormation 模板设置,因此如果您不打算使用该控制面板,则不必预置它。在 QuickSight 中,您可以创建自己的分析、探索其他筛选条件或可视化,并与同事共享数据集和分析。
实施资源
本存储库在 AWS 创建可扩展的环境,为大规模分析准备基因组、临床、突变、表达和成像数据,并对数据湖执行交互式查询。该解决方案演示了如何 1) 使用 HealthOmics 变体存储和注释存储来存储基因组变体数据和注释数据,2) 预调配无服务器数据摄取管道以进行多模式数据准备和目录编制,3) 通过交互式界面可视化和探查临床数据,4) 使用 Amazon Athena 和 Amazon SageMaker 对多模式数据湖运行交互分析查询。
提供了在 AWS 账户中进行实验和使用的详细指南。构建指南的每个阶段(包括部署、使用和清理)都将被检查,以便为部署做好准备。
示例代码为起点。它经过行业验证,是规范性但不是决定性的,可以帮助您开始。
相关内容
贡献者
BioTeam 是一家生命科学 IT 咨询公司,热衷于通过消除科学家希望利用数据实现的目标与他们能够实现的目标之间的差距,来加快科学发现的速度。自从 2002 年涉足科学、数据和技术交融的领域以来,BioTeam 已经具备了跨学科能力来应用战略、先进技术和 IT 服务,从而解决最具挑战性的研究、技术和运营问题。我们擅长将科学需求转换成强大的科学数据生态系统,对于自身与从生物科技初创公司到最大的全球制药公司、从联邦政府机构到学术研究机构的生命科学研究领域中的各种领袖开展合作的能力也深感自豪。
免责声明
示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。
本指南中提及第三方服务或组织并不意味着 Amazon 或 AWS 与第三方之间存在认可、赞助或从属关系。AWS 的指导是一个技术起点,您可以在部署架构时自定义与第三方服务的集成。