本指导帮助用户为大规模分析准备基因组、临床、突变、表达和成像数据,并对数据湖执行交互式查询。它包括代码自动化的基础设施、转换数据的输入管道,以及用于交互分析的笔记本和仪表板。本指导在 Bioteam 的协助下建立。
架构图
-
架构
-
CI/CD
-
架构
-
详细信息
- 从癌症基因组图谱(TCGA)计划提取数据并调整格式和编制目录。原始数据通过 TCGA API 从 Registry of Open Data on AWS(RODA)抽取。数据在 AWS Glue Extract Transform and Load(ETL)作业中转换并由 Glue 爬网程序编制目录。这样,数据就可以在 Amazon Athena 中进行查询。
- 从癌症成像存档(TCIA)提取数据并调整格式和编制目录。数据在 AWS Glue ETL 作业中转换并由 Glue 爬网程序编制目录。
- 从 1000 个基因组项目和 ClinVar 提取数据并调整格式和编制目录,从 Amazon Simple Storage Service(Amazon S3)抽取原始数据。数据集在 AWS Glue ETL 作业中转换并由 Glue 爬网程序编制目录。
- 研究科学家通过 Amazon QuickSight 中的可视化界面分析多模式数据。数据缓存在 SPICE(超快并行内存式计算引擎)数据库中,优化了查询性能。
- 数据科学家使用通过 Amazon SageMaker 笔记本环境提供的 Jupyter notebook 分析数据的代码。
-
CI/CD
-
详细信息
- 创建 AWS CodeBuild 项目,其中包含 setup.sh 脚本。此脚本创建剩余的 AWS CloudFormation 堆栈以及代码存储库和代码。
- 登录区(zone)堆栈创建 AWS CodeCommit pipe 存储库。登录区(zone)堆栈完成设置后,setup.sh 脚本会将源代码推送到 CodeCommit pipe 存储库。
- 部署管道(pipe)堆栈将创建 CodeCommit code 存储库、Amazon CloudWatch 事件和 AWS CodePipeline code 管道。部署管道(pipe)堆栈完成设置后,setup.sh 脚本会将源代码推送到 CodeCommit code 存储库。
- CodePipeline(code)管道将部署代码库(genomics 和 imaging)CloudFormation 堆栈。AWS CodePipeline 管道完成设置后,您账户中部署的资源包括 Amazon Simple Storage Service(Amazon S3)存储桶,用于在数据湖中存储对象访问日志、构建构件和数据;用于源代码的 CodeCommit 存储库;一个用于构建代码构件的 AWS CodeBuild 项目;一个 AWS CodePipeline 管道,用于自动执行资源的构建和部署;AWS Glue 作业、爬网程序和数据目录的示例;以及一个 Amazon SageMaker Jupyter notebook 实例。
- 成像堆栈创建指向 CloudFormation 快速入门的超链接,可以启动它以部署 Amazon QuickSight(quicksight)堆栈。QuickSight 堆栈创建 AWS Identity and Access Management(IAM)和交互地探索多组学数据集所需的 QuickSight 资源。
Well-Architected 支柱
-
卓越运营
本指导使用 AWS CodeBuild 和 AWS CodePipeline 构建、打包和部署解决方案中所需的一切,以通过 Hail 转换变体调用文件(VCF)并处理来自癌症基因组图谱(TCGA)和癌症成像图谱(TCIA)中的数据集的多模式与多组学数据。在解决方案 AWS CodeCommit 存储库中所做的代码更改将通过提供的 CodePipeline 部署管道进行部署。
-
安全性
本指导通过 IAM 使用基于角色的访问,所有桶都已启用加密,成为私有桶,阻止公共访问。AWS Glue 中的数据目录已启用加密,通过 AWS Glue 写入到 Amazon S3 的所有元数据也已加密。所有角色都定义为最低权限,服务之间的所有通信都保留在客户账户内部。管理员可以控制 Jupyter notebook,以及通过提供的 IAM 角色进行的 Amazon Athena 和 Amazon QuickSight 数据访问。
-
可靠性
AWS Glue、Amazon S3 和 Amazon Athena 均为无服务器式,将可随着数据量的增加扩展数据访问性能。AWS Glue 预置、配置和扩展运行数据集成作业所需的资源,Amazon Athena 为无服务器式,因此您可以快速地查询自己的数据而不必设置和管理任何服务器或数据仓库。Amazon QuickSight SPICE 内存存储可将您的数据探查扩展到数千个用户。
-
性能效率
使用无服务器技术,您只需预置自己使用的准确资源即可。每个 AWS Glue 作业都将预置按需 Spark 集群,以转换数据并在完成后取消预置资源。如果您选择添加新 TCGA 数据集,则可以添加新 AWS Glue 作业以及还将提供按需资源的 AWS Glue 爬网程序。Amazon Athena 将自动并行执行查询,因此在数秒内可返回最多的结果。
-
成本优化
使用可按需扩展的无服务器技术,您只需为自己使用的资源付费。为了进一步优化成本,当不再使用时您可以在 Amazon SageMaker 中停止笔记本环境。Amazon QuickSight 控制面板也通过单独的 AWS CloudFormation 模板部署,因此如果您不打算使用可视化控制面板,则可以选择不部署它以节省成本。
-
可持续性
通过密集地使用托管服务和动态扩展,您可以最大限度地降低后台服务的环境影响。可持续性的关键组件是最大限度地使用笔记本服务器实例,这包含在性能和成本支柱中。不使用时停止笔记本环境。
其他注意事项
本架构选择 AWS Glue 作为在查询和性能分析解决方案中提取、准备数据集和编制目录所需的提取、转换、加载(ETL)工具。您可以添加新 AWS Glue 作业和 Glue 爬网程序,以根据需要添加新的癌症基因组图谱(TCGA)和癌症成像图谱(TCIA)数据集。您还可以添加新作业和爬网程序,以提取、准备自己的私有数据集并编制目录。
本架构选择 Amazon SageMaker Notebooks 为分析提供 Jupyter notebook 环境。您可以向现有环境添加新笔记本,也可以创建新环境。如果您首选 RStudio 而非 Jupyter notebook,则可以使用 RStudio on Amazon SageMaker。
本架构选择 Amazon QuickSight 为数据可视化和探查提供交互式控制面板。QuickSight 控制面板通过单独的 AWS CloudFormation 模板设置,因此如果您不打算使用该控制面板,则不必预置它。在 QuickSight 中,您可以创建自己的分析、探索其他筛选条件或可视化,并与同事共享数据集和分析。
使用说明
本存储库在 AWS 创建可扩展的环境,为大规模分析准备基因组、临床、突变、表达和成像数据,并对数据湖执行交互式查询。该解决方案演示了如何 1) 构建、打包和部署用于基因组学数据转换的存储库,2) 预置无服务器数据摄取管道以进行多模式数据准备和目录编制,3) 通过交互式界面可视化和探查临床数据,4) 对多模式数据湖运行交互分析查询。
免责声明
示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。