首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Snakemake:从配置表中提取特定于样本的信息

Snakemake:从配置表中提取特定于样本的信息
EN

Stack Overflow用户
提问于 2018-02-22 18:17:00
回答 3查看 236关注 0票数 0

在我的工作流程中,我有一个样本表,其中包含应该分析的所有样本+查找输入文件的路径+应该使用的参考基因组。所有这些都是特定于样本的。

在我的配置文件中,我有一个参考基因组的列表,以及每个参考基因组的文件路径列表,具体取决于工具。

在执行每个样本的比对的规则中,我需要加载其中的一些文件,但需要以特定于样本的方式加载,因为所有样本的参考基因组可能并不相同。

下面是我尝试解决这个问题的方法:

代码语言:javascript
运行
复制
  params:  reference=lambda wildcards: table_samples['reference'][wildcards.sample],
           chrom_sizes=config[reference]['chrom_sizes']

但是,当我尝试像这样运行它时,我得到一个错误(直接在运行Snakemake时),指出chrom_sizes=...行中的reference没有定义。

有没有人有解决办法的想法?

编辑:一些更多的信息,因为我想我的意思并不是很清楚。这是我的配置文件的相关部分。

代码语言:javascript
运行
复制
hg19:
  bwa: 'path/to/hg19/bwa/reference'
  samtools: 'path/to/hg19/samtools/reference'
  chrom_sizes: '...'

mm9:
  bwa: 'path/to/mm9/bwa/reference'
  samtools: 'path/to/mm9/samtools/reference'
  chrom_sizes: '...'

下面是样本表的一个示例。

代码语言:javascript
运行
复制
name    path            reference
sample1 path/to/sample1 mm9

因此,在reference=lambda wildcards: table_samples['reference'][wildcards.sample]行中,我加载了要用于当前样本的相应引用。然后,在chrom_sizes=config[reference]['chrom_sizes']中,我需要使用reference作为变量来获得正确参考基因组的chrom_sizes

我希望这能让事情变得更清楚。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-02-23 23:52:48

好的,从你的评论中得到的信息,我能够让它工作。我只需要稍微修改一下。

正如我在我最初的帖子中添加的那样,我实际上需要reference作为变量,以便单独提取每个样本的信息。

根据@JeeYem的建议,我尝试了以下操作:

chrom_sizes = config[table_samples['reference']['{sample}']]['chrom_sizes']

但是,在这种情况下似乎不可能使用{sample}。相反,我将其更改为:

chrom_sizes = lambda wildcards: config[table_samples['reference'][wildcards.sample]]['chrom_sizes']

就目前而言,它是有效的!感谢大家的贡献!

票数 0
EN

Stack Overflow用户

发布于 2018-02-23 20:16:01

这可能是一个丑陋的解决方案,但应该可以工作。

代码语言:javascript
运行
复制
params:
    reference = table_samples['reference']['{sample}']
    chrom_sizes = config[table_samples['reference']['{sample}']]['chrom_sizes']

您在params下定义了一个变量,并试图在参数本身中传递它的值;我不确定Snakemake是否能做到这一点。

票数 1
EN

Stack Overflow用户

发布于 2018-02-23 16:45:46

您忘了用引号将reference键引起来。就像您编写的一样,Python将其解释为变量。

代码语言:javascript
运行
复制
chrom_sizes=config['reference']['chrom_sizes']
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48924830

复制
相关文章

相似问题

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