在阅读了其他一些帖子之后,我似乎无法弄清楚如何成功地混合使用bash和R命令。
我需要使用用户定义的函数。我的想法如下;
#!/bin/bash
#fasta conversion
#$ -N convert_fasta
#$ -o convert_fasta.stdout
#$ -e convert_fasta.stderr
module load R/3.4.0
input=/data/dir/path
output=/output/dir/path
#set output directory define function
setwd($output/)
convert <- function(fasta.file, file.name="phylip.phy"){...}
#bash loop to convert files
for file in `ls $input/*.fasta`
do
convert($file,'$file.phy')
echo '$file converted to .phy'
done
但是,这似乎不起作用。任何帮助将不胜感激。
答案 0 :(得分:1)
您可以尝试下面这样的操作,只需确保注意bash和R端的变量名称。 \ $输出被转义以避免bash解释它。我告诉你R和bash之间的交互:),即如果你想在bash端使用R值。
#!/bin/bash
#fasta conversion
RScript -e <<<EOFR
module load R/3.4.0
input=/data/dir/path
output=/output/dir/path
#set output directory define function
setwd(\$output/)
convert <- function(fasta.file, file.name="phylip.phy"){...}
EOFR
同时检查this page。