gpt4 book ai didi

Snakemake 总是重建目标,即使是最新的

转载 作者:行者123 更新时间:2023-12-02 17:47:57 25 4
gpt4 key购买 nike

我是snakemake的新手,遇到了一些我不理解的行为。我有一组 fastq 文件,其文件名遵循标准 Illumina 约定:

SAMPLENAME_SAMPLENUMBER_LANE_READ_001.fastq.gz

在目录reads/raw_fastq中。我想创建符号链接(symbolic link)来简化名称以遵循模式:

SAMPLENAME_READ.fastq.gz

在目录中reads/renamed_raw_fastq

我的目标是,当我向项目添加新的 fastq 文件时,snakemake 将仅为新添加的文件创建符号链接(symbolic link)。

我的snake文件如下:

# Get sample names from read file names in the "raw" directory

readRootDir = 'reads/'
readRawDir = readRootDir + 'raw_fastq/'

import os

samples = list(set([x.split('_', 1)[0] for x in os.listdir(readRawDir)]))
samples.sort()

# Generate simplified names

readRenamedRawDir = readRootDir + 'renamed_raw_fastq/'

newNames = expand(readRenamedRawDir + "{sample}_{read}.fastq.gz", sample = samples, read = ["R1", "R2"])

# Create symlinks

import glob

def getRawName(wildcards):
rawName = glob.glob(readRawDir + wildcards.sample + "_*_" + wildcards.read + "_001.fastq.gz")[0]
return rawName

rule all:
input: newNames

rule rename:
input: getRawName
output: "reads/renamed_raw_fastq/{sample}_{read}.fastq.gz"
shell: "ln -sf {input} {output}"

当我运行 Snakemake 时,它​​会尝试按预期生成符号链接(symbolic link),但是:

  1. 始终尝试创建目标符号链接(symbolic link),即使它们已经存在并且时间戳晚于源 fastq 文件。

  2. 抛出如下错误:

MissingOutputException in line 68 of /work/nick/FAW-MIPs/renameRaw.snakefile:
Missing files after 5 seconds:
reads/renamed_raw_fastq/Ben21_R2.fastq.gz
This might be due to filesystem latency. If that is the case, consider to increase the wait time with --latency-wait.

这几乎就像snakemake看不到它创建的输出文件一样。谁能建议我在这里可能缺少什么?

谢谢!

最佳答案

我认为

ln -sf {input} {output}

给出一个指向丢失文件的符号链接(symbolic link),即它不指向源文件。你可以通过例如修复它使用绝对路径,例如:

def getRawName(wildcards):
rawName = os.path.abspath(glob.glob(readRawDir + wildcards.sample + "_*_" + wildcards.read + "_001.fastq.gz")[0])
return rawName

(顺便说一句,我会确保按照您的方式重命名 fastq 文件不会导致名称冲突,例如,当同一样本在同一流动槽的不同泳道上进行测序时。)

关于Snakemake 总是重建目标,即使是最新的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57878152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com