使用 tibanna 运行 Snakemake 时未找到示例文件

问题描述 投票:0回答:1

我正在尝试使用 Tibanna 在 AWS 上运行 Snakemake 工作流程。样本列表存储在 TSV 文件中:

samples.tsv
。 然而,由于某种原因,创建 EC2 实例时,此
samples.tsv
并未复制到 EC2 实例,因此在 EC2 实例上生成文件未找到错误。

有没有人有解决办法?

我尝试了几件事但没有成功:

  • samples: samples.tsv
    添加到
    config.yaml
  • 使用
    --precommand 'aws s3 cp ...'
  • 复制文件

唯一可行的方法可能是显式地将

samples.tsv
添加到每个规则的
input: 
中。然而,这看起来相当麻烦,需要重写大部分规则。

snakemake tibanna
1个回答
0
投票

我认为任何共享文件、要分析的样本都应该在 S3 存储桶中可用,才能正常工作。

aws s3api create-bucket --bucket $BUCKET_NAME --region $REGION --acl private
tibanna deploy_unicorn -g unicorn -b $BUCKET_NAME
tibanna add_user -u $USER -g unicorn

创建此存储桶后,您需要上传文件:

aws s3 cp yourdir/ s3://$BUCKET_NAME --recursive
aws s3 cp .secrets.yaml s3://$BUCKET_NAME/tibanna-compute/
aws s3 cp config.yaml s3://$BUCKET_NAME/tibanna-compute/

然后你在snakemake中的规则应该:

from snakemake.remote.S3 import RemoteProvider as S3RemoteProvider
import yaml
import os
import subprocess

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

STEM = config["samples"]
INPUT = config["input"]
OUTPUT = config["output"]
BUCKET = config["bucket"]

rule bwa_index:
    input:
        S3.remote(f"{BUCKET}/ref/Homo_sapiens_assembly38.fasta")
    output:
        f"ref/Homo_sapiens_assembly38.fasta",
        f"ref/Homo_sapiens_assembly38.fasta.bwt",
        f"ref/Homo_sapiens_assembly38.fasta.amb",
        f"ref/Homo_sapiens_assembly38.fasta.ann",
        f"ref/Homo_sapiens_assembly38.fasta.pac",
        f"ref/Homo_sapiens_assembly38.fasta.sa",
    conda:
        "envs/bwa.yaml"
    threads: 8
    resources:
        mem_mb=8000,
        disk_mb=12000
    group: "group8Gb"
    shell:
        "mv {input} {output[0]} && bwa index {output}"

© www.soinside.com 2019 - 2024. All rights reserved.