35.《Bioinformatics Data Skills》之生物信息文本處理利器bioawk

作為表格文本處理命令awk的延伸消请,Heng Li開發(fā)了專門處理生物信息學(xué)的文件(例如bed, sam, vcf, gtf等)的命令bioawk虐骑,我們了解一下叽奥。


簡介

bioawk發(fā)布在github上,可以通過如下命令進行下載饱狂,編譯與安裝:

git clone git://github.com/lh3/bioawk.git && cd bioawk && make && sudo cp bioawk /usr/local/bin/

bioawkawk命令的使用方式類似(若不了解awk可以見上節(jié)內(nèi)容)曹步,命令最大的特點在于-c參數(shù),通過help了解可用的輸入:

bioawk -c help
bed:
        1:chrom 2:start 3:end 4:name 5:score 6:strand 7:thickstart 8:thickend 9:rgb 10:blockcount 11:blocksizes 12:blockstarts
sam:
        1:qname 2:flag 3:rname 4:pos 5:mapq 6:cigar 7:rnext 8:pnext 9:tlen 10:seq 11:qual
vcf:
        1:chrom 2:pos 3:id 4:ref 5:alt 6:qual 7:filter 8:info
gff:
        1:seqname 2:source 3:feature 4:start 5:end 6:score 7:strand 8:frame 9:attribute
fastx:
        1:name 2:seq 3:qual 4:comment

通過-c輸入文件類型休讳,bioawk會智能地將各列賦給指定的變量(與awk類似讲婚,使用$1$2也可以)俊柔。


實例

本節(jié)例子數(shù)據(jù)地址

  1. Mus_musculus.GRCm38.75_chr1.gtf為例筹麸,假如我們想要統(tǒng)計所有蛋白編碼基因的長度的話,可以采用如下命令:
$ bioawk -c gff '$source~/protein_coding/ && $feature~/gene/ {print $seqname"\t"($end - $start)}' Mus_musculus.GRCm38.75_chr1.gtf | head -n4
1       465597
1       16807
1       5485
1       12533
  1. -c設(shè)置為fastx的話雏婶,bioawk會自動判斷輸入文件類型為fastq還是fasta物赶。例如我們統(tǒng)計fastq文件的行數(shù):
$ bioawk -c fastx 'END{print NR}' contam.fastq
8
  1. 可以通過如下命令將fastq文件轉(zhuǎn)換為fasta文件:
$ bioawk -c fastx '{print ">"$name"\n"$seq}' contam.fastq | head -n4
>DJB775P1:248:D0MDGACXX:7:1202:12362:49613
TGCTTACTCTGCGTTGATACCACTGCTTAGATCGGAAGAGCACACGTCTGAA
>DJB775P1:248:D0MDGACXX:7:1202:12782:49716
CTCTGCGTTGATACCACTGCTTACTCTGCGTTGATACCACTGCTTAGATCGG

還可以使用revcomp函數(shù)來確定序列的逆向互補序列:

$ bioawk -c fastx '{print ">"$name"\n"revcomp($seq)}' contam.fastq | head -n4
>DJB775P1:248:D0MDGACXX:7:1202:12362:49613
TTCAGACGTGTGCTCTTCCGATCTAAGCAGTGGTATCAACGCAGAGTAAGCA
>DJB775P1:248:D0MDGACXX:7:1202:12782:49716
CCGATCTAAGCAGTGGTATCAACGCAGAGTAAGCAGTGGTATCAACGCAGAG
  1. 最后我們統(tǒng)計一下之前下載的小鼠參考基因組fa壓縮文件的序列長度:
$ bioawk -c fastx '{print $name,length($seq)}' Mus_musculus.GRCm38.74.dna.toplevel.fa.gz  | head
1       195471971
10      130694993
11      122082543
12      120129022
13      120421639
14      124902244
15      104043685
16      98207768
17      94987271
18      90702639

  1. 其實,bioawk同樣可以處理tsv文件留晚,使用-t或者-c hdr作為參數(shù)酵紫。前者代表輸入為純tsv文件,而后者則代表此tsv的第一行為表頭倔丈,bioawk為自動將每一列的信息賦給以表頭命名的變量憨闰。以文件genotypes.txt為例進行說明:
id      ind_A   ind_B   ind_C   ind_D
S_000   G/G     A/G     A/A     A/G
S_001   A/T     A/T     T/T     T/T
S_002   C/T     T/T     C/C     C/T
S_003   C/T     C/T     C/T     C/C
S_004   C/G     G/G     C/C     C/G
S_005   A/T     A/T     A/T     T/T
S_006   C/G     C/C     C/G     C/G
S_007   A/G     G/G     A/A     G/G
S_008   G/T     G/T     T/T     G/T
S_009   C/C     C/C     A/A     A/C

這里通過bioawk尋找ind_Aind_B列值相同的id:

$ bioawk -c hdr '$ind_A == $ind_B{print $id}' genotypes.txt
S_001
S_003
S_005
S_008
S_009
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市需五,隨后出現(xiàn)的幾起案子鹉动,更是在濱河造成了極大的恐慌,老刑警劉巖宏邮,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件泽示,死亡現(xiàn)場離奇詭異,居然都是意外死亡蜜氨,警方通過查閱死者的電腦和手機械筛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來飒炎,“玉大人埋哟,你說我怎么就攤上這事。” “怎么了赤赊?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵闯狱,是天一觀的道長。 經(jīng)常有香客問我抛计,道長哄孤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任吹截,我火速辦了婚禮瘦陈,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘波俄。我一直安慰自己晨逝,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布弟断。 她就那樣靜靜地躺著咏花,像睡著了一般。 火紅的嫁衣襯著肌膚如雪阀趴。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天苍匆,我揣著相機與錄音刘急,去河邊找鬼。 笑死浸踩,一個胖子當(dāng)著我的面吹牛叔汁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播检碗,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼据块,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了折剃?” 一聲冷哼從身側(cè)響起另假,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎怕犁,沒想到半個月后边篮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡奏甫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年戈轿,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片阵子。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡思杯,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出挠进,到底是詐尸還是另有隱情色乾,我是刑警寧澤腾么,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站杈湾,受9級特大地震影響解虱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜漆撞,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一殴泰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧浮驳,春花似錦悍汛、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至奉件,卻和暖如春宵蛀,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背县貌。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工术陶, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人煤痕。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓梧宫,卻偏偏與公主長得像,于是被迫代替她去往敵國和親摆碉。 傳聞我的和親對象是個殘疾皇子塘匣,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

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

  • 前面我們學(xué)習(xí)了基本的Unix表格文本數(shù)據(jù)的處理命令(grep, cut, sort, uniq等),但是在更加復(fù)雜...
    DataScience閱讀 423評論 0 6
  • 寫在前面 能干什么巷帝? 學(xué)習(xí)任何一個工具或是文章中的一類炫酷圖表時忌卤,我覺得首先需要能明白:這個工具/這類圖表能干什么...
    Dawn_WangTP閱讀 5,668評論 0 14
  • 第十章 使用序列數(shù)據(jù) 生物信息學(xué)的核心問題之一是處理大量的(通常定義糟糕或模糊)文件格式。久而久之锅睛,一些特定的簡單...
    yangliunk1987閱讀 4,986評論 3 53
  • 慢慢看埠巨,憋著急!很有用现拒! 前言: 首先呢辣垒,在你的Linux系統(tǒng)中新建一個文件,Thanos.txt(紫薯俠賜予你力...
    劉小澤閱讀 3,264評論 6 33
  • 表情是什么印蔬,我認(rèn)為表情就是表現(xiàn)出來的情緒勋桶。表情可以傳達很多信息。高興了當(dāng)然就笑了,難過就哭了例驹。兩者是相互影響密不可...
    Persistenc_6aea閱讀 124,161評論 2 7