本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon S3 URI 访问 HealthOmics 读取集
您可以使用 Amazon S3 URI 路径访问您的活跃序列存储读取集。
通过 Amazon S3 URI 路径,您可以使用 Amazon S3 操作列出、共享和下载您的读取集。鉴于已经构建了许多行业工具,可以从 S3 读取,因此通过 S3 API 进行访问可以加速协作和工具集成。此外,您可以与其他账户共享 S3 API 的访问权限,并提供对数据的跨区域读取访问权限。
HealthOmics 不支持访问存档读取集的 Amazon S3 URI。当您激活读取集时,它每次都会恢复到相同的 URI 路径。
将数据加载到 HealthOmics 商店后,由于 Amazon S3 URI 基于 Amazon S3 接入点,您可以直接与读取 Amazon S3 URI 的行业标准工具集成,例如:
-
可视化分析应用程序,例如综合基因组学查看器 (IGV) 或 UCSC 基因组浏览器。
-
使用 CWL、WDL 和 Nextflow 等 Amazon S3 扩展的常见工作流程。
-
任何可以对接入点进行身份验证和读取 Amazon S3 URI 或读取预签名的 Amazon S3 URI 的工具。
-
亚马逊 S3 实用程序,例如 Mountpoint 或. CloudFront
亚马逊 S3 挂载点使您可以将亚马逊 S3 存储桶用作本地文件系统。要了解有关 Mountpoint 的更多信息并安装它以供使用,请参阅 Amazon S3 的挂载点。
Amazon CloudFront 是一项内容分发网络 (CDN) 服务,专为实现高性能、安全性和开发人员便利性而构建。要了解有关使用亚马逊的更多信息 CloudFront,请参阅亚马逊 CloudFront 文档。要设置 CloudFront 序列存储,请联系 AWS HealthOmics 团队。
数据所有者根账户已启用操作 S3:GetObject S3:GetObjectTagging, S3:List存储桶位于序列存储前缀上。为了让账户中的用户访问数据,您可以创建 IAM 策略并将其附加到该用户或角色。有关策略示例,请参阅 使用 Amazon S3 访问数据的权限 URIs。
您可以在活动读取集上使用以下 Amazon S3 API 操作来列出和检索您的数据。激活存档读取集后,您可以通过 Amazon S3 URI 访问它们。
-
GetObject— 从 Amazon S3 检索对象。
-
HeadObject— HEAD 操作从对象检索元数据而不返回对象本身。如果您只需要对象的元数据,则此操作很有用。
-
ListObjects 和 ListObject v2 — 返回存储桶中的部分或全部(最多 1,000 个)对象。
-
CopyObject— 创建已存储在 Amazon S3 中的对象的副本。 HealthOmics支持复制到 Amazon S3 接入点,但不支持写入接入点。
HealthOmics 序列存储通过 ETag 维护文件的语义标识。在文件的整个生命周期中,基于按位身份的 Amazon S3 ETag 可能会发生变化,但是 HealthOmics ETag 保持不变。要了解更多信息,请参阅HealthOmics ETag 和数据来源。
主题
HealthOmics 存储中的 Amazon S3 URI 结构
所有带有 Amazon S3 URI 的文件都有omics:subjectId和omics:sampleId资源标签。您可以使用 IAM 策略通过以下模式使用这些标签来共享访问权限:"s3:ExistingObjectTag/omics:subjectId": "pattern desired"
文件结构如下所示:
.../account_id/sequenceStore/seq_store_id/readSet/read_set_id/files.
对于从 Amazon S3 导入到序列存储的文件,序列存储会尝试保留原始源名称。当名称冲突时,系统会附加读取集信息以确保文件名是唯一的。例如,对于 fastq 读取集,如果两个文件名相同,则为了使名称独一无二,将其插入到 .fastq.gz sourceX 或 .fq.gz 之前。对于直接上传,文件名遵循以下模式:
-
对于 FASTQ —
read_set_name_sourcex.fastq.gz -
用于 uBAM/BAM /CRAM —.
read_set_namefile extension带有.bamor 的扩展名.cram。例如,NA193948.bam。
对于 BAM 或 CRAM 读取集,索引文件将在摄取过程中自动生成。对于生成的索引文件,在文件名末尾应用正确的索引扩展名。它的模式索<name of the Source the index is on>.<file index extension>.引扩展名是.bai或.crai。
使用托管或本地 IGV 访问读取集
IGV 是一种基因组浏览器,用于分析 BAM 和 CRAM 文件。它需要文件和索引,因为它一次只显示基因组的一部分。IGV 可以下载并在本地使用,还有创建 AWS 托管 IGV 的指南。不支持公共 Web 版本,因为它需要 CORS。
本地 IGV 依赖本地 AWS 配置来访问文件。确保在该配置中使用的角色附加了策略,该策略允许对正在访问的读取集的 s3 URI 启用 KMS: Decrypt 和 s3: GetObject 权限。之后,在 IGV 中,您可以使用 “文件 > 从 URL 加载” 并粘贴源和索引的 URI。或者,可以以相同的方式生成和使用预签名 URL,这将绕过 AWS 配置。请注意,Amazon S3 URI 访问不支持 CORS,因此不支持依赖于 CORS 的请求。
示例 AWS 托管 IGV 依赖于 AWS Cognito 在环境内创建正确的配置和权限。确保创建的策略允许对正在访问的读取集的 Amazon S3 URI 启用 KMS: Decrypt 和 s3: GetObject 权限,并将此策略添加到分配给 Cognito 用户池的角色中。之后,在 IGV 中,您可以使用 “文件 > 从 URL 加载” 并输入源和索引的 URI。或者,可以按相同的方式生成和使用预签名 URL,这会绕过 AWS 配置。
请注意,序列存储不会显示在 “亚马逊” 选项卡下,因为该选项卡仅显示您在配置 AWS 文件所在地区拥有的存储桶。
在中使用 Samtools 或 HTSLib HealthOmics
HTSLib 是由 Samtools、RSAMTools 等多种工具共享的核心库。 PySam使用 HTSLib 版本 1.20 或更高版本获得对亚马逊 S3 接入点的无缝支持。对于 HTSLib 库的旧版本,可以使用以下变通方法:
-
使用:为 HTS 亚马逊 S3 主机设置环境变量
export HTS_S3_HOST="s3.。region.amazonaws.com" -
为要使用的文件生成预签名 URL。如果使用的是 BAM 或 CRAM,请确保为文件和索引生成预签名 URL。之后,这两个文件都可以与库一起使用。
-
使用 Mountpoint 将序列存储或读取集合前缀挂载到使用 HTSLib 库的相同环境中。在这里,可以使用本地文件路径访问这些文件。
使用 Mountpoint HealthOmics
适用于 Amazon S3 的 Mountpoint 是一个简单、高吞吐量的文件客户端,用于将亚马逊 S3 存储桶安装为本地文件系统。
可以使用 Mountpoint 安装说明来安装挂载点。
mount-s3access point arn--prefixlocal path to mount--regionprefix to sequence store or read setregion
CloudFront 与一起使用 HealthOmics
Amazon CloudFront 是一项内容分发网络 (CDN) 服务,专为实现高性能、安全性和开发人员便利性而构建。想要使用的客户 CloudFront 必须与服务团队合作才能开启 CloudFront 分发功能。与您的客户团队合作,与 HealthOmics 服务团队合作。