logSnakemake 允许使用指定日志文件名称的参数为每个规则创建日志。将输出结果通过管道传输到此日志相对简单shell,但我无法找出记录输出输出的方法run(即 python 脚本)。
一种解决方法是将 python 代码保存在脚本中,然后从 shell 运行它,但我想知道是否还有另一种方法?
实际上,键必须在JSON对象中是唯一的(例如,JSON语法是否允许对象中的重复键?).但是,假设我有一个包含以下内容的文件:
{
"a" : "1",
"b" : "2",
"a" : "3"
}
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法将重复键转换为数组?这样文件就变成了:
{
"a" : [ {"key": "1"}, {"key": "3"}],
"b" : "2"
}
Run Code Online (Sandbox Code Playgroud)
或类似的东西,但它将重复的键组合成一个数组(或查找和替代方法来提取重复的键值).
这是Java中的解决方案:将带有重复键的JSON对象转换为JSON数组
有没有办法用awk/bash/python做到这一点?
这是我正在尝试做的事情的一个例子:
mydictionary={
'apple': 'crunchy fruit',
'banana': 'mushy and yellow'
}
rule all:
input:
expand('{key}.txt', key=mydictionary.keys())
rule test:
output: temp('{f}.txt')
shell:
"""
echo {mydictionary[wildcards.f]} > {output}
cat {output}
"""
Run Code Online (Sandbox Code Playgroud)
由于某种原因,我无法访问字典内容。我尝试使用双大括号,但文本文件的内容变成了文字{mydictionary[wildcards.f]}(而我想要字典中相应条目的内容)。