蟒蛇中的seaborn情节中多个输出的名称未知的蛇



我正在制作Snake,并在python中使用seaborn。我已经到了管道中的一个点,snakemake给出了丢失的输出。

snakemake的伪代码看起来有点像这样:

WC1 = Wildcard1
WC2 = Wildcard2
rule all:
expand("/path/to/outputs{wc1}_{wc2}.png", wc1=WC1, wc2=WC2)
checkpoint seaborn:
input:
"/OtherPath/to/file1.csv"
"/AnotherPath/to/file2.tsv"
output:
"/path/to/outputs{wc1}_{wc2}.png"
shell:
"python SeabornPlot.py"

python脚本,有点像伪代码,应该是这样的:

import matplotlib.pyplot as plt
import seaborn as sns
CSV1 = pd.read_csv(snakemake.input[O], delimiter=",")
CSV2 = pd.read_csv(snakemake.input[1], delimiter=",")
for column in CSV1:
g = sns.barplot(x=column, data=CSV2)
fig = g.get_figure()
fig.savefig(snakemake.output[0]) 
plt.clf()

这不起作用。python脚本在snakemake之外工作(使用正确的文件路径和名称(。我怀疑这与使用";输出[0]";,但是我可以用什么代替呢?

我确信这里的检查点是正确的,而不是规则。但如果我错了,请纠正我。

最后,我知道规则中缺少了一些东西。我可能应该为每个绘图添加一个带有新通配符的函数。

但我遇到的主要问题是让python将绘图输出到正确的路径。

提前感谢!

Snakefile中的明显错误是规则all。它应该有一个输入。

rule all:
input: expand("/path/to/outputs{wc1}_{wc2}.png", wc1=WC1, wc2=WC2)

all这个名字没有什么特别之处。如果您没有指定规则或输出文件,snakemake只需使用第一条规则作为目标。按照惯例(从原始的make程序继承而来(,第一个规则称为all,它只有依赖项(也称为input:(。它通常没有自己的输出或动作(例如:script:(。

相关内容

  • 没有找到相关文章