首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Snakemake通配卡意外更改

Snakemake通配卡意外更改
EN

Stack Overflow用户
提问于 2019-11-28 15:15:36
回答 1查看 46关注 0票数 1

我是Snakemake的新手,我遇到了一个让我苦苦挣扎的bug。我有一个这样的通配符:

代码语言:javascript
复制
 rank = ['Kingdom', 'Phylum', 'Class', 'Order', 'Family', 'Genus', 'Species']
 ordi = ['DCA', 'CCA', 'RDA', 'NMDS', 'MDS', 'NMDS', 'PCoA']

以前的版本没有通配符问题,并成功运行

上一版本的规则都是这样的:

代码语言:javascript
复制
rule all:
  input:
    expand('common_taxonomic/abundance_table_{Rank}.biom', Rank = rank),
    directory('Gene/gene_Venn'),
    directory('Gene/gene_samples_heatmap'),
    directory('taxa_ternaryplot'),
    directory(expand('beta/PCA/{Rank}', Rank = rank))
  benchmark:
    "Check_utility.tsv"

但是当我像这样交换通配符位置时

代码语言:javascript
复制
directory(expand('beta/{Rank}/PCA/', Rank = rank)),
directory(expand('beta/{Rank}/{Ordi}', Rank = rank, Ordi = ordi))

我得到了这个错误

代码语言:javascript
复制
Building DAG of jobs...
MissingInputException in line 59 of /sysdata/Meta/pipeline/Snakefile:
Missing input files for rule biom_convert:
common_taxonomic/Table_taxa_NR_Kingdom/CCA.txt

如您所见,排名通配符是用/PCA或/{ordi}加长的。我对此很困惑,我是不是写错了代码?

我的biom_convert规则是:

代码语言:javascript
复制
rule biom_convert:
  input: 'common_taxonomic/Table_taxa_NR_{rank}.txt'
  output:'common_taxonomic/abundance_table_{rank}.biom'
  shell:'biom convert -i {input} -o {output} --table-type="OTU table" --to-json'
EN

回答 1

Stack Overflow用户

发布于 2019-11-28 16:09:31

我不确定我们是否得到了解决它所需的完整信息,但我们仍然可以尝试:)。

通配符的名称完全是任意的,您可以随心所欲地命名它们。如果您将通配符命名为rank,则它与其他规则的通配符没有任何关系。实际上,在一个规则中通配符rank的值可以是什么,在另一个规则中可以是ordi的通配符的值!

因此,我们要做的是确保输出规则正确区分等级和顺序:

代码语言:javascript
复制
rule biom_convert:
    input:
        'common_taxonomic/Table_taxa_NR_{rank}.txt'
    output:
        'common_taxonomic/abundance_table_{rank}/{ordi}.biom'
    shell:
        'biom convert -i {input} -o {output} --table-type="OTU table" --to-json'

如果需要,可以通过global wildcard constraints强制使用rankordi的通配符

代码语言:javascript
复制
wildcard_constraints:
    rank='|'.join(rank)
    ordi='|'.join(ordi)

现在我不确定这是否能解决你的全部问题,但它肯定会把你推向正确的方向。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59083493

复制
相关文章

相似问题

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