跳转到主要内容

提交基因组管道输出到ENCODE门户的工具

项目描述

Code Style: Black License: MIT CircleCI status

accession 是一个Python模块和命令行工具,用于将基因组管道分析输出文件和元数据提交到ENCODE门户。

安装

注意:安装需要Python >= 3.8

$ pip install accession

接下来,提供ENCODE门户的API密钥

$ export DCC_API_KEY=XXXXXXXX
$ export DCC_SECRET_KEY=yyyyyyyyyyy
强烈建议设置DCC_LAB和DCC_AWARD环境变量以方便使用。这些对应于ENCODE门户提供的实验室和奖项标识符,例如/labs/foo/U00HG123456,分别。
$ export DCC_LAB=XXXXXXXX
$ export DCC_AWARD=yyyyyyyyyyy
如果您使用的是由Caper本地后端生成的工作流程,则安装已完成。但是,如果使用Google Cloud上管道运行的WDL元数据,您还需要通过Google Cloud进行身份验证。运行以下两个命令并按照提示操作
$ gcloud auth login --no-launch-browser
$ gcloud auth application-default login --no-launch-browser
如果您希望能够传递 Caper 工作流 ID 或标签,则需要配置对 Caper 服务器的访问权限。如果您在已安装 Caper 的机器上调用 accession,并且 Caper 配置文件已存在于 ~/.caper/default.conf,则无需额外设置。如果 Caper 服务器在另一台机器上,您需要在 Caper 配置文件中设置 hostnameport 值来配置对它的 HTTP 访问。
(可选) 最后,为了启用使用 Cloud Tasks 将文件从 Google Cloud Storage 上传到 AWS S3,请设置以下两个环境变量。如果其中之一未设置,则文件将使用运行 accessioning 代码的同一台机器上传。有关如何设置 Cloud Tasks 和上传服务的更多信息,请参阅 gcs-s3-transfer-service 的文档。
$ export ACCESSION_CLOUD_TASKS_QUEUE_NAME=my-queue
$ export ACCESSION_CLOUD_TASKS_QUEUE_REGION=us-west1
要对 AWS 后端生成的工作流进行归档,您需要设置 AWS 凭据。最简单的方法是安装 AWS CLI 并运行 aws configure

用法

$ accession -m metadata.json \
            -p mirna \
            -s dev

有关这些输入参数的更多详细信息,请参阅 文档

在 Google Cloud 上部署

如果需要,首先通过 gcloud auth login 对 Google Cloud 进行身份验证。然后使用 pip install google-api-python-client 安装 API 客户端,建议在 venv 中执行此操作。最后,运行 python deploy.py –project $PROJECT 创建防火墙规则并部署实例。这将安装 accession 包。最后,SSH 登录到新实例并运行 gcloud auth login 以在实例上进行身份验证。
对于 Caper 集成,一旦实例启动,SSH 登录到实例并在 ~/.caper/default.conf 创建 Caper 配置文件,使用 Caper VM 实例的私有 IP 地址作为 hostname,并使用 8000 作为 port。为了让连接正常工作,Caper VM 将需要具有 caper-server 标签。请注意,部署假定 Cromwell 服务器端口设置为 8000

AWS 注意事项

要启用从管道存储桶到 ENCODE 存储桶的 S3 到 S3 复制,请确保管道存储桶策略授予 ENCODE 账户读取访问权限。以下是一个示例策略

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "DelegateS3AccessGet",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::618537831167:root",
                    "arn:aws:iam::159877419961:root"
                ]
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::PIPELINE-BUCKET/*"
        },
        {
            "Sid": "DelegateS3AccessList",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::618537831167:root",
                    "arn:aws:iam::159877419961:root"
                ]
            },
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::PIPELINE-BUCKET"
        }
    ]
}

项目信息

accessionMIT 许可下发布,文档位于 readthedocs,代码托管在 github,发布在 PyPI

项目详细信息


发布历史 发布通知 | RSS 源

下载文件

下载适合您平台的文件。如果您不确定该选择哪一个,请了解更多关于安装包的信息。

源分发

accession-4.8.4.tar.gz (102.8 kB 查看哈希值)

上传时间

构建分发

accession-4.8.4-py3-none-any.whl (134.9 kB 查看哈希值)

上传时间 Python 3

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面