首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Snakemake本地专用

Snakemake本地专用
EN

Stack Overflow用户
提问于 2022-02-04 21:18:48
回答 1查看 76关注 0票数 1

我的目标很简单:我想保持某些规则仅限于本地,而不是,而不是上传输出到我们的亚马逊S3桶。

在文档中,我看到了keep_local=True,它在处理后将远程文件保存在本地驱动器上。然而,这不是我想要的,因为这并不能阻止规则将输出上传到亚马逊S3。

Snakemake目前就像亚马逊S3和我的本地硬盘之间的一面镜子。

作为参考,这就是我们如何建立亚马逊S3与Snakemake。

代码语言:javascript
运行
复制
# run command

snakemake --default-remote-provider S3 --default-remote-prefix '$s3' --use-conda --cores 32 --rerun-incomplete --printshellcmds

# inside Snakemake

S3 = S3RemoteProvider(access_key_id=config["s3_params"]["access_key_id"], secret_access_key=config["s3_params"]["secret_access_key"])

# example of rule all

#Runs all rules
rule all:
  input:
    expand(["{sample}.demultiplex_fastqc.zip",
            "{sample}.demultiplex_fastqc.html"],
            sample=samples["sample"]),

    expand(["{sample}.adapterTrim.round2.rmRep.metrics"],
            sample=samples["sample"])

# etc...
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-05 05:04:11

至少有两种选择:

local(some_file)继续使用

  1. 并包装应在本地保存的文件

代码语言:javascript
运行
复制
rule some_rule:
    output:
        local("my_file.txt") # will not be uploaded to s3

S3.remote

  • 使用没有s3snakemake作为默认提供程序,并显式地使用s3包装远程文件。

代码语言:javascript
运行
复制
from snakemake.remote.S3 import RemoteProvider as S3RemoteProvider
S3 = S3RemoteProvider()

rule some_rule:
    output:
        S3.remote("my_file.txt") # will be uploaded to S3
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70992946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档