这是我第一次尝试在输入中使用“~”。当我将“~”转换为绝对路径时它可以工作。
证明它们是同一个文件:
(CentOS5-Compatible) [tboyarski@login2 6-bamMetrics]$ ls ~/share/references/rRNA.ensg72.hg19.interval_list
-rw-rw-r-- 1 fcchan users 24K Dec 12 2013 /home/tboyarski/share/references/rRNA.ensg72.hg19.interval_list
(CentOS5-Compatible) [tboyarski@login2 6-bamMetrics]$ ls /genesis/extscratch/clc/references/rRNA.ensg72.hg19.interval_list
-rw-rw-r-- 1 fcchan users 24K Dec 12 2013 /genesis/extscratch/clc/references/rRNA.ensg72.hg19.interval_list
(CentOS5-Compatible) [tboyarski@login2 6-bamMetrics]$ ls /home/tboyarski/share/references/rRNA.ensg72.hg19.interval_list
-rw-rw-r-- 1 fcchan users 24K Dec 12 2013 /home/tboyarski/share/references/rRNA.ensg72.hg19.interval_list
不起作用:
rule intervalList:
input:
"~/share/references/rRNA.ensg72.hg19.interval_list"
作品:
rule intervalList:
input:
"/home/tboyarski/share/references/rRNA.ensg72.hg19.interval_list"
我目前只尝试在输入指令中使用它。我可能会花点时间看看它是否可以作为输出指令(不是我需要的,只是好奇)。
想法?
编辑
@alvits 能够指出 ~ 在评估之前由 shell 转换为 ${HOME} 。似乎在向snakemake 提供〜时,不会发生这种转换。简单的替代方法是始终使用 ${HOME},它适用于 MacOSX 和 Linux :)。
我能够成功使用以下内容:
rule intervalList:
input:
"${HOME}/share/references/rRNA.ensg72.hg19.interval_list"
第二次编辑
用户指出我认为的解决方案实际上不是。解决方案是不要在输入指令中使用“~”或“${HOME}”。