所以我有这个程序samtools,我想从cmd行使用,将一个文件转换为另一个。它的工作原理是这样的:从R脚本运行bash脚本
bash-4.2$ samtools view filename.bam | awk '{OFS="\t"; print ">"$1"\n"$10}' - > filename.fasta
因为我想自动执行此操作,我想通过使用R脚本来自动执行此操作。我知道你可以使用system()来运行一个操作系统命令,但我不能得到它试图
system(samtools view filename.bam | awk '{OFS="\t"; print ">"$1"\n"$10}' - > filename.fasta)
工作难道仅仅是一个使用正则表达式来摆脱空间和东西,所以逗号次争论的事系统(命令)是否可读?我该怎么做呢?
编辑:
system("samtools view filename.bam | awk '{OFS="\t"; print ">"$1"\n"$10}' - > first_batch_1.fasta") Error: unexpected input in "system("samtools view filename.bam | awk '{OFS="\"
EDIT2:
system("samtools view filename.bam | awk '{OFS=\"\t\"; print \">\"$1\"\n\"$10}' - > filename.fasta")
awk: cmd. line:1: {OFS=" "; print ">"$1"
awk: cmd. line:1: ^unterminated string
awk: cmd. line:1: {OFS=" "; print ">"$1"
awk: cmd. line:1: ^syntax error
>
EDIT3: 与获奖者是:
system("samtools view filename.bam | awk '{OFS=\"\\t\"; print \">\"$1\"\\n\"$10}' -> filename.fasta")
'系统()'需要一个字符串作为参数,所以你需要用引号包装你的论点。 – Andrie 2012-07-09 12:43:18
我已经试过了。如上面的编辑所示。 – cianius 2012-07-09 12:47:05
try system(“samtools view filename.bam | awk'{OFS = \”\ t \“; print \”> \“$ 1 \”\ n \“$ 10}' - > filename.fasta”)您需要转义双引号,以便R读取整个命令,而不是只有前两个双引号之间的命令部分 – 2012-07-09 12:50:59