go kegg 差異基因的GO與KEGG注釋

2021-10-12 14:04:39 字數 2392 閱讀 1652

寫在前面

這個其實很簡單啦!三個r包可以搞定的事情。

三個包分是:clusterprofiler,pathview,org.hs.eg.db。

clusterprofiler,pathview兩個包用於繪圖,org.hs.eg.db是用於clusterprofiler注釋的人類的資料庫。

先說安裝,我這裡是r-3.4.4的版本,用如下的安裝方式,3.5+版本的請見官網哦:

source("")

bioclite("pathview")

library(pathview)

這裡拿乙個包舉例子,其它請大家自己舉一反三。要碎碎念一句,bioclite安裝的時候包名是必須要有雙引號的哦,執行library的時候就很隨意啦,單引號,雙引號,不加都ok。

開始分析

做差異基因的注釋,只需要差異基因的entrez_id。這一步用到的包是clusterprofiler和org.hs.eg.db。

我的輸入**格式如圖所示(資料都是隨便編的,畢竟不能洩露真實資料):

>head(data)

gene abcdef

ensg00000067082.14100115108300303290

ensg00000134852.1499101100700710690

ensg00000125538.11300032003100100012001100

ensg00000006831.920151510010595

ensg00000285441.199101100700710690

ensg00000141905.18300032003100100012001100

分析的命令如下:

library(clusterprofiler)

library(org.hs.eg.db)

#ensembl id的字尾是版本號,分析的時候不需要,所以這裡把字尾去掉,用包內的bitr函式將ensembl id轉換為entreziddata[,1]

eg genelist

#go annotationgo

pvaluecutoff = 0.05, qvaluecutoff = 0.2,keytype = 'entrezid')

write.csv(go,"go-all-enrich.csv",row.names =false)

#kegg annotationkegg

padjustmethod = 'bh', mingssize = 10,maxgssize = 500,

qvaluecutoff = 0.2,use_internal_data = false)

write.csv(kegg,"kegg-enrich.csv",row.names =false)

指令碼中enrichgo和enrichkegg兩個函式來完成go和kegg的富集分析。

enrichgo中的關注一下引數"ont",這個可以設定為"all", "cc", "bp", "mf"四者中的一種。因為go的注釋包含後三個種類。其它引數更改的話,請大家自己看包內的引數。這個主語句很簡單啦請大家不要偷懶啦。

圖形化展示

富集結果的圖形化展示命令如下:

barplot(go,showcategory=20,drop=t,title = "enrichmentgo",font.size = 10 )

dotplot(go,showcategory=20,title="enrichmentgo_dot")

dotplot(kegg, showcategory=20,title="enrichmentkegg")

前兩行是展示go注釋的結果,第三行展示kegg的注釋結果:

如果你們看到了黃色的區域,不要驚慌,不是系統的bug,是我出於自身考慮遮掉了哦。

題圖展示的,是我自己根據結果加工過的(雖然也沒有好看到**去)。如果只用於自己了解注釋資訊的話,直接用上面簡單粗暴的語句生成圖就好啦,我覺得也蠻好看的呢。

這是官網的圖啦,我自己的只捕捉到了一兩個基因,完全沒有這麼好看,還是給大家放標準結果。

這個時候需要匯入包pathview啦,命令在這裡:

上文中kegg-enrich.csv的格式如下圖,我們需要用到id和geneid兩列資訊。

library(pathview)

pathview(gene.data = as.numeric(strsplit(as.character(test$geneid[1]),"/")[[1]]),

pathway.id = "04657", species = "hsa", kegg.native = t)

gene.data就是富集到這個通路中的geneid,因為我的**裡是斜槓分割的,所以我做了一下資料的提取,大家如果只有一列的,直接用就好了。

所有的命令列都是固定的,主要是把自己的資料轉換為函式所需的格式。說到這裡,就要結束啦。

參考資料

Rlimma包GEO多晶元差異基因分析

geo多晶元差異基因分析時候出現以下錯誤 error in rt as.vector diffsig 1 only 0 s may be mixed with negative subscripts。合併了兩個資料,資料數值都小於10,應該是已經取了log的。但是為什麼會出現這個情況,求大神告知!l...

差異表達基因變化倍數 差異表達基因

1.什麼是差異表達基因 在不同組織中表達發生明顯變化的基因 是導致細胞狀態發生變化的關鍵基因 是表達譜分析的主要物件 2.尋找差異表達基因的兩種方法 倍數變化閥值 一般設定為2倍 具體方法 找出所有基因的表達變化率 按照表達變化率排序 上調兩倍或者下調兩倍算作差異表達基因 適合條件 實驗重複數極少 ...

non reference轉錄組基因的差異表達分析

比較基於de novo和reference genome的轉錄組組裝來評估用於鑑定差異表達的基因 degs 的reference free和 dependent兩種方法。rna seq raw reads用fastqc質檢,trimmomatic,prinseq。cleaned reads用trin...