如何在共享计算集群上调用R中的系统命令?
我试图从R脚本中调用系统命令。我想调用的系统命令是我作为模块加载到共享计算集群(使用singularity)上的软件的名称。我遇到的问题是,当我使用system命令时,软件无法运行 系统(U.R)只有一行:如何在共享计算集群上调用R中的系统命令?,r,system-calls,singularity-container,R,System Calls,Singularity Container,我试图从R脚本中调用系统命令。我想调用的系统命令是我作为模块加载到共享计算集群(使用singularity)上的软件的名称。我遇到的问题是,当我使用system命令时,软件无法运行 系统(U.R)只有一行: system('STAR') 当然,如果我直接从shell调用该软件,它就会工作 hostname[2] STAR Usage: STAR [options]... --genomeDir /path/to/genome/index/ --readFilesIn R1.fq R2.fq
system('STAR')
当然,如果我直接从shell调用该软件,它就会工作
hostname[2] STAR
Usage: STAR [options]... --genomeDir /path/to/genome/index/ --readFilesIn R1.fq R2.fq
Spliced Transcripts Alignment to a Reference (c) Alexander Dobin, 2009-2020
- 如果我运行
,我会得到which STAR
singularity exec/apps/singularity-3/STAR/STAR-2.7.5a--0.sif STAR$@
- 将
替换为system('STAR')
实际执行软件system('singularity exec/apps/singularity-3/STAR/STAR-2.7.5a--0.sif STAR$@')
- 用
替换system('which STAR')
,返回system('which STAR')
which:no STAR in(/bin:etc…)
- 使用
会给出system2('STAR')
sh:STAR:command not found
系统('STAR')
。我怎样才能做到这一点
相关帖子没有回答:你试过吗?系统($(哪个星)怎么样?它接近您的第三个选项,但在命令中调用一个shell来计算并返回
哪个星
@JayAchar,这也不起作用。您是否将运行系统(“echo$PATH”)
与从终端运行echo$PATH
进行了比较?另外,可能还需要查看.bashrc
或类似的内容(我没有奇点方面的经验)如果存在从STAR
到singularity exec的链接……
如果是这样,我认为R的system()
不是源。bashrc
等。这意味着你要么手工获取,要么创建引用。
hostname[2] STAR
Usage: STAR [options]... --genomeDir /path/to/genome/index/ --readFilesIn R1.fq R2.fq
Spliced Transcripts Alignment to a Reference (c) Alexander Dobin, 2009-2020