使用多线程在R中运行shell脚本

时间:2017-09-13 17:10:48

标签: r multithreading parallel-processing bioinformatics blast

我想用命令system()在R中运行一个shell脚本(NCBI中的BLAST +),但是即使我在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个内核运行?谢谢!

1 个答案:

答案 0 :(得分:1)

并行:

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)