本文是為了回答知識星球裡的乙個提問,他為了用clusterprofiler
做富集分析,打算構建乙個orgdb
,也就是物種資料庫。
提問我之前寫過用bioconductor對基因組注釋,用bioconductor/annotationhub
對模式植物的基因進行注釋。昨天的推送,我講過新物種的注釋基本上都是基於同源相似性搜尋資料庫完成,最後得到的就是基因名和資料庫中注釋的對應關係。orgdb
是bioconductor
計畫中其中一環,通過構建乙個物種各個資料庫注釋條目和基因的對應關聯式資料庫,方便在得到基因後對基因進行注釋。
enrichgo
的前三個引數gene
,orgdb
,keytype
的目的是利用資料庫將基因編號轉換成go號。enrichkegg
的前三個引數gene
,organism
,keytype
的目的也是為了基於物種名和基因編號直接爬取kegg,將基因編號轉換成ko號。
如果你只是為了做go和kegg富集分析,有必要構建物種資料庫嗎?我的答案是沒有必要,因為不構建物種資料庫也能夠用clusterprofiler
做富集分析。
我相信y叔一定提供了不通過orgdb
,將轉換基因編號為go/ko編號,然後做富集分析的方法,所以我就去翻了y叔為clusterprofiler
寫的文件。於是我找到這一篇use clusterprofiler as an universal enrichment analysis tool, 這裡面提到了乙個通用的函式enricher
用於支援新注釋物種.
核心引數兩個gene
,term2gene
,前者表示的基因編號,後者是go/kegg條目和基因編號的對應關係
enricher(gene, pvaluecutoff = 0.05, padjustmethod = "bh", universe,
mingssize = 10, maxgssize = 500, qvaluecutoff = 0.2, term2gene,
term2name = na)
由於我只拿到了我的kegg注釋,go注釋還在執行中,這次就以kegg富集分析作為例子。
我從kegg上拿到的注釋是下面這種情況,很明顯,有些基因沒有注釋。這些沒有注釋的基因應該如何注釋?y叔的建議是不要,全部丟掉,原因去參考資料中找。
caroc969890.1
caroc969900.1 k12736
caroc969910.1 k02943
caroc969920.1 k13356
caroc969930.1
caroc969940.1
caroc969950.1
caroc969960.1
caroc969970.1
caroc969980.1
簡單的grep就可以完成這個剔除工作,grep k query.ko > kegg.tsv
,然後將kegg.tsv
匯入到我們的r語言中
gene_ko
sep = "\t")
然後我們隨機抽樣幾個基因作為gene
輸入,同時構建term2gene
的輸入
term2gene
gene_sample
enkegg
我這裡不用多重實驗矯正的原因,因為我是隨機抽的基因,很有可能是乙個富集都找不到。。所以為了後續演示,就把矯正去掉了,真實情況下,你是要的。 功能注釋後如何做富集分析
本文是為了回答知識星球裡的乙個提問,他為了用clusterprofiler做富集分析,打算構建乙個orgdb,也就是物種資料庫。提問 我之前寫過用bioconductor對基因組注釋,用bioconductor annotationhub對模式植物的基因進行注釋。昨天的推送,我講過新物種的注釋基本上...
如何做需求分析
如何做需求分析 原則 永遠不要顯得比客戶更聰明 第一條 了解需求,而不是去批評客戶 第二條 客戶比你更熟悉業務的環境 第三條 客戶總是知道問題在哪兒,你的工作就是要讓他們自己願意說出來 原則 尊重使用者的現實選擇 第一條 客戶永遠是對的 第二條 提供最合適的解決方案,而非最好或最貴的方案 第三條 不...
如何做需求分析?
目錄1.使用者需求與產品需求分析 2.什麼可以把產品需求轉化為使用者需求?3.使用者動機 4.需求篩選 一 分析 1 產品的構思初期,我們會羅列盡可能多需求,也會收集到很多需求。但有些需求是偽需求,有些需求也不具備實現價值,那我們如何做判斷呢?每天有無數產品誕生,也有無數產品隕落,很多時候會談到乙個...