You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Snakemake的expand函数生成指定格式的路径字符串?

Snakemake expand函数用法问题

你的嵌套列表:

list_ranges=[[0,9],[10,19],[20,29],[30,33]]

你当前的代码会生成笛卡尔积(每个range1元素和所有range2元素组合),得到16个结果,不符合需求。以下是两种正确写法:

方法1:用zip参数实现配对组合

通过zip参数告诉Snakemake按顺序配对两个列表的元素,而非生成笛卡尔积:

expand(
    "/user/Temp_dir/Ranges_{range1}-{range2}.tpm",
    zip,
    range1=[x[0] for x in list_ranges],
    range2=[x[-1] for x in list_ranges]
)

方法2:直接解包子列表

遍历list_ranges的子列表,将每个子列表的元素直接对应到模板变量:

expand(
    "/user/Temp_dir/Ranges_{a}-{b}.tpm",
    zip,
    a_b=list_ranges
)

以上两种写法都会生成你需要的4个目标路径:

/user/Temp_dir/Ranges_0-9.tpm
/user/Temp_dir/Ranges_10-19.tpm
/user/Temp_dir/Ranges_20-29.tpm
/user/Temp_dir/Ranges_30-33.tpm

内容的提问来源于stack exchange,提问作者chippycentra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 15:48:47