Bioinformatics Data Skills_tricks_Part I

《Bioinformatics Data Skills》據(jù)說是入門生信的必備書之一旋炒。最近抽了點(diǎn)時(shí)間看杨拐,發(fā)現(xiàn)里面的確有很多有意思的騷操作和建議厘唾。我這里簡(jiǎn)略地列出一些有意思的地方以及其對(duì)應(yīng)的章節(jié)目錄唬格,大家感興趣地可以去對(duì)應(yīng)章節(jié)看。當(dāng)然仓坞,時(shí)間充裕的話背零,建議大家讀整本書。

Charpter 1

  • Write Code for Humans, Write Data for Computers 即代碼要盡可能地寫的友好一點(diǎn)无埃,要考慮到以后的你和其他人還看不看得懂捉兴。但對(duì)應(yīng)的蝎困,你所輸出的格式必須要讓計(jì)算機(jī)能夠讀取,即要符合一定的規(guī)范倍啥。

    關(guān)于代碼的規(guī)范,作者給出了google的public style guides for many languages 這一編程范式澎埠。

  • Make Assertions and Be Loud, in Code and in Your Methods 即我們?cè)趯懗绦虻臅r(shí)候虽缕,要將報(bào)錯(cuò)也考慮在內(nèi)。這樣萬一出錯(cuò)的時(shí)候蒲稳,就可以返回報(bào)錯(cuò)信息氮趋。關(guān)于返回報(bào)錯(cuò)信息,我們可以嘗試用 Assertions江耀。

    幾乎每個(gè)語(yǔ)言都會(huì)有自己的assert function剩胁。Python里面是assert(),而R里面是 stopifnot()

  • Use Existing Libraries Whenever Possible 即盡量地用現(xiàn)成的庫(kù)去完成你的任務(wù)祥国,因?yàn)楝F(xiàn)成的庫(kù)已經(jīng)發(fā)表了好久昵观,也有很多人去使用并幫助debug。如果是自己寫的話舌稀,可能會(huì)沒有考慮到一些問題啊犬。就比如一個(gè)簡(jiǎn)單的核酸轉(zhuǎn)蛋白的程序,我們可能只會(huì)考慮ATCG的核酸序列壁查。但實(shí)際上觉至,序列中還會(huì)存在NYW等。NYW這些字符都是在International Union of Pure and Applied Chemistry(IUPAC)里面的睡腿,是一些standard ambiguous nucleotides语御。

  • Treat Data as Read-Only 即最好你產(chǎn)生的數(shù)據(jù)都是只讀的,你的后續(xù)分析都不是去修改數(shù)據(jù)席怪,而是產(chǎn)生新的文件应闯。這樣對(duì)以后重新檢查、重復(fù)分析流程等都會(huì)有幫助何恶。

  • Recommendations for Reproducible Research 對(duì)于一個(gè)可重復(fù)的分析來說孽锥,document 是至關(guān)重要的,即嘗試寫README细层。我們應(yīng)該學(xué)會(huì)在document加上軟件惜辑、數(shù)據(jù)等相關(guān)信息。比如說軟件的版本疫赎,數(shù)據(jù)是從哪里下的盛撑,數(shù)據(jù)的下載日期。如果可以的話捧搞,最好能在分析流程里面將結(jié)果圖也放上去抵卫,便于你或者其他人后續(xù)的重復(fù)狮荔。R’s knitr和iPython 都可以幫助我們做到這一點(diǎn)。

Chapter 2

  • Project Directories and Directory Structures 在寫一個(gè)腳本的時(shí)候介粘,盡量用相對(duì)路徑殖氏。這樣,你的腳本不管放哪里姻采,都可以運(yùn)行了雅采。

    關(guān)于相對(duì)路徑和絕對(duì)路徑這一點(diǎn),我覺得是仁者見仁慨亲,智者見智的婚瓜。

  • shell expansion 中有一種brace expansion可以快速地創(chuàng)建結(jié)構(gòu)化的文件

    $ echo dog-{gone,bowl,bark}
    dog-gone dog-bowl dog-bark
    
    $ mkdir -p zmays-snps/{data/seqs,scripts,analysis}
    
    
    $ touch seqs/zmays{A,B,C}_R{1,2}.fastq
    $ ls seqs/
    zmaysA_R1.fastq zmaysB_R1.fastq zmaysC_R1.fastq
    zmaysA_R2.fastq zmaysB_R2.fastq zmaysC_R2.fastq
    
    $ touch zmays{A..C}_R{1,2}.fastq
    $ ls *.fastq
    zmaysA_R1.fastq  zmaysB_R1.fastq  zmaysC_R1.fastq
    zmaysA_R2.fastq  zmaysB_R2.fastq  zmaysC_R2.fastq
    
  • Wildcards(通配符)也是一種shell expansion,通配符最常見的語(yǔ)法是

    • * 代表任意數(shù)量的字符(但會(huì)忽略 .bashrc 這種點(diǎn)號(hào)開頭的隱藏文件)

    • ? 代表單個(gè)字符

    • [A-Z] 可以匹配方括號(hào)里面的任意一個(gè)字符(比如[aeiou])刑棵,也可以匹配A-Z這26個(gè)大寫字母([start-end]這種連續(xù)范圍)巴刻,也可以匹配0-9這種數(shù)字。但需要注意的是蛉签,匹配的是含有字母或數(shù)字的字符串胡陪。

      按作者所說,snps_10.txt, snps_11.txt, snps_12.txt 這種是不能用snps_[10-13].txt 來匹配的正蛙,如果想要匹配的話督弓,就要用brace expansion來做。即snps_{10..13}.txt 乒验。不過R1愚隧,R2,R3這種還是可以正常匹配的锻全。

      $ touch snps_{10..13}.txt
      
      $ ls *.txt
      snps_10.txt  snps_11.txt  snps_12.txt  snps_13.txt
      
      $ ls snps_[10-13].txt
      ls: cannot access 'snps_[10-13].txt': No such file or directory
      
      $ ls snps_{10..13}.txt
      snps_10.txt  snps_11.txt  snps_12.txt  snps_13.txt
      

      關(guān)于通配符狂塘,發(fā)現(xiàn)一篇阮一峰的命令行通配符教程

  • OS 和 linux 系統(tǒng)對(duì)于命令的參數(shù)數(shù)目(更準(zhǔn)確來說是命令的長(zhǎng)度)實(shí)際上是有限制的。這種“Argument list too long” 通常會(huì)出現(xiàn)在你用通配符匹配了太多的文件鳄厌。

    這種解決方法在書的后面也提到了荞胡。

  • 我們可以用0021而非21來命名,這樣在后續(xù)排序的時(shí)候會(huì)有好處了嚎。

    $ ls -l
    -rw-r--r-- 1 vinceb staff 0 Feb 21 21:24 genes-1.txt
    -rw-r--r-- 1 vinceb staff 0 Feb 21 21:24 genes-11.txt
    -rw-r--r-- 1 vinceb staff 0 Feb 21 21:24 genes-12.txt
    -rw-r--r-- 1 vinceb staff 0 Feb 21 21:24 genes-13.txt
    -rw-r--r-- 1 vinceb staff 0 Feb 21 21:24 genes-14.txt
    
    $ ls -l
    -rw-r--r-- 1 vinceb staff 0 Feb 21 21:23 genes-001.txt
    -rw-r--r-- 1 vinceb staff 0 Feb 21 21:23 genes-002.txt
    [...]
    -rw-r--r-- 1 vinceb staff 0 Feb 21 21:23 genes-013.txt
    -rw-r--r-- 1 vinceb staff 0 Feb 21 21:23 genes-014.txt
    

    所以你能看見像一些大的Project比如Ensemble泪漂,就是采取這種命名方式:ENSG00000164256

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市歪泳,隨后出現(xiàn)的幾起案子萝勤,更是在濱河造成了極大的恐慌,老刑警劉巖呐伞,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件敌卓,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡伶氢,警方通過查閱死者的電腦和手機(jī)趟径,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門瘪吏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蜗巧,你說我怎么就攤上這事掌眠。” “怎么了幕屹?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵扇救,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我香嗓,道長(zhǎng),這世上最難降的妖魔是什么装畅? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任靠娱,我火速辦了婚禮,結(jié)果婚禮上掠兄,老公的妹妹穿的比我還像新娘像云。我一直安慰自己,他們只是感情好蚂夕,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布迅诬。 她就那樣靜靜地躺著,像睡著了一般婿牍。 火紅的嫁衣襯著肌膚如雪侈贷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天等脂,我揣著相機(jī)與錄音俏蛮,去河邊找鬼。 笑死上遥,一個(gè)胖子當(dāng)著我的面吹牛搏屑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播粉楚,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼辣恋,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了模软?” 一聲冷哼從身側(cè)響起伟骨,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎撵摆,沒想到半個(gè)月后底靠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡特铝,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年暑中,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了壹瘟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鳄逾,死狀恐怖稻轨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情雕凹,我是刑警寧澤殴俱,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站枚抵,受9級(jí)特大地震影響线欲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜汽摹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一李丰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧逼泣,春花似錦趴泌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至氏仗,卻和暖如春吉捶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背廓鞠。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工帚稠, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人床佳。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓滋早,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親砌们。 傳聞我的和親對(duì)象是個(gè)殘疾皇子杆麸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

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