功能注釋後如何做富集分析

2021-09-29 03:43:58 字數 1970 閱讀 9204

本文是為了回答知識星球裡的乙個提問,他為了用clusterprofiler做富集分析,打算構建乙個orgdb,也就是物種資料庫。

提問

我之前寫過用bioconductor對基因組注釋,用bioconductor/annotationhub對模式植物的基因進行注釋。昨天的推送,我講過新物種的注釋基本上都是基於同源相似性搜尋資料庫完成,最後得到的就是基因名和資料庫中注釋的對應關係。orgdbbioconductor計畫中其中一環,通過構建乙個物種各個資料庫注釋條目和基因的對應關聯式資料庫,方便在得到基因後對基因進行注釋。

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 產品的構思初期,我們會羅列盡可能多需求,也會收集到很多需求。但有些需求是偽需求,有些需求也不具備實現價值,那我們如何做判斷呢?每天有無數產品誕生,也有無數產品隕落,很多時候會談到乙個...