所以我有這個程序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