生信數(shù)據(jù)分析中基本Unix命令的運(yùn)用

內(nèi)容寫(xiě)的特別的“簡(jiǎn)潔”舶担,存在疑惑的部分坡疼,可以討論

Unix基本命令能做的事

學(xué)習(xí)了cat, head, tail, less, more,cut,sort,wc,uniq等基本命令后,如何使用這些命令對(duì)生物信息數(shù)據(jù)做簡(jiǎn)單的分析呢衣陶。大致可以完成以下任務(wù):

  • 了解數(shù)據(jù)內(nèi)容
  • 數(shù)據(jù)基本信息柄瑰,例如文件大小闸氮,有多少行
  • 數(shù)據(jù)提取,排序和去重

所以本文假定你掌握了基本的Unix命令教沾,對(duì)于不知道的命令會(huì)用man或者help去了解這些命令的作用蒲跨。

數(shù)據(jù)準(zhǔn)備

這里采用的實(shí)驗(yàn)數(shù)據(jù)是擬南芥的參考基因組及其注釋文件,可在TAIR中下載授翻,命令如下

wget http://www.arabidopsis.org/download_files/Genes/TAIR10_genome_release/TAIR10_chromosome_files/TAIR10_chr_all.fas
wget http://www.arabidopsis.org/download_files/Genes/TAIR10_genome_release/TAIR10_gff3/TAIR10_GFF3_genes.gff

基本上從NCBI, EBI或其他數(shù)據(jù)庫(kù)下載的數(shù)據(jù)都是以ASCII編碼或悲,可以用file命令檢查。如果不是ASCII編碼的堪唐,你需要使用hexdump或其他命令刪除里面的特殊符號(hào)巡语。

$ file TAIR10_GFF3_genes.gff
TAIR10_GFF3_genes.gff: ASCII text

了解數(shù)據(jù)內(nèi)容

在拿到一個(gè)純文本文件后,第一步肯定是想看下這個(gè)文件的大致內(nèi)容淮菠。但是如果在文件特別大的時(shí)候直接用cat男公,結(jié)果就是瞬間爆炸,啥都看不清合陵,比較好的命令就是head,tail,less.

1.查看文件前幾行:head

head -n 5 TAIR10_chr_all.fas

2.查看文件后幾行:tail

tail -n 5 TAIR10_chr_all.fas

3.逐頁(yè)顯示文本: less

less TAIR10_chr_all.fas

在less顯示的界面中理澎,你可以移動(dòng)光標(biāo)和尋找關(guān)鍵字

less

一些小技巧

1.顯示文件前后幾行

(head -n 2;tail -n 2) < TAIR10_chr_all.fas
# 可以上述操作到.bashrc文件中作為函數(shù)
function i() {
    (head -n 2; tail -n2 ) < "$1" | column -t
}
# 重新登錄terminal或者source .bashrc就可以快捷使用了
i TAIR10_chr_all.fas

2.去除前面的comment line

tail -n + 2 xxxx.gff

3.調(diào)試管道命令(pipeline)

command1 | command 2 | less
command1 | command 2 | head -n

對(duì)于管道命令的輸出結(jié)果,可以及時(shí)使用less或者h(yuǎn)ead查看曙寡,如果有錯(cuò)誤可以及時(shí)用ctrl+c停止操作

4.從頭(de novo)管道創(chuàng)建

command1 | less
command1 | command2 | less
command1 | command2 | command3 | less

根據(jù)第3個(gè)小技巧,我們也可以在創(chuàng)建多個(gè)管道的時(shí)候逐漸增加寇荧,每一步可以及時(shí)調(diào)試

數(shù)據(jù)基本信息

查看文本數(shù)據(jù)大小

了解文本數(shù)據(jù)大小可以幫助我們簡(jiǎn)單判斷處理結(jié)果举庶,假設(shè)處理后的數(shù)據(jù)過(guò)大(好幾十G)或過(guò)小(0 kb)揩抡,與以往經(jīng)驗(yàn)或期望不符户侥,你就知道自己的處理方式存在問(wèn)題了。使用ls就可以完成這個(gè)任務(wù):

$ ls -lh TAIR10_chr_all.fa
-rw-r--r-- 1 1030 users 116M Aug  8  2016 TAIR10_chr_all.fa
-l 以長(zhǎng)格式顯示
-h 以G,M,K為單位來(lái)顯示數(shù)據(jù)大小

文件的行數(shù)

通過(guò)wc可以統(tǒng)計(jì)文件有多少行峦嗤。

$wc -l TAIR10_chr_all.fa
1514792 TAIR10_chr_all.fa

注意:實(shí)際上你可能不希望統(tǒng)計(jì)到commend line(以#開(kāi)頭的部分)以及無(wú)意義的空白行蕊唐,所以你需要用grep -v排除那些無(wú)意義的行。

grep -v "#" target_file.txt | grep -v '^$' | wc -l

文件的列數(shù)

對(duì)于BED,VCF或者其他文件烁设,你希望了解文件里包含有多少行替梨,一個(gè)比較蠢的方法就是head -n 1然后一個(gè)一個(gè)數(shù)過(guò)去。一個(gè)比較好用的就是使用awk

數(shù)據(jù)提取装黑,排序和去重

可以使用cut提取某個(gè)特定的列副瀑,例如我只需要GFF文件的第1,3,4,5行也就是chr,feature,start,end恋谭。

$ cut -f 1,3,4,5 TAIR10_GFF3_genes.gff | head
1       chromosome      1       30427671
1       gene    3631    5899
1       mRNA    3631    5899
1       protein 3760    5630
1       exon    3631    3913
1       five_prime_UTR  3631    3759
1       CDS     3760    3913
1       exon    3996    4276
1       CDS     3996    4276
1       exon    4486    4605
# 可以保存為新的文件
cut -f 1,3,4,5 TAIR10_GFF3_genes.gff | I() > part.txt

cut 可以用-d指定分隔符.

我們希望根據(jù)feature類型對(duì)part.txt文件進(jìn)行進(jìn)行排序

$ sort -k2,2 part.txt | head -n3
1       CDS     1000112 1000231
1       CDS     1000112 1000231
1       CDS     10003966        10004523

或者是先按照chr逆序然后根據(jù)第二行排序

$ sort -k1,1nr -k2,2 part.txt | head -n3
5       CDS     10001590        10001736
5       CDS     10004720        10004824
5       CDS     10004720        10004824

對(duì)于feature而言有許多相同部分糠睡,如果你想知道到底有哪幾類的話,可以只提取feature疚颊,對(duì)其sort,然后統(tǒng)計(jì)每一個(gè)出現(xiàn)的次數(shù)

$ cut -f 3 TAIR10_GFF3_genes.gff | sort | uniq -c
 197160 CDS
      7 chromosome
 215909 exon
  34621 five_prime_UTR
  28775 gene
    180 miRNA
  35386 mRNA
   3911 mRNA_TE_gene
    480 ncRNA
  35386 protein
    924 pseudogene
   1274 pseudogenic_exon
    926 pseudogenic_transcript
     15 rRNA
     71 snoRNA
     13 snRNA
  30634 three_prime_UTR
   3903 transposable_element_gene
    689 tRNA

當(dāng)然你還可以在這一步之后繼續(xù)跟一個(gè)sort,找到出現(xiàn)最多的feature.

以上是實(shí)用一些Unix簡(jiǎn)單命令對(duì)純文本格式數(shù)據(jù)的簡(jiǎn)單分析狈孔,之后會(huì)一篇Unix三大神器:grep,awk和sed在生物信息數(shù)據(jù)分析的應(yīng)用信认。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市均抽,隨后出現(xiàn)的幾起案子嫁赏,更是在濱河造成了極大的恐慌,老刑警劉巖到忽,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件橄教,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡喘漏,警方通過(guò)查閱死者的電腦和手機(jī)护蝶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)翩迈,“玉大人持灰,你說(shuō)我怎么就攤上這事「核牵” “怎么了堤魁?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)返十。 經(jīng)常有香客問(wèn)我妥泉,道長(zhǎng),這世上最難降的妖魔是什么洞坑? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任盲链,我火速辦了婚禮,結(jié)果婚禮上迟杂,老公的妹妹穿的比我還像新娘刽沾。我一直安慰自己,他們只是感情好排拷,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布侧漓。 她就那樣靜靜地躺著,像睡著了一般监氢。 火紅的嫁衣襯著肌膚如雪布蔗。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,165評(píng)論 1 299
  • 那天浪腐,我揣著相機(jī)與錄音何鸡,去河邊找鬼。 笑死牛欢,一個(gè)胖子當(dāng)著我的面吹牛骡男,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播傍睹,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼隔盛,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼犹菱!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起吮炕,我...
    開(kāi)封第一講書(shū)人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤腊脱,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后龙亲,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體陕凹,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年鳄炉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了杜耙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡拂盯,死狀恐怖佑女,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情谈竿,我是刑警寧澤团驱,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布迁筛,位于F島的核電站疮薇,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏赴邻。R本人自食惡果不足惜呀洲,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一紊选、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧两嘴,春花似錦、人聲如沸族壳。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)仿荆。三九已至贰您,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拢操,已是汗流浹背锦亦。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留令境,地道東北人杠园。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像舔庶,于是被迫代替她去往敵國(guó)和親抛蚁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子陈醒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

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