38.《Bioinformatics Data Skills》之命名管道與進(jìn)程替換

當(dāng)我們使用的程序輸入與輸出的是多個文件酿傍,無法使用管道命令侦另。生物信息學(xué)的程序中這種情況實(shí)際是比較常見的凝危,假如說程序program需要2個輸入與2個輸出岁疼,那么其會產(chǎn)生4個中間結(jié)果阔涉。我們知道磁盤讀寫是非常耗費(fèi)時間的操作,如果這個程序是在pipeline的中間出現(xiàn)捷绒,可能會成為整個pipeline速度的瓶頸瑰排。

這里介紹兩種方法解決這個問題:

1. 使用命名的管道

我們可以使用mkfifo(make first in first out)命令來創(chuàng)建一個命名的管道:

$ mkfifo fqin

它的存在形式很像是一個文件,可以通過ls查看暖侨,發(fā)現(xiàn)前綴為p(代表其實(shí)際是一個管道):

$ ls -l fqin
prw-r--r-- 1 way way 0 Jul  5 18:56 fqin

可以將內(nèi)容重定向到此管道(結(jié)尾的&保證我們還能使用控制臺):

$ echo "This is a test" > fqin &
[1] 38

我們可以使用cat讀取內(nèi)容:

$ cat infq
hello
[1]+  Done                    echo "hello" > infq

到這里為止你可能會存在疑惑椭住,這不就是一個正常文件么?看起來確實(shí)如此字逗,不過它厲害的地方在于它不會向磁盤寫入內(nèi)容京郑,并且它被讀取一次之后內(nèi)容便為空。現(xiàn)在再打印infq文件已經(jīng)沒有東西了:

$ cat infq

用完之后可以刪除管道:

$ rm infq

2. 進(jìn)程替換

創(chuàng)建命名管道的方式有些繁瑣葫掉,更為快捷的方式是進(jìn)行進(jìn)程替換些举。通過一個簡單的例子來說明:

$ cat <(echo "hello, process substitution")
hello, process substitution

原理如下圖所示:

圖1

實(shí)際上<(...)也是生成一個匿名的管道文件作為輸入,作為輸出采用類似的形式>(...)俭厚。

這樣的話我們先前提到的program需要2個輸入與2個輸出可以采用如下的方式(假如mkinput作為創(chuàng)建輸入文件的命令):

program -in1 <(mkinput in1.fa) -in2 <(mkinput in2.fa) -out1 >(gzip > out1.gz) -out2 >(gzip > out2.gz)

這里的兩個結(jié)果傳入gzip命令壓縮并重定向保存結(jié)果户魏,也可以傳入其它的命令處理。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市叼丑,隨后出現(xiàn)的幾起案子关翎,更是在濱河造成了極大的恐慌,老刑警劉巖鸠信,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纵寝,死亡現(xiàn)場離奇詭異,居然都是意外死亡症副,警方通過查閱死者的電腦和手機(jī)店雅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贞铣,“玉大人闹啦,你說我怎么就攤上這事≡樱” “怎么了窍奋?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長酱畅。 經(jīng)常有香客問我琳袄,道長,這世上最難降的妖魔是什么纺酸? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任窖逗,我火速辦了婚禮,結(jié)果婚禮上餐蔬,老公的妹妹穿的比我還像新娘碎紊。我一直安慰自己,他們只是感情好樊诺,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布仗考。 她就那樣靜靜地躺著,像睡著了一般词爬。 火紅的嫁衣襯著肌膚如雪秃嗜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天顿膨,我揣著相機(jī)與錄音锅锨,去河邊找鬼。 笑死恋沃,一個胖子當(dāng)著我的面吹牛必搞,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播芽唇,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了匆笤?” 一聲冷哼從身側(cè)響起研侣,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎炮捧,沒想到半個月后庶诡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡咆课,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年末誓,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片书蚪。...
    茶點(diǎn)故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡喇澡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出殊校,到底是詐尸還是另有隱情晴玖,我是刑警寧澤,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布为流,位于F島的核電站呕屎,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏敬察。R本人自食惡果不足惜秀睛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望莲祸。 院中可真熱鬧蹂安,春花似錦、人聲如沸虫给。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽抹估。三九已至缠黍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間药蜻,已是汗流浹背瓷式。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留语泽,地道東北人贸典。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像踱卵,于是被迫代替她去往敵國和親廊驼。 傳聞我的和親對象是個殘疾皇子据过,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評論 2 359

推薦閱讀更多精彩內(nèi)容