第二章 創(chuàng)建并管理一個生信項目

第二章筆記

本章目的:
幫助讀者了解實現(xiàn)生物信息學項目的可重復性魯棒性所需要的準備工作持續(xù)性文檔記錄的習慣

項目的目錄結(jié)構(gòu)

命名原則

  1. 起個簡潔又清楚的名字(文件夾名 & 文件名)
  • 例子:研究關(guān)于 Zea Mays 的 SNP,可以把該項目命名為 zmays-snp
  • 自己的想法(書中未提到):如果是幾個單詞,那么前幾個不發(fā)音的部分可以省略,只取發(fā)音部分來與核心詞組合命名,可以縮短長度
  • 混成詞法:biological biomarker --> biomarker
  1. 不可以有空格,不要省略擴展名
  • 原因:在Unix系統(tǒng)下,命令行中的空格有分開參數(shù)的作用
  • 原因 :文件名可以很直觀地體現(xiàn)文件內(nèi)容和內(nèi)容的特點
  1. 較為一致的命名,便于批量操作
  2. 使用0開始的命名法,方便使用 sort 時得到正確排序
  • genes-001.txt, genes-002.txt
  • Ensembl 就是使用這種命名模式的,ENS00000164256

命令

# 構(gòu)建項目目錄結(jié)構(gòu)
$ mkdir -p zmays-snp/{data/seq,scripts,analysis}
$ echo zmays-snp/{data/seq,scripts,analysis}
zmays-snp/data/seq zmays-snp/scripts zmays-snp/analysis


# 創(chuàng)建示例序列文件
$ cd data
$ touch seqs/zmays{A,B,C}_R{1,2}.fastq
$ ls seqs/


# 通配符的使用
# * 可以表示 >= 0 個字符,忽略隱藏文件
$ ls seqs/zmaysB*   

# ? 表示一個字符,忽略隱藏文件
$ ls seqs/zmaysB_R*.fastq  

# [A-Z], [0-9], {10..19}    
$ ls seqs/zmays[AB]_R1.fastq
$ ls zmays[D-G]_R1.fastq
$ ls snps_[4-5].txt
$ ls snps_{14-15}.txt

# 在OS X 和 Linux 系統(tǒng)中使用通配符,如果匹配到的文件數(shù)目達到上限,會產(chǎn)生報錯 “Argument list too long”

注意事項

  1. 在 scripts 和 analyses 中使用相對路徑 ../data/stats/qual.txt 利于項目的可重復性和自動化,因此要保持核心目錄結(jié)構(gòu)一致;
  2. 如果 scripts 中包含很多文件,那么應該保存為一個子目錄中 ../scripts/align/
  3. 子目錄可以幫助組織文件,幫助研究者將項目拆分成子項目;

記錄項目的文檔 (使用 Markdown 語法撰寫)

記錄所有有關(guān)于項目的事情,每個目錄下都有一個 README 純文本文件比較好,因為純文本可以直接使用命令行來讀取、檢索、編輯。

  1. 文檔記錄項目中使用的方法和工作流程
    • 凡事產(chǎn)生出結(jié)果的命令都應該被記錄
    • 腳本是記錄步驟和參數(shù)的天然文檔;
    • 記錄運行腳本的語句;
  2. 記錄項目目錄下所有數(shù)據(jù)的來源
  3. 記錄數(shù)據(jù)下載的時間
  4. 記錄數(shù)據(jù)版本信息
  5. 描述是怎樣下載得到數(shù)據(jù)的
  6. 記錄所使用的軟件的版本

使用 Markdown 語法撰寫文檔,這個很簡單,本人使用 Mac Down,渲染方式使用 GitHub2

寫在最后

希望自己可以多看看 GitHub 上比較厲害的人是怎設計項目的目錄結(jié)構(gòu)的,這樣多學習一些,也多多在自己的項目中進行嘗試,最終想達到的目標是實現(xiàn)項目的可重復性和魯棒性。

至于README的文檔記錄,要全部寫英文,不知道怎樣寫的話可以看同一方法,大佬是怎樣寫的,根據(jù)自己的項目進行模仿和調(diào)整。

以上內(nèi)容并不是完全按照原書順序,主要是依照自己的理解和分解寫出的筆記,還有一些部分是自己加進去的理解和私貨。若讀者對原文內(nèi)容感興趣還是親自讀來最好,本文的撰寫主要是服務自己督促自己

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容