2017-09-13 53 views
1

我想用命令system()在R中運行shell腳本(BLAST + in NCBI),但它似乎只使用一個線程,即使我在shell腳本中設置了多個線程。在這種情況下,我應該怎麼做才能使用多線程?使用多線程在R中運行shell腳本

的代碼是 system("blastp -query query.fasta -db db.fasta -num_threads 16 -outfmt \"6 qseqid sseqid pident ppos evalue bitscore qcovs\" -out out.tsv")

我如何與R 16個內核此運行?謝謝!

回答

0

隨着並行:

library(parallel) 
ncore = 4 

syscall = system("blastp -query query.fasta -db db.fasta -num_threads 16 -outfmt \"6 qseqid sseqid pident ppos evalue bitscore qcovs\" -out out.tsv") 
mclapply(1:ncore,syscall,mc.cores=ncore) 
+0

什麼是1:4? –

+0

爲系統調用功能分配的內核數量 –