富集分析事後丸:過濾數據

2021-02-22 Freescience聯盟

作者:Y叔

: biobabble公眾號

(點以上文字會分別跳轉到有意思的原貼上,全體學霸都關注了Y叔哦~)

點本文左下方的閱讀原文直接向Y叔提問。

有了事後丸之後,腰不酸了,背不疼了,腿啊也不抽筋了,走路也有勁兒了,我有個夢想,希望每個生信小白做分析之後,都能吃上一顆事後丸。

The cnetplot is a really attractive feature. I wonder if it is possible to subset the enrichment object that goes into the cnetplot function?


Case scenario: Run an enrichment analysis with pvalueCutoff = 1, to see all results. Plotting them all would be infeasible. How to subset the enrichment object to, say, first ten most significant terms, and then plot it with cnetplot?

github上這個問題問得挺好,其實啊,你用clusterProfiler系列包做富集分析的話,根本就不用卡p值、q值這些,因為你完全可以吃事後丸!拿到全部結果之後,想怎麼搞就怎麼搞。

基本上data.frame取子集那些方法,包括[, [[, $等操作符,都被我重新定義,也就是說,對於富集分析的結果,你完全可以像data.frame一樣的操作。

這裡用DOSE包做為例子,富集的結果存在x對象中:

> require(DOSE)
Loading required package: DOSE

DOSE v3.9.1  For help: https://guangchuangyu.github.io/DOSE

If you use DOSE in published research, please cite:
Guangchuang Yu, Li-Gen Wang, Guang-Rong Yan, Qing-Yu He. DOSE: an R/Bioconductor package for Disease Ontology Semantic and Enrichment analysis. Bioinformatics 2015, 31(4):608-609

> data(geneList)
> de = names(geneList)[1:100]
> x = enrichDO(de, qvalueCutoff=1, pvalueCutoff=1)

我們可以用dim看看有多少結果,可以用head和tail偷窺一下結果:

> dim(x)
[1] 383   9
> head(x, 2)
                       ID            Description GeneRatio  BgRatio
DOID:0060071 DOID:0060071 pre-malignant neoplasm      5/77  22/8007
DOID:5295       DOID:5295     intestinal disease      9/77 157/8007
                   pvalue     p.adjust       qvalue
DOID:0060071 1.671524e-06 0.0006401937 0.0004609887
DOID:5295    1.759049e-05 0.0027885022 0.0020079362
                                                  geneID Count
DOID:0060071                    6280/6278/10232/332/4321     5
DOID:5295    4312/6279/3627/10563/4283/890/366/4902/3620     9

然後我們就可以像操作data.frame一樣來操作它,取個子集,但最後你會發現,輸出的是data.frame的對象y,也就是你實際上無法用enrichplot去對y作圖:

> y = x[x$pvalue < 0.05, ]
> dim(y)
[1] 121   9
> tail(y, 2)
                 ID                    Description GeneRatio  BgRatio
DOID:7474 DOID:7474 malignant pleural mesothelioma      2/77  36/8007
DOID:8692 DOID:8692               myeloid leukemia      4/77 142/8007
              pvalue  p.adjust    qvalue             geneID Count
DOID:7474 0.04659310 0.1487096 0.1070824          10232/332     2
DOID:8692 0.04748286 0.1502970 0.1082254 820/10232/332/3620     4
> class(y)
[1] "data.frame"

解決方法來了

於是我給[方法加了一個參數,叫asis,讓輸出保持為富集分析結果的對象,默認是FALSE,我們顯式設為TRUE即可。這功能要求DOSE >= 1.9.1。

> y = x[x$pvalue < 0.05, asis=T]
> class(y)
[1] "enrichResult"
attr(,"package")
[1] "DOSE"
> y
#
# over-representation test
#
#...@organism    Homo sapiens
#...@ontology    DO
#...@keytype     ENTREZID
#...@gene        chr [1:100] "4312" "8318" "10874" "55143" "55388" "991" "6280" "2305" ...
#...pvalues adjusted by \'BH\' with cutoff <1
#...121 enriched terms found
\'data.frame\':   121 obs. of  9 variables:
 $ ID         : chr  "DOID:0060071" "DOID:5295" "DOID:8719" "DOID:3007" ...
 $ Description: chr  "pre-malignant neoplasm" "intestinal disease" "in situ carcinoma" "breast ductal carcinoma" ...
 $ GeneRatio  : chr  "5/77" "9/77" "4/77" "4/77" ...
 $ BgRatio    : chr  "22/8007" "157/8007" "18/8007" "29/8007" ...
 $ pvalue     : num  1.67e-06 1.76e-05 2.18e-05 1.56e-04 2.08e-04 ...
 $ p.adjust   : num  0.00064 0.00279 0.00279 0.0136 0.0136 ...
 $ qvalue     : num  0.000461 0.002008 0.002008 0.009796 0.009796 ...
 $ geneID     : chr  "6280/6278/10232/332/4321" "4312/6279/3627/10563/4283/890/366/4902/3620" "6280/6278/10232/332" "6280/6279/4751/6286" ...
 $ Count      : int  5 9 4 4 13 6 13 5 5 6 ...
#...Citation
  Guangchuang Yu, Li-Gen Wang, Guang-Rong Yan, Qing-Yu He. DOSE: an
  R/Bioconductor package for Disease Ontology Semantic and Enrichment
  analysis. Bioinformatics 2015, 31(4):608-609

於是新的y,就還是富集分析生成的對象,這樣就可以用enrichplot來畫圖。目前只在開發版支持,超幾何分布和GSEA都全線支持。以後就有事後丸吃了!

這裡演示用的雖然只是pvalue,我知道很多人只會follow例子,所以要特別指出,任何column,你都可以拿來濾,比如geneID你可以濾出只有某些基因參與的通路出來,比如ID或Description你可以濾出你想要的通路來,而Count你可以限制參與的基因的數目等等,濾完之後,你就可以畫出相應的圖了,這簡直給了你玩壞它的可能性。

PS1: 微軟越來越硬了,一則消息炸開了鍋:

Unlimited free private Git repositories

從此github晉升網盤,我一直在用gitlab當網盤,現在可以用github了。

還記得《製作meme的通用方式,來了解一下》一文中的調侃嗎?雖然目前還是gitlab給得大方些。這次github可是要死掐gitlab了,畢竟同性社交嘛,社交的地方,還是要看人氣。其實gitlab的雲存儲,用的也是微軟家的,以我個人的經驗,gitlab當機的概率要高於github。

100年後看,蘋果 vs 微軟,微軟才是偉大的公司,後賈伯斯時候的蘋果只知道賺錢。100年後再看,Steve Jobs vs Bill Gates,Gates才是偉大的人,因為Gates身體力行在做慈善。捐錢容易,身體力行在推動一些東西,就難得了。

PS2: 月底要去南丹麥大學,有沒有丹麥的小夥伴要面基

PS3: 2019年立個flag,我要寫一本書,掃碼圍觀:

往期精彩



讚賞

手機端點閱讀原文,在知識星球app向Y叔提問

相關焦點

  • 0代碼高效繪製富集分析氣泡圖
    富集分析是將基因根據先驗的知識(也就是常見的注釋)進行分類的過程,最常見的富集分析是GO與KEGG富集。R語言ggplot2可以方便的繪製富集分析氣泡圖,那麼不會編程的醫學生該如何實現富集分析氣泡圖的繪製呢?今天半夏就給大家分享0代碼使用在線工具與Origin高效實現富集分析與氣泡圖繪製!
  • ​無代碼高效繪製富集分析氣泡圖
    富集分析是將基因根據先驗的知識(也就是常見的注釋)進行分類的過程,最常見的富集分析是GO與KEGG富集。文獻中通常使用柱形圖或點圖來展示富集分析結果,柱子的高低與p value相關,柱子越高則富集越顯著:柱形圖只能突出顯示富集的Term與對應的p值,存在一定的局限性。
  • GO-plot:超好看的GO富集可視化
    GO-plot用條形圖,氣泡圖,弦圖,熱圖等方式將基因表達數據和功能注釋數據結合展示出來。選擇要進行富集分析的基因選擇富集生物學過程的特徵向量cirlce_dat函數將GO注釋結果文件和基因差異表達分析文件結合起來,生成作圖對象。
  • Metascape:基因注釋、功能富集分析、蛋白質互作分析
    分析報告模仿科研論文的格式來展現分析結果,圖文並茂,對生物學者極其友好;報告中詳細闡述了分析方法和圖形的意義,而且圖形都含可以發表的高清晰文件格式;報告還提供了格式化好的 Excel 文件,許多文章直接使用它做 supplementary table;自動生成的 PowerPoint 文件方便學者們交流結果;所有的數據和圖標文件都可以通過一個
  • 典型醫學設計實驗GEO數據分析 (step-by-step) - Limma差異分析、火山圖、功能富集
    典型醫學設計實驗GEO數據分析 (step-by-step) - 數據獲取到標準化介紹了實驗的設計、數據獲取、數據標準化和注釋(點藍字,助回憶)
  • ​老司機帶你解鎖Excel高效富集分析
    2019年4月國際知名期刊Nature Communications發表了一個持續更新的免費富集分析資料庫——Metascape(http://metascape.org)【1】,其優點有:5. 可進行基因相關的蛋白質網絡分析和涉及到的藥物分析。Metascape使用過程中也有一些缺點,例如頻繁的涉及上傳、下載、合併操作等。
  • 使用火山圖呈現GSEA富集分析的結果
    比如Y叔的神包clusterProfiler來做GSEA分析。需要兩個準備文件,假設我們有了這兩個文件,就可以十分便捷地做GSEA分析hallmarks <- read.gmt("h.all.v6.2.entrez.gmt")y <- GSEA(geneList,TERM2GENE =hallmarks,pvalueCutoff = 1)一般情況下,我們直接就會選一個富集分析圖來展示
  • ATAC-Seq Motif 富集分析
    /configureHomer.pl -install mm9    ATAC-seq 分析得到峰後就可以用 findMotifsGenome.pl 根據峰的位置進行 Motif 富集的分析。HOMER 自動分析已知 Motif 和新發現(de novo)Motif 的富集,還將新發現 Motif 和已知的進行對比。
  • 好看的富集分析圖-GOplot
    GO分析在科研中十分常見,簡單的表格或者柱狀圖已經很難滿足大家的需求,今天小編介紹一個專注於可視化的R包--GOplot。
  • DAVID&Metascape:專注於基因功能注釋和富集通路分析的網站
    ——DAVID和Metascape網站,這兩個都是專注於基因功能注釋和富集通路分析的網站。BP的數據,跳轉頁面。但是這裡吐槽一點~DAVID數據更新稍慢一點,其實也不影響我們的生信分析。第一,三步完成基因分析;第二,一次分析即可完成GO、KEGG和PPI;第三,數據更新快,覆蓋廣,整合了多個資料庫的資源。直奔官網去吧~(http://metascape.org/)。
  • 香港藥房佳節亂賣事後丸 明目張胆非法出售
    據香港《明報》報導,一些青春少艾在聖誕激情過後,找「事後丸」緊急避孕,成為了坊間藥房明目張胆非法出售受管制藥物的另類佳節財路。記者到旺角及灣仔4間藥房試行買藥,非但全部毋須醫生處方便輕易購得,有藥房甚至在記者還未開口前已主動問是否要事後丸,還聲稱單是昨天已賣給了30多人。藥劑師學會則炮轟相關部門得悉問題多年仍打擊不力,已令藥房「無有怕」。
  • 還不知道富集分析怎麼做?那快點進來看一看
    首先準備數據,這次我們只需要差異基因分析的結果,裡面需要包含基因名稱、變化倍數(logFC)和p值(或者adjust p)。(此為數據集GSE118370經limma包分析結果:Tumor vs.(GO分析結果)接下來可以直接用分析結果 "ego" 作圖,也可以將結果轉為數據框(上圖)然後使用ggplot2作圖,條圖和點圖是我們最常見的方式,此外還可以繪製網絡圖、富集圖
  • 十餘種GO/KEGG富集分析代碼全放送,小白一看就能學會
    今天給大家帶來一波GO和KEGG富集分析的美圖,讓你在論文中用誠意打動審稿人(比如我)。所謂內涵不夠,誠意來湊!「湊誠意」這招用在追女生那就叫死纏爛打,用在論文那可能會讓審稿人「放你一馬」,追女生得聽酸菜老師的「少婦體驗」,打動審稿人嘛,嘿嘿,那就接著往下看吧!作為一名優秀的醫學生,你可能早已聽過GO和KEGG大名。
  • 港有藥房非法出售事後避孕丸 沒有要求醫生處方
    激情過後,沒有做安全措施的男女會找方法緊急避孕,灣仔有藥房稱,每年聖誕後不乏四出找尋「事後避孕丸」的女孩。該報記者25日在灣仔一間藥房輕易購得數盒「事後避孕丸」,其間有職員在門外巡邏,藥房也沒有要求醫生處方,疑有藥房看準聖誕商機,不惜非法出售「事後丸」圖利。
  • NAR:MicrobiomeAnalyst微生物組分析師——統計、可視化和元分析微生物組數據的網頁工具
    網址:http://www.microbiomeanalyst.ca項目描述和方法包括四個模塊:擴增子分析MDP、宏基因組分析SDP、物種富集分析TSEA和公開項目數據PPD。建議用戶按教程,使用測試數據熟悉分析流程,再使用自己的數據開展分析。圖1. 平臺流程圖
  • 神圖-多組學通路富集的聯合比較
    圖B是2D annotation enrichment的結果,橫軸為自己的蛋白組數據,縱軸為先前報導的蛋白組數據,橫軸和縱軸坐標表示了這些通路在兩個數據集中的富集因子,正值代表激活,負值代表抑制;圖中的點代表了富集的通路,不同顏色的點代表了不用類型的功能通路。這樣,功能通路在兩個數據集中的狀態清晰可對比,看到相似的功能通路在兩數據集中具有相似的激活或抑制特徵。
  • Nature子刊:教你零基礎開展微生物組數據分析和可視化
    步驟31-49);(iii)使用公共數據集進行視覺數據探索(步驟50-56);(iv)分類單元集富集分析(步驟57-63)。數據過濾。通常建議進行過濾以刪除低質量的特徵,從而改善下遊統計分析。保留「低計數過濾器Low count filter」和「低差異過濾器Low variance filter」滑塊的默認選擇,然後單擊「提交」以執行數據過濾。右上角將出現一條消息,指示數據過濾步驟的結果。
  • 一作解讀Microbiome:所謂的「富集培養」獲得的微生物真的都是被「富集」出來的嗎?
    圖1 富集培養的流程圖Step 1富集,Step 2塗布分離培養,Step 3物種鑑定及測序,Step 4富集過程樣品高通量分析,Step 5將Step 2和3的結果與Step圖2 分離培養物種系統發育樹構建及富集過程中相對豐度分析從這裡似乎看不出特別的地方,接下來該研究分析了分離培養的菌在富集過程中的豐度是如何變化的(圖2)。
  • GSEA分析結果詳細解讀
    這是因為,傳統的富集分析根本不需要考慮基因表達量的變化趨勢,其算法的核心只關注這些差異基因的分布是否和隨機抽樣得到的分布一致,即使後期在可視化時,我們在通路圖上用不同顏色標記了上下調的基因,但是由於沒有採用有效的統計學手段去分析這條通路下所有差異基因的總體變化趨勢,這使得傳統的富集分析結果無法回答上述的問題。
  • 百邁客雲平臺——助您輕鬆搞定GO、 KEGG富集圖繪製
    GO分類富集圖是通過對基因進行GO terms 富集度統計學的分析,計算出基因的P_value和Corrected_P-value,定位基因最可能相關的GO term。KEGG分類富集圖是可以把顯著的pathway進行富集,有助於找到實驗條件下顯著性變化的生物學調控通路。