在snakemake工作流中使用时,Rscript中的write.table出错

owfi6suc  于 2023-04-18  发布在  其他
关注(0)|答案(1)|浏览(145)

我正在使用一个调用R脚本的snakemake,但我得到了这个错误:

Error in isOpen(file, "w") : invalid connection
Calls: write.table -> isOpen
Execution halted

我在snakemake的规则是:

rule prepare_files:
input: 
       x = "path_to_x/quant.sf", 
       y = "path_to_Y/quant.sf"
output: 
       "out//Bigquantif.txt"   
script:
   "R/manips.R"

在manips.R我有:

out_file_path <- snakemake@output
x_path <-snakemake@input$x
y_path <-snakemake@input$y
x_fi <- read.table(x_path, head=T, sep="\t", row.names=1)
y_fi <- read.table(y_path, head=T, sep="\t", row.names=1)
merged_data_final <- merge(x_fi, y_fi, by = "gene_id")
write.table(x = merged_data_final, file = out_file_path, sep="\t")

我尝试用write.csv和csv 2,但总是同样的错误!!
如果有人能帮忙,我将不胜感激
我以为这是一个问题的访问权限的剧目,我改变了它的chmod +x,但这并没有解决它

bqucvtff

bqucvtff1#

我的问题是我返回了一个值的向量而不是一个字符串。我改变了:

out_file_path <- snakemake@output

致:

out_file_path <- snakemake@output[[1]]

现在它起作用了。希望这会有帮助

相关问题