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