From ac4801915eb02d70ab98a3d85330a8c7eb933f76 Mon Sep 17 00:00:00 2001 From: ZhenWei10 Date: Mon, 23 Apr 2018 16:02:31 +0800 Subject: [PATCH] bug fix a background count bug --- .DS_Store | Bin 8196 -> 8196 bytes NAMESPACE | 1 + R/.DS_Store | Bin 6148 -> 6148 bytes R/GOEA.R | 6 +- R/GOslimEA.R | 110 +++++++++ README.md | 212 +++++++++--------- .../unnamed-chunk-7-1.png | Bin 22721 -> 21071 bytes .../unnamed-chunk-7-2.png | Bin 19358 -> 19447 bytes man/GOslimEA.Rd | 45 ++++ 9 files changed, 265 insertions(+), 109 deletions(-) create mode 100644 R/GOslimEA.R create mode 100644 man/GOslimEA.Rd diff --git a/.DS_Store b/.DS_Store index 2614f11f50455d4e2951fc3194219f56df6c3471..5d89cb306865cda8a87203d91eb6ed24dbee4a49 100644 GIT binary patch delta 81 zcmZp1XmOa}&nUDpU^hRb&}JS1aVBL>20sQz244nOhG2#OAj_G-)iWnQIVmSUiGhJZ kfPsOrb+U-iVRlO+9R*zri^=l^B)qu~2NHo+2ar#DLw4A22d9vQOq=OswZ(aA)vmC}zlE$YjW6aAk00 z&|?Vl%*jtq%E?b+U|=#aY+$KEkh{K#8ieNAgRw# z#gGAH=P{H6$xI;Mg(06InV}SD8&EWkp#-eR9Vk`8-~kj)0xC%dDgimD1gJ!xAqa?Z tTj~e36sw~)XEE+&+04$t&jAd8%@-NJGf(ChvE*O`dJ5!`%>g1?m;u1rKEVJ0 delta 67 zcmZoMXfc=|#>B`mu~2NHo+2a5#DLw5ER%Vd5;yxY?_$|}fcXLAW_AvK4xp0F8=1c| VPv#e~g1?m;r8P5Z?d* diff --git a/R/GOEA.R b/R/GOEA.R index 50c5056..b6d913b 100644 --- a/R/GOEA.R +++ b/R/GOEA.R @@ -66,11 +66,11 @@ GOEA <- function(gene_set, filter_go <- GO_tb >= min_bg_count & GO_tb <= max_bg_count - GO_indx <- GO_indx[ GO_indx$GO %in% (names(GO_tb)[filter_go]), ] #Drop the genes as well as terms not match to back ground filter + GO_indx <- GO_indx[ GO_indx$GO %in% (names(GO_tb)[filter_go]), ] #Drop the genes that do not have our interested GO terms. Freq_bg <- table( as.character( GO_indx$GO ) ) - bg_genes_num <- sum(Freq_bg) + bg_genes_num <- length( unique(GO_indx[[gene_key]]) ) result_lst <- list() @@ -85,7 +85,7 @@ GOEA <- function(gene_set, result_lst[[i]] <- gsea( freq_gs = Freq_gs, freq_bg = Freq_bg, - gs_total_gene = sum(Freq_gs), + gs_total_gene = length(unique(GO_indx[[gene_key]] [indx_match])), bg_total_gene = bg_genes_num, adj_method = pvalue_correction, ease = EASE_Score diff --git a/R/GOslimEA.R b/R/GOslimEA.R new file mode 100644 index 0000000..cee351b --- /dev/null +++ b/R/GOslimEA.R @@ -0,0 +1,110 @@ +#' @title Vectorized function to enrich GO slim terms with a list of gene sets against a common background. +#' @return a \code{list} of \code{data.frame} for GO slim enrichment result. +#' +#' @param gene_set a list of character vectors contains gene IDs of the query gene sets. +#' @param back_ground a character vector contains the IDs of the background genes. +#' @param orgDb an \code{OrgDb} object defined by AnnotationDbi. +#' @param category a character specifying the gene ontology category, can be one in "BP", "CC", and "MF", default "BP". +#' @param gene_key a character specifying the type of the gene ID, the available types of the keys can be find using \code{keytypes(org.Hs.eg.db)}, default "ENTREZID". +#' @param min_gs_count GO slim term minimum number of occurence in the query gene set; default 10. +#' @param max_gs_count GO slim term maximum number of occurence in the query gene set; default 500. +#' @param exclude_zero_slim whether to exclude the involvement of the genes that belong to no GO slim terms at all, default TRUE (increase power). +#' @param exclude_root_slim whether to drop the GO slim terms that are roots of "BP", "CC", or "MF" at the very first, default TRUE. +#' @param EASE_Score whether or not use EASE score method. (a more conservative hypergeomatric test calculation used in DAVID) +#'for more details please refer to \url{https://david.ncifcrf.gov/helps/functional_annotation.html#fisher}, default FALSE. +#' @param pvalue_correction method used for multiple hypothesis adjustment, can be one in "holm", "hochberg", "hommel", "bonferroni", "BH", "BY","fdr", and "none". +#' @param interpret_term whether to let the GO term readable, default FALSE. +#' @param show_gene_name whether to attach readable gene names for each GO term, default FALSE. +#' +#' @details \code{GOslimEA} conduct GO slim EA analysis using Fisher's exact test / permutation test on GO slim terms. GO slim terms refer to the reduced GO terms that are roots in GO hierachical structures. +#' +#' @importFrom AnnotationDbi select Term +#' @importFrom GO.db GOTERM +#' @export +GOslimEA <- function(gene_set, + back_ground, + orgDb, + category ="BP", + gene_key = "ENTREZID", + min_gs_count = 10, + max_gs_count = 500, + exclude_root_slim = T, + exclude_zero_slim = T, + EASE_Score= F, + pvalue_correction = "BH", + interpret_term = F, + show_gene_name = F + ) { + + stopifnot(category %in% c("BP","CC","MF")) + + if(any(duplicated(back_ground))) { + warning("back ground gene IDs contains duplicated terms, the duplicates are removed", call. = TRUE) + back_ground = unique(back_ground) + } + + if(class( gene_set ) == "character") { gene_set = list(gene_set) } + + if(any(sapply(gene_set, function(x) any(duplicated(x)) ))) { + warning("gene set gene IDs contains duplicated terms, the duplicates are removed", call. = TRUE) + gene_set = lapply(gene_set, function(x) unique(x)) + } + + GO_indx <- gene2goslim(back_ground,gene_key,orgDb,category, + Exclude_self_slim = exclude_root_slim, + Drop_zero_match = exclude_zero_slim) + + GO_tb <- table(GO_indx$GO) + + Freq_bg <- table( as.character( GO_indx$GO_slim ) ) + + result_lst <- list() + + bg_genes_num <- length( unique(GO_indx[[gene_key]]) ) + + for(i in 1:length(gene_set) ) { + + indx_match <- GO_indx[[gene_key]] %in% gene_set[[i]] + + Freq_gs <- table( as.character( GO_indx$GO_slim [ indx_match ] ) ) + + Freq_gs <- Freq_gs[ Freq_gs >= min_gs_count & Freq_gs <= max_gs_count ] + + result_lst[[i]] <- gsea( + freq_gs = Freq_gs, + freq_bg = Freq_bg, + gs_total_gene = length(unique(GO_indx[[gene_key]] [indx_match])), + bg_total_gene = bg_genes_num, + adj_method = pvalue_correction, + ease = EASE_Score + ) + + } + + if(show_gene_name) { + gene_names <- suppressWarnings( select(orgDb, keys = GO_indx[[gene_key]], columns = c("GENENAME"), keytype = gene_key) ) + gene_names <- gene_names [!duplicated( gene_names$ENTREZID ),"GENENAME"] + gene_names <- split(gene_names,GO_indx$GO_slim) + result_lst <- Map(function(x,y) { + y$genes_names = sapply( gene_names[as.character( y$term )], paste0, collapse = ", ") + return(y) + }, gene_set, + result_lst) + } + + if(interpret_term) { + term_defs <- Term(GOTERM) + result_lst <- lapply(result_lst, function(x) { + x$definition = term_defs[x$term] + return(x[,c(1,7,2,3,4,5,6)]) + }) + } + + + if(length(result_lst) == 1){ + return(result_lst[[1]]) + } else { + names(result_lst) = names(gene_set) + return( result_lst ) + } +} diff --git a/README.md b/README.md index bb06ee4..85ee1cb 100644 --- a/README.md +++ b/README.md @@ -68,94 +68,94 @@ GOEA(gene_set = eids_set, -GO:0006672 -bubble DNA binding -3 -4 -0.0026516 -0.7022065 -8.40 - - GO:0009967 RNA polymerase III type 3 promoter transcriptional preinitiation complex assembly 29 191 -0.0033730 -0.7022065 -1.70 - - -GO:2001235 -chorismate mutase activity -7 -24 -0.0039779 -0.7022065 -3.27 +0.0012078 +0.5996853 +1.77 GO:0010647 transcription factor activity, RNA polymerase II core promoter proximal region sequence-specific binding involved in preinitiation complex assembly 32 225 -0.0059308 -0.7022065 -1.59 +0.0020695 +0.5996853 +1.66 GO:0023056 dopamine neurotransmitter receptor activity, coupled via Gi/Go 32 225 -0.0059308 -0.7022065 -1.59 +0.0020695 +0.5996853 +1.66 -GO:2001238 -citrate (Si)-synthase activity +GO:0006672 +bubble DNA binding 3 -5 -0.0061875 -0.7022065 -6.72 +4 +0.0023288 +0.5996853 +8.75 -GO:0060538 -positive regulation of humoral immune response -6 -20 -0.0065098 -0.7022065 -3.36 +GO:2001235 +chorismate mutase activity +7 +24 +0.0030061 +0.5996853 +3.40 +GO:0045859 +mucosal immune response +17 +101 +0.0045006 +0.5996853 +1.96 + + GO:0071900 bundle of His development 12 61 -0.0070302 -0.7022065 -2.20 +0.0045852 +0.5996853 +2.30 - + GO:0043408 gene conversion of immunoglobulin genes 15 85 -0.0079348 -0.7022065 -1.98 +0.0047575 +0.5996853 +2.06 + + +GO:1902531 +11-beta-hydroxysteroid dehydrogenase [NAD(P)] activity +34 +256 +0.0047870 +0.5996853 +1.55 -GO:0045859 -mucosal immune response -17 -101 -0.0079599 -0.7022065 -1.89 +GO:0060538 +positive regulation of humoral immune response +6 +20 +0.0051416 +0.5996853 +3.50 @@ -222,90 +222,90 @@ GOEA(gene_set = eids_set, regulation of mitotic recombination 25 187 -0.0242545 -0.9744861 -1.51 +0.0141012 +0.5162342 +1.56 GO:0008219 transition metal ion transport 39 327 -0.0335098 -0.9744861 -1.35 +0.0156435 +0.5162342 +1.39 +GO:0048856 +regulation of transcription involved in G1/S transition of mitotic cell cycle +83 +848 +0.0683518 +0.9268498 +1.14 + + GO:0040007 mitotic sister chromatid segregation 17 140 -0.1119732 -0.9744861 -1.37 +0.0852517 +0.9268498 +1.42 + + +GO:0007165 +acyl binding +77 +795 +0.0988005 +0.9268498 +1.13 GO:0021700 citrulline metabolic process 6 40 -0.1378236 -0.9744861 -1.70 +0.1221631 +0.9268498 +1.75 -GO:0043473 -DNA damage checkpoint -2 -8 -0.1532290 -0.9744861 -2.83 - - GO:0006790 mitotic spindle elongation 7 51 -0.1608780 -0.9744861 -1.55 +0.1415087 +0.9268498 +1.60 + + +GO:0043473 +DNA damage checkpoint +2 +8 +0.1453356 +0.9268498 +2.92 GO:0071554 mitotic telophase 1 2 -0.1690890 -0.9744861 -5.65 - - -GO:0048856 -regulation of transcription involved in G1/S transition of mitotic cell cycle -83 -848 -0.1741215 -0.9744861 -1.11 - - -GO:0007165 -acyl binding -77 -795 -0.2114339 -0.9744861 -1.09 +0.1641360 +0.9268498 +5.83 -GO:0048646 -G1/S transition of mitotic cell cycle -17 -156 -0.2170074 -0.9744861 -1.23 +GO:0007049 +cell wall mannoprotein biosynthetic process +26 +250 +0.1651823 +0.9268498 +1.21 diff --git a/README_files/figure-markdown_github/unnamed-chunk-7-1.png b/README_files/figure-markdown_github/unnamed-chunk-7-1.png index 3e39059da94081cab3009efbcfb965988f1ded2f..8711a34c5305843f4596eb6c31ac16f86028de59 100644 GIT binary patch literal 21071 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 diff --git a/README_files/figure-markdown_github/unnamed-chunk-7-2.png b/README_files/figure-markdown_github/unnamed-chunk-7-2.png index 300b9f2c24836063d57431c1dbea9f5d4d4fd876..c8295f314dd77568e2086d4bd7f8e125ad02029c 100644 GIT binary patch literal 19447 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 F{{VJsIH~{u literal 19358 zcmeHvWmuH$`{vA$f(S^xAPCZkfC37VgVG&}(gxjKGK7jCARPh{BHbX}C`dQbB_R#c zFx1}TD~$g=_SkQ`d+hG-!|R9po#%P(xZ=Fd^SXJftSCi*M}-H0KnP@{#Z@5?SRw=h zox;TiBd!6HybuT`fyw>*$};!w(<$3p8Jd_IKp_0@-aXVYrhZ5&QfX(zz}Tr~&g*TT zE=s^e5T?%iv8cjheEg1Oq|BWW`UU;nwa)h~o%}qN#~+m>l-+JE#gaDEmU_~$?huZO z6mdo1F^%-ov5FM!zfxZCPhE}{u@2*j1=j0NPZBKZjlH)lzNU3WCy2aWf2w`Rew%6j zhf0H7W@v)s5$?2^1)_v{YBVx7gjf_icx)mjFO_&*TswOdC$lCYIj7j~n*03gJ6kuV zIefeL=3CY3hq5xm8b8!KHk97h+}sqztb1Fb6|>P~duX8+zd1j*bUUW)g^TzRvdTqz z7h#)lcXiQiVe54y2hLGSRQM~hhF88GA0@?h=ci8!#$<^wC{3y6WIQ-SKV8z|n$fXH zUFed#NWs@nD@VSJ^ioYc760sS>zSv4ouv}+PHBXrd};YWrLmL3Ey2zEPL`KP4Z-IN zSgh}F`c&g7JjNi_XN6-=k`EbYyt;(VO`1bW>8JP6kmAaGozSL0QFKRr&6n_#=4QQD z2W6c_*Y$lwUXmA59R+5S_Ze(td22r>5p}=82NPwcq`N%)s!Nw!W;eu!8%pouC#0|& zMqNmvzm6P|HJ8v8;u|=w3gA&qjg=U`TU43&_pZR2JAX3!QZ-J;T*d_nH=PpQ#jq*=D?H3oCCtK_y{?)*@B z%Du^Q5%>8$l_9UloaICE1g>~tnoG}Vf2JL3*Kn#s-yRmgwiQkuK76of9nMChZl%Cq zBSsRycwavt{LX{DvPWAV=_8cpR85G~1l33~3i`zeeLkl;CR)G_k7&MUSQe@-^**0K zz%=>K`ipnWW6qtf*BfuWQWrh^lC1Tl_&H*v$m zC!|oQ81WoweZ-+^KD6BXXEWF2`wV1e#plYkCBG#P5kh+dLw)^OuFTBIzyRNN>oJMP zL~sZc^WT4@L*a&@onKA<8oCL?OspbC4}@NaLt-9SD!zfhaOpfz|G*)wFV5cpr^^5j z$jtrJ|MP#rPrwUs{_}$W>-IoHM)(TLeQ>hRNco+AC2p@zie_t1xXjaJXqVf16(x9_ zlph_|o>mU)W~een-!_ZXH*`G}UgHluT2%4~mGCETd8CJ6Dlad$-Dsp}BYUKM?fJKW z5ONMp%(>H}t**8YckN!5xa4dv_DM+w{PUyO-vXEnd<37!GZjH*=Y^XbRkzreHa8O_ zdTBXnb8}Ou&je2SzR8Eyoprp@i7R-w;Vp^nppH|^%JAn`yEGzhj|XzJSo+eGqB7Ld zS`)=yf!Q7Wj7_XM7Tl~h9>~_H;mD>3=Ex-F2`QTGzx~J$K5~KAv|rk?=HTbOyychp zoUHll%^?h%yQ5Y(79MjEkAyIk32q|l=f6MF;}Cwa8y<7pEM}lPn#ZX1U~ArBDF3N# zp8{X>s#tUdyVHbA+Jh{0j#ICvYYQDvtZIGF^?W|9JLT@T51KmqdP^8@Djgv=Y#Nzf$)v7ay!*ZM+>$`x!NI8 z#uZ?vm8(N`{XsfWc%Gx$P`O>&g)jFbxEA2* zMDWB0JZC4@>jl)>{4m_)%DRNpBO|-FROY503Oc;aFII~O+n4K33qODESlXCrGT5AL zVUDvpO_mAMKRG%mbUUzJ94h!^WjE%&Hd(8;R&!|CqdtaBK;>JqYf6`$lSB37r=H`= z&{IttuBu=6%4b96k|p0!*&eQz9%@-*^m+WM$6>aJxc)Ht>DM<&O~y5o?uQmnxEIGO zOYf#(4|WOfeK6_xPCgDk9cw>AGd+2-Iw^kGvvl|NO^fl0Vz=F4Be8@0mmo6DQZ!qi z+B$4n>C=D!C;bp=kaj%hO0Dmd}cFb)*=7q||X$vqxP`M>6OtN0-o6 zfVO>)gzZB2HJ*Iq(Gm->S0P2ky!jq!myCPi3RZ_s%L5&HfpuX=$ido3VB_D-dyfzX z1oEHqJU0CGe7Wj6YLy19%6?$?EyYAcFu8J6m=EQPZL?Q`<14iOaj&Jh`Q~WxjtY(h zjj(Hfwwc^2IQ4cjg-_#HZX87(r-zd%R+BZ;-$m75>8uhiFJDa@tawrnBWb_NZ(a96 zi|2df)78N4VzWnTm&Q};(@L<-N-;UMs$8}LBG#UZ0jtBqHHNgJc3_BpYJz)EH0J)v z3$UyB+P%Mid_8U|f92bLa=2bQS=&JngGc@8z&Wm~nryYK^hX@xa2Jb)$9_S%Yx`i! zT51c2hN5g5d-z01*ZsiYl#`FnaSSrj($Zox_GGwr++vY;aa?OHFjdrLGx@Xov1=0n zUWX%}r^8rXw~bY)pry5GNqOl)9GhAyzolH(mXGLBy^YqRj$LMjnD;Zc?fB|=M~hZy z1njNH$o1xjjS?I>Kir+E+8NL~K`=-K+K;I}Gg=hO&{(3`5^mo&(`EuLQ!ga18@T(lX}8aOGc@hr5N`No{TMMLzDXGLj=a9gT@qm~ZBhjf3jL|=ePe(5f+uf0{H zpvOU*-iP(t(;B#DX;+$PdevN{*2`V9y8Rw0+Gsj8r?T;jM{@}`pWai}6!uw<8PnP} z)O!L!Hd5$erqs>^3d*~3%oB|F27Eh z3WGLs8?DQ8e6hb`N(*k%fzH?==d5*QDgP#o;p4-(#e zUsj*ma_{gJ(z2A#VuY7ftJ?c&*$v&Qq1w!?U~JBc-1%;adBN|T*fkPX8D^86bp~5M zI}9J{cJA=87}cJCHy^-eaU45!{0UR#5AiCx+^ycqBp3PKtam^H5vp?HQNwc0Br#Jg z?h?PP6^s8RaVkN_?Ao1voKG0;ymb93>Gk3@+aV|YQ>&Y8Tv1Mwh`|q97>02tEu~c; zll)B4m5SyzXkX5&JsBw-J+ePE^Lvq{?Y>tz`8II2c6Y?=`0#Yk<8<&;Q?F`o;>C%B zu+`MG143X)hk{_lLAlqDjJ;hnjuOstFzAria*VMxcN>NquI)7?Y9g15@hA`iBgb2y zj;Bf_D_LMY00BRmEz+$%Nil)fda4fQv#{z$&{{O7md3W!^U244vA1!|a`1p_C$dy< zziA9M=ptHd&^w4sw|nWzLB)%-d^kUu$KfsDH)hte1`~K&jqMa9wCP*+>h53tsprW#0W_2S7A9v48^;S>w@7>n4Tz#3i<+tSP zUcHkW#PMCCPuJskN35}RQZrMqm`q)&!i>_vkD0($E{fBl#LPb@uyrtTa&?_5oPr(Y zr^L7`M6G7vaOl2c!EmmX>peSxa_Qzd^p^z=Ii_iHFWSR{MhE-0E{{+3B}84(j^C!I2Sog%{a}#J-lH zchXorZY4Q;*g3PCY||XLOJg1G?KyJ_1f`W2nu@AbSLbfIxo@_x z{Jfwj@Q-vJn{}XCT(Ub@oZ&sU)wadu7a67VJ2pwjhkJVzR==j|4Rw|ItncXH@aB|Q zn=UUbeb2%#az_%j@7=R%Gn2~~6!eV7;N|0cw4G2Qu$<#z!D0CCY@g60zvvGEBf`bR zUC1${vB?b^sI)U+UL7b5w4VHI6tu8lOW=zroxt!T-&U2{T3&UcSq#ocrgOl$o!w_pbq1I zVto4J73AVR*3!jL^Zcz`#&b#iC+3fMsgi7w^KBW zO;tgKVDddPB7o|)Y#^=Z)ps~e|JIJE`7%DH`)VO(f7vat%&^vOUJ->J_4W0oPfw0h z00dMmHhuUxHz#ql)G7)fZ$I6EFW&emDxV~6ghivztq-?>`H2n$S%*Q`T;Z^+U;h$I zHC3LnD@)YwX8@R#4k`gr@>zZ`qPl~s0sgfk(jZTV(y75*9d;1voj%s5aYu6MXxiG^ z&b}fPVZHjW)9>t;bjsQtL93WKEE}OG5!$l@xD8MA&@gVa-M%{Roht`kDc({ zn}e@0L%yr5RV?^ABbIuM5)kAK!>I~a%BTIe2=Wnj&t<@nTv+d%6>1S|vdQp%2U-Yl0iRDHMclilM8f_uC>l zBu>3G4Lf4U9-e&MG&qZ(ugTN(YHLie2;#Vl)!L(Zq-u~$S^b>)Fj=Ei#(@B z-gsomI+cz|UO)Z0YFNz%vTq5!*j))hRf8a#F=Jp~l!j1hpv|v=9{50J>G#`1A9zhd z7d>2%+a@iot)XDwseH=q=3@}9_$Pn_e%tuw`B~(IVqT_uGS0ETvSQ9ts3TQ6KRdfG z(-|*prn|Q`uI0MBV#1ufw?2!7KD1Wc#}uCA%xO7^6$^dAf6+&(kLoJ4er3qXwESxs zsM!34m<~c9^_CZHi8dtpoRIHL7Ln|aII}&#W(Qs&rToi}rRpj~5=oflgWZpjGP=6) zLMQt(q0t)77jwG2f9K^tX2$_thIK2(3A7X%w6#k+BitfH{QR-btP);#)$28(19=iktd{oqTnjRE*z|j{YKm-c=0kSM+os{vqV83g4;iA)vCa@fuz`}w zsY-90pp$GoRvtk@9u*Pc;mF*wys)4M=gipa44*0ua$G71W zXK_f{3>BQ`<6m?Zxp6+uhqs2a&1l@6X$p#38?S8Z&rmZME3=6=8A5{}Wg*zW_)EP? z$DA?5-nch*LhIuSdlSGkg%FDDCptg4%YGI*J>ef=16YZGH3|kCDTS+84UIoJM<_sj zNcDraXVH@`m>%^)T7K(9W1AeHuZ>X23ifOjNlfl`d+a z6PBu6T?M4bVR@hs@L801%->(6YhnGNQ013*^(b!mE=eFUk4LFv~cAhTj@d^hN zBh39`*Zi*CPx-<&^G-h7S!tK`>OFaO;{sC8Ff;}fXCmT;?964p^3ZkLkT_VYTyN(% z0K7)@=%&L`KQRF|&_u52^(G(Pc$gV(zc!{}I*=V5zGZV6y^4L@*EF6;#ZpjHXnZz& zm#tf^i9+%y|L+n#)#j{R;dYsR%i`9uk9Idt&op?mn6zuZ7Y5F3PU%D_--Pph_3X#j zK(q<1T&rlyE;a7?qJIRWl{QZ(#_WKWRRjQC&hY{7&TIy_?(2*2C{CU00Q25ft#;kv zKIW`+TIbZzsQ1}j==qvFTyrDsV<&Jsq zB^rVEH+ZV%412sLt7brNjSzWJ8ESE0f`@f8${cQ$EKl!bkNwLF-|1^(m9NdR&2cIo)ez!6iFw(5h46*M%4CwjskL(|vO z0hjsqw>R452XQlWX$?2fo&6w z)B6Es1X5*cvzZ|XGk5bGdxP)X!@7r^2n36;(n)tMupnVfC|AxFrK;N1J8Op2D`Q6#h19|i@>?u|vC<2KQ zYcGIdr98}12SSD6%3T#G+gPFcLBa*BCRBHkla$GSL^;WLmCJu#BuDr z3=9k_VWC9llTVz*duD~4*b_mrS#ObZDB%b zg)JQ&9KrRmRyAxI8XBr#V_=6v=cWdz<0yEu)-MoDK1I9LNCjQp?7mOf0>oDdEeY^) zL^P;#qmxAh1xMMfO3pJRkR#wI!(o^->Wb$80i1cLpBkI+syX-4XlY*6uP^vm+y?0U z4S{+8cJw;-+_HN$N1JjQ#ikJ^$Nl6=s}v(ZR{OGPaGtHe)Z$S`;HqzEn7WY2aNP8_ zqZXkYm5g1z`BRXHrv8aP1sA8SsNkQa1G?twiP=$Lw@wRa-7jT?sa|2-{>X%ckVN*Abg$Vj-n4rsawIuJME(M0 z-QGGe>NO(xH9$PuT*}IenQx$oj9mR49lY^Z#>&+IW58zjvz<*Sgz3fh4@QfTqJrci zQW7YppB&w+__hR@IpFnd*T(MN1sP1GW$2vL1!t{Cr;nd5Vz^bkH?c*V$i=%LWWNw> za$r7?O{sJbulM&J{Oh-gtiX*HzP-CL_rr&lGq}l{LYEb=9ES8r824WRgjE)020>Fo z2&BD=OFrSby+XY5v7RkqQ0;0+qcNywoha7563;h0#E8V7W_i`jAmd#eYe4B1XA$-Y zc1;VO^&o>D#89srIu-pw!XJSPs(z9r&?vQxyP;9oAe5vwpSyM3)`~~jhg9msKY!XQ zl!b^}^M+ncRklv0I{A&qbSSgdla~4-`l}8jiG=lq!h?0C=HCx^U1mrOk`{8?&j&IO z6Gv{j>Kz63XnEHu2xac)n;o7 zqUHKk^a%*T(OSPoWPi)Z;Arp`!Zv$TupYcJiL<>)J)Ew>a2F`TH?&IHh5YR5JfW%|?|DBcBX9lJvEkZSC;+xvIvI)FS#G*L zIo-SxW0o5N4v@Sl<1Pyf3-wOW0T2oRz8s*`I`q7}?i&9(0HPd@Kn z#haCKhK9{HO(qYmwB=3lL98p@7ueJ}HANzq^Ex~k5qQ0GQF@%ne-!^tl=Q^7?2zvl z0ZYlD5W{;5A+p0Irt=rM1gBH=${(58TN!2mp}cbObxzJlq}%?j=ilCoB#zLAqiH6H zmo>^QMxck0T9zSJwa4nr^6%;9S|fN|oR<1!n3dvh0DkG>o_6wISrLA3;^p9l1(3B;_;+k# zg_Z_Q=F?OZ@60p-j zpaO8TJhjmd>`T(Cz-`*Up;!;zYwFhzs$Ctz_Cgq>l7w-Z{)+Zf6u85%kqQU1zP&AQ z>`_`))eos|n=%52*)U4vvbVnc_p5%OVCG=92E%&IVQ!1rw*bm`m&=~6h55wiTV8h` z#0}T24!*XxBrHOg3`qXUk0JQZyHJ3UvOfqoT;Ckyhn+tK@gjo7L(@A~hx4C)O}vk? zp4dAUcq8BN{(cqdVV@@!DTcNZ=BAl6!sS zMBBqY5WBujhEt<+svi*$)?hw5=%d=8V70&6JvOF|LaV0%hr6phTVB|fTdQOFPhYJw ziK3q+VpXlKkkXJ4oT%^8?EpZ`v4ykJ?zfZi5AEjTv?Tsk5v=<=bbKp?}2 z&J-XYHcGCc@vs*r?qf<%Q0zYf+si;e#TyLxm94~9z` zRtHM8WKaj9*!*YL#f}s!LG5n>n!k>?8Ck#%(lugbmn1Z+j{as^8LDd(AAe}pd$-k?yB}|cJ>WB3KnN}Gq7Md67TUK zPSJgzO8^IL2H!3;?xD}nDz$93|EpG)&h>QQNW{RoL`rb4xT_y@waL>e(RhYON1I4~ zSsyC6pQ@C=2|6@LsujA>M;5G!s@6d~joeutYy;NVp0mF--$g+Lx}CDx0hwW0_Tvrg z@Sa6C@otPq`W&bX!k;$0c=aXYR&2B+e`07*eX zssKu!WKc?P0@cQEm(l=e+a9W{nxIG1YoEsD_F2_5ATeM#UU`*;$6ED^y*z>BmQ{8(rUOEBca0lpCfgw$?7#C1rtJ@4>T-_MOHXz#d~lLaqVe8Hq=B zUAoe7RUAVB5x5C>zl(G6!Y^iP4%fm=`chj!4el2m)psr>fMz+c((j{7ROX5?yfXIJ z8CP*qyHqAB9J0zw{*sPbJgT$N50QTMbU?t131b7z2R#7JcCYzt)D<&0QknyRx8Xh4 zQ$<~Lz(@{2NvKb4NANQJMF`%ab10nyR(2&;LPdD^MRX*jh5`o)mwt6_3q*Wiq)a80 z_&hX%x)?L@2Wtp6`YB5=V)KcS0Uax?F>&EvRsJe=;bUNAMp8x+y>CB2gnjc#oC^I^ z*#!_`--QO8rQrXukVOZ1cZKOM?dmlH96}X%`J9!5Voo!I5k6V&d*?A87j&QUQZx0U z_oYDrj97;2ql-48KnT>BUp5&nviiot)yHh<88CYvph|#3AO#ndRRBUYt5FJMv{;$M&b>zlaOz`S6-<2@I$H9kw0 zSd5a7*Rwf30FGh+s!G)~#W+%SjoHSGhgp$F`!hiyw9Ws11h+v2Og8Yn{th9u+F%?d z(yo?__P!L)n+HI^gxE7x!u!vB2EcqY^}I8jphle^LPmhNczInjsz6o_bVE=X{rpV|lJ@U1CC`>(?%1u7c)W%$Ul#PZ{foGDqPF?&qsEE*{S6zvYrR8-~nK)COXyH)MvIC z>`NehGJ_GgjEp2v#hVqhDZkGLq#>*(ZoFtYUh0@HcS z>D2`LnUfXee{NE$N?>GX>GkFF%`o8roALkR_Wak5rDeZq^x@hQ=W|0qgM1zU1(H;} z#&pBO!>XSR6*AOwVnAz*3}{?p`Xu=-6cuLWXl!WCPh9hY{;=b1L8rBFP*clFO1=Si zBlM{5n6m;Z;P&zeUIpUNG5W4uYJ1FWIdVYmzN5NbxO$n5>-?w(P|)gkC;NeR{u8fo zHnne`ZNGua8_eeS?S(R%8KFMX5}TG#CT^47DY7sa7+xU@Fss?2U);P=rhTLJZ<@w-i_w^UL zKT7;O1cYWYz+8;r>W53n;^ulkdB1hw0ib~x0p^VXRGg@P`XHD@!X1PL=zC!YX~b`Y zKH`#mni-o;MG?60!5rbt)+UP8n_=0z$P=bG7^=8lV1GEhFpv`qk^<8>XIAra0Vf18 z8zLnyR}UI(b!WYgmmbw#KF*qsbDCh|ra5ENKtc^=M>Vbh!9f<)mj!4gZsTscz9uys zIs-$)n1QeVQ;m;Yd2Y1O!2jZvJMu+@?{~Y}YVB7?9)1g?VF$8jXRW`(neRfpo{Q;n`;5BSmIj3#d=zC0uIT#)vkuJ%z9L4WePVr((^mi*i=RJFDzk=nf<|6??E@sF+b=T7L6<e}Kc5XH$uz?PYnB3b1fH&<)<102F z=GNir8CljWc;;PX(kBV7WaL!8vA?n387J6bpyRgDxajOMpc~eySO^ICGU3!AO<&R* z`)>%Yw42`owyIFy8!<)?lvHW(088!hs+Alm3~KE6U=O70xpj}z%JAzCuS>{^-*ST? zd2>MVQVzINMC^Vv495N_mp8>2^v>ahzoFm9RQ$mIG#>s4oZ%$1d#bPJNnnp;Ah`6A zEd7@C4c@|oP=OSE8GLy38#alFQ&e3QrRT0O;c%ziOA*yN0pR=O5^lbtg z-A&6eel(JC zDA3(Bs<3{nh`|6>j_8QxlLKYktCG*EM=)eV98m0JK>L?p?alByE@f4ZQxZ?)Bu#fF`&vF$M^9Upmcf7w4H{*Q}<|$i0{4PO$BhWf7IAkep>aT7tZjhP& zx4s5CZ%xhegrh2|hnhsUGkNoZxS89@k&7Prk$f<`$RR9oI(StSD=8<+I0!?;&C598 zfD?a`FEU*8cw0@}M@lV8Isv?p2AN>i3+F2CSo<_1UPR3C4qnkxEUaWiWGpvwOve!YSlYMKGKUk3iw=yqL;sCJtAZuGKYWa}R3?_T<*#@21=R-0 z1G+7n2z28>aahs)e25seL`$OC{v54AP~^Si0kro#xD{g$NcqJwy@^ghj?lA1GVsZq z!F3=SK2Q6xx{01HCE$7=z}-2)HLmu1K^MksPLKDNbFhu}fBo=^b)oqL=bbbFq1+aA zb?ojM?L_BGEPQIdI-4=k8`OJ2%m2uI{ow`caWg#mNI&v^ zFX)u3R_l&vvY_0tnvvLs^|%}6R&C18|BSWTP1px~=TE{Fl#E^bj-ueg!aC0JbGcJG z%aNiC5=97A$9n3JtcH-39ll6?M-Qq+6A%O~Kn16=PZdERo5A8I>pfwo($kjGU)NBOn#`K!^OtD$^+xn#{b_4)HzF!d;fIDv<2Wiyv- zFceQ^it+ug1j_=#?P%1QxEfxRK)HIEc)xn?&9!OlkEt(Iwo`sI!=Zbf?*U&gKPH;q zSbfO$!;M8^tCH>4hmtC0h=R3(#YENchx%%ZEB4GfT^$_}Uj*E(h6^RC0(<0(M9Jh< zU_Jj-mU?wWNly*$v>5FNynUh@GaD>8_?w2cBJwVF;y&Di7jwrgV=YM$8Hj__ja^V?kZwi z z9&}i>$6dp&YWVnU>_*aY`@&QWz+=9n6#Ykiy$f(kn#V1dX}x44u1kDS5pw5~aO-`> z4+3@lf`-N^9cT8iFc(+XXG{V5Tc@{bc6f|Bov(iV){Ob=_5jyg06C(y-U?)SP24ej zs{>zdT*c6&V?dlz?7G|qh13DY6u3o4Q1M-hj^vIw2T_Mp^r+r=e{@N%34Ug$e4_to zf{y#)=wxfU%BR`PtX#hedFp*aFJloN*JQyuM>iar=h}0ObYWfDO6o%{&_V<(!cJ}_ zo^D5_?`riAQsEXfFr#KKICXFPFcU~iCsS&2HUR3zeCbXQE)m$Eq3JM^to>>)%duLL zYQxmAduUNTB=?XUx*2Ii@M^y!^Q}Umv z2DMEN_C@*RkzHfGuTD?yJFpK(xn7`*^3a(B9wfEvX#>l==RGXm?w*sL5ed`{+7o-E zOLw__b!4&GU@K@Z0rzt`#VU)fave_w6M!$!ITf|VK0vQ#q~{zkiLp$_U!BUgDgjzBXzO&p2&(f)=Z0yIOoUJ-*DH5_8c0LCB@|LqAQ=a@ny|9DrnkfCY2hwwt~*VmCIr8Q3X^@>1I{xD+PMHdeD*qZ2-r*|{LQ#=w8PlTjZkm{#B+%Jqx_cPF~#R43J_AKp}rWflJ> zdD6(TE$u*frqh||g;(=OPxw=4`k<3W`lJFDcd7OLH<81LnF2;JIL_}v5es>r%)vD0 zYISjXDG}n6vcGIsO*7Wbz_A+|QVXvrit-W%i{x9bW6ZO$qWtq`QkTb|`?@y)GrKc$ ziTHJ3Uy_Ss%)A_7+diQqYfIim!!!=rRytV(1rBAcgH$X6bWaC51mwVDQ2z(zCB`JhL{nZZajMF!gFp8=lx9dYni^awp5K;O0d_n)l+ z0=osMi*LBiKhPr~z~dx;N|>TI;~(I0{|C3H?i9l*HIAIR_hu{jyIT+$2}SYTdrw~e EH+J9njQ{`u diff --git a/man/GOslimEA.Rd b/man/GOslimEA.Rd new file mode 100644 index 0000000..971eb53 --- /dev/null +++ b/man/GOslimEA.Rd @@ -0,0 +1,45 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/GOslimEA.R +\name{GOslimEA} +\alias{GOslimEA} +\title{Vectorized function to enrich GO slim terms with a list of gene sets against a common background.} +\usage{ +GOslimEA(gene_set, back_ground, orgDb, category = "BP", + gene_key = "ENTREZID", min_gs_count = 10, max_gs_count = 500, + exclude_root_slim = T, exclude_zero_slim = T, EASE_Score = F, + pvalue_correction = "BH", interpret_term = F, show_gene_name = F) +} +\arguments{ +\item{gene_set}{a list of character vectors contains gene IDs of the query gene sets.} + +\item{back_ground}{a character vector contains the IDs of the background genes.} + +\item{orgDb}{an \code{OrgDb} object defined by AnnotationDbi.} + +\item{category}{a character specifying the gene ontology category, can be one in "BP", "CC", and "MF", default "BP".} + +\item{gene_key}{a character specifying the type of the gene ID, the available types of the keys can be find using \code{keytypes(org.Hs.eg.db)}, default "ENTREZID".} + +\item{min_gs_count}{GO slim term minimum number of occurence in the query gene set; default 10.} + +\item{max_gs_count}{GO slim term maximum number of occurence in the query gene set; default 500.} + +\item{exclude_root_slim}{whether to drop the GO slim terms that are roots of "BP", "CC", or "MF" at the very first, default TRUE.} + +\item{exclude_zero_slim}{whether to exclude the involvement of the genes that belong to no GO slim terms at all, default TRUE (increase power).} + +\item{EASE_Score}{whether or not use EASE score method. (a more conservative hypergeomatric test calculation used in DAVID) +for more details please refer to \url{https://david.ncifcrf.gov/helps/functional_annotation.html#fisher}, default FALSE.} + +\item{pvalue_correction}{method used for multiple hypothesis adjustment, can be one in "holm", "hochberg", "hommel", "bonferroni", "BH", "BY","fdr", and "none".} + +\item{interpret_term}{whether to let the GO term readable, default FALSE.} + +\item{show_gene_name}{whether to attach readable gene names for each GO term, default FALSE.} +} +\value{ +a \code{list} of \code{data.frame} for GO slim enrichment result. +} +\details{ +\code{GOslimEA} conduct GO slim EA analysis using Fisher's exact test / permutation test on GO slim terms. GO slim terms refer to the reduced GO terms that are roots in GO hierachical structures. +}