這篇文章將為大家詳細講解有關(guān)linux上的并行軟件ParaFly怎么用,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的東安網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
很多時候生信工作者處理多個文件,對每個文件做的操作都是一樣的,這個時候,寫一個for循環(huán)串行處理可能就行了。但有時候串行操作耗時較久,例如做個bwa mem比對,如果一個一個文件處理,時間就是累加的。
一般我們都是在服務(wù)器上跑任務(wù),服務(wù)器都是多核心多線程的,再不濟也是自己的多核多線程筆記本,其實可以讓任務(wù)并行的跑起來。
例如使用htop查看,下面是40核的服務(wù)器,空閑的核需要的時候利用起來比較好,省時省力:
首先使用anconda3安裝ParaFly,
$ conda install -c bioconda parafly
查看一下怎么用:
$ ParaFly -h
##########################################################
#
# Usage: ParaFly (opts)
#
# Required:
# -c
:filename containing list of bash-style commands to execute. # -CPU
:number_of_threads #
# Optional:
# -shuffle :randomly shuffles the command order.
# -failed_cmds
:filename to capture failed commands. default("FailedCommands") # -v :simple progress monitoring.
# -vv :increased verbosity in progress monitoring.
#
##########################################################
Note: This process creates a file named based >with a .completed extension.
This enables a resume functionality, where if rerun, only those commands not completed successfully will be reprocessed.
可以看出必須參數(shù)(Required)只有2個,說明這個工具使用起來非常簡單。事實上,只需要把需要操作的命令寫在一個文件里面,使用-c指定這個文件,-CPU指定并行的總核數(shù)(需要同時執(zhí)行幾條命令)即可。
默認成功執(zhí)行的命令,對應(yīng)的命令行會輸出到文件名加.completed后綴的文件,沒有成功執(zhí)行的命令會輸出到FailedCommands文件。
ParaFly: Simple parallel unix command processing using OpenMPParaFly provides a simple mechanism for running a predefined list of unix commands in parallel using multithreading. Failed processes are captured and reported. Successfully executed processes are noted. If the process is rerun, >or failed processes will be executed.
簡單舉個例子:
fastq-dump拆分三個SRA文件,可以把這三條命令寫到fastq_dump.txt文件里面:
$ cat fastq_dump.txtfastq-dump --split-3 SRR1510125.1fastq-dump --split-3 SRR1004284.1fastq-dump --split-3 SRR1004285.1
之后使用ParaFly并行化:
$ ParaFly -c fastq_dump.txt -CPU 3
服務(wù)器會同時用三個核分別來運行這三條命令,ParaFly結(jié)果文件:
$ cat fastq_dump.txt.completedfastq-dump --split-3 SRR1004285.1fastq-dump --split-3 SRR1004284.1fastq-dump --split-3 SRR1510125.1
總體來看ParaFly方便易學(xué),比linux自帶的parallel更易上手,大家在linux上做多任務(wù)處理時可以考慮加入它的使用,會大大的縮短數(shù)據(jù)處理時間。
關(guān)于linux上的并行軟件ParaFly怎么用就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。