Hello, I am making QQ plot via: library(ggman) qq(fdr2_sorted$FDR.q.val2, main = "RG_All", pch = 17, col=fdr1_sorted$group, cex = 1, las = 1) data frames used look like this:> head(fdr1_sorted)NAME GS<br> follow link to MSigDB GS DETAILS SIZE ES NES NOM p-val 1: GO_DNA_PACKAGING_COMPLEX GO_DNA_PACKAGING_COMPLEX Details ... 77 0.6757226 2.466745 0 2: GO_PROTEIN_DNA_COMPLEX GO_PROTEIN_DNA_COMPLEX Details ... 132 0.5958179 2.346520 0 3: GO_RESPONSE_TO_TYPE_I_INTERFERON GO_RESPONSE_TO_TYPE_I_INTERFERON Details ... 52 -0.7521569 -2.533148 0 4: GO_RESPONSE_TO_INTERFERON_GAMMA GO_RESPONSE_TO_INTERFERON_GAMMA Details ... 101 -0.6370415 -2.420473 0 5: GO_CELLULAR_RESPONSE_TO_INTERFERON_GAMMA GO_CELLULAR_RESPONSE_TO_INTERFERON_GAMMA Details ... 85 -0.6571892 -2.402153 0 6: GO_GRANULOCYTE_MIGRATION GO_GRANULOCYTE_MIGRATION Details ... 43 -0.7332099 -2.398983 0 FDR q-val FWER p-val RANK AT MAX LEADING EDGE V12 group FDR.q.val2 1: 0 0 1111 tags=43%, list=10%, signal=47% NA 2 1e-10 2: 0 0 1516 tags=39%, list=13%, signal=45% NA 2 1e-10 3: 0 0 1427 tags=54%, list=12%, signal=61% NA 4 1e-10 4: 0 0 1819 tags=45%, list=16%, signal=52% NA 4 1e-10 5: 0 0 1216 tags=38%, list=11%, signal=42% NA 4 1e-10 6: 0 0 491 tags=28%, list=4%, signal=29% NA 4 1e-10> head(fdr2_sorted)NAME GS<br> follow link to MSigDB GS DETAILS SIZE ES NES NOM p-val 1: GO_DNA_PACKAGING_COMPLEX GO_DNA_PACKAGING_COMPLEX Details ... 77 0.6757226 2.466745 0 2: GO_PROTEIN_DNA_COMPLEX GO_PROTEIN_DNA_COMPLEX Details ... 132 0.5958179 2.346520 0 3: GO_RESPONSE_TO_TYPE_I_INTERFERON GO_RESPONSE_TO_TYPE_I_INTERFERON Details ... 52 -0.7521569 -2.533148 0 4: GO_RESPONSE_TO_INTERFERON_GAMMA GO_RESPONSE_TO_INTERFERON_GAMMA Details ... 101 -0.6370415 -2.420473 0 5: GO_CELLULAR_RESPONSE_TO_INTERFERON_GAMMA GO_CELLULAR_RESPONSE_TO_INTERFERON_GAMMA Details ... 85 -0.6571892 -2.402153 0 6: GO_GRANULOCYTE_MIGRATION GO_GRANULOCYTE_MIGRATION Details ... 43 -0.7332099 -2.398983 0 FDR q-val FWER p-val RANK AT MAX LEADING EDGE V12 FDR.q.val2 1: 0 0 1111 tags=43%, list=10%, signal=47% NA 1e-10 2: 0 0 1516 tags=39%, list=13%, signal=45% NA 1e-10 3: 0 0 1427 tags=54%, list=12%, signal=61% NA 1e-10 4: 0 0 1819 tags=45%, list=16%, signal=52% NA 1e-10 5: 0 0 1216 tags=38%, list=11%, signal=42% NA 1e-10 6: 0 0 491 tags=28%, list=4%, signal=29% NA 1e-10 and I would like to get the plot like the one in attach. Please advise, Ana -------------- next part -------------- A non-text attachment was scrubbed... Name: rsz_qqanot.png Type: image/png Size: 76403 bytes Desc: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20200310/d24efc4e/attachment.png>
> and I would like to get the plot like the one in attach. > Please advise,This is a bad idea. Plots should be *easy* to interpret. Try to keep plots relatively simple, avoiding unnecessary details. For nontrivial plots, use a caption to describe the main features of the plot. (That's where your text should go). I note that you've asked a number of questions about QQ plots. I'd recommend that you use QQ plots in a standard way, without frequently trying to modify/customize them.
Thanks for getting back to me but I would need this text labels added in this particular instance On Wed, 11 Mar 2020 at 19:37, Abby Spurdle <spurdle.a at gmail.com> wrote:> > and I would like to get the plot like the one in attach. > > Please advise, > > This is a bad idea. > Plots should be *easy* to interpret. > > Try to keep plots relatively simple, avoiding unnecessary details. > For nontrivial plots, use a caption to describe the main features of the > plot. > (That's where your text should go). > > I note that you've asked a number of questions about QQ plots. > I'd recommend that you use QQ plots in a standard way, without > frequently trying to modify/customize them. >[[alternative HTML version deleted]]
On 3/10/20 9:51 PM, Ana Marija wrote:> Hello, > > I am making QQ plot via: > > library(ggman) > qq(fdr2_sorted$FDR.q.val2, main = "RG_All", pch = 17, > col=fdr1_sorted$group, cex = 1, las = 1)I think you may be confusing the audience. There is no qq function in the ggman package. There is however a qq function in the qqman package. Running the example in help page for qqman::qq and looking at the code suggests this is a base plot function, so the text function will allow you to put any particular string within the plot area: library(qqman) qq(gwasResults$P) text( 2, 6, "arbitrary")? # puts text "arbitrary" at postion (x=2, y=6)> > data frames used look like this: > >> head(fdr1_sorted)You should use `dput` to post reproducible data examples. HTH; David.> NAME GS<br> follow > link to MSigDB GS DETAILS SIZE ES NES NOM p-val > 1: GO_DNA_PACKAGING_COMPLEX > GO_DNA_PACKAGING_COMPLEX Details ... 77 0.6757226 2.466745 > 0 > 2: GO_PROTEIN_DNA_COMPLEX > GO_PROTEIN_DNA_COMPLEX Details ... 132 0.5958179 2.346520 0 > 3: GO_RESPONSE_TO_TYPE_I_INTERFERON > GO_RESPONSE_TO_TYPE_I_INTERFERON Details ... 52 -0.7521569 -2.533148 > 0 > 4: GO_RESPONSE_TO_INTERFERON_GAMMA > GO_RESPONSE_TO_INTERFERON_GAMMA Details ... 101 -0.6370415 -2.420473 > 0 > 5: GO_CELLULAR_RESPONSE_TO_INTERFERON_GAMMA > GO_CELLULAR_RESPONSE_TO_INTERFERON_GAMMA Details ... 85 -0.6571892 > -2.402153 0 > 6: GO_GRANULOCYTE_MIGRATION > GO_GRANULOCYTE_MIGRATION Details ... 43 -0.7332099 -2.398983 > 0 > FDR q-val FWER p-val RANK AT MAX LEADING EDGE V12 > group FDR.q.val2 > 1: 0 0 1111 tags=43%, list=10%, signal=47% NA > 2 1e-10 > 2: 0 0 1516 tags=39%, list=13%, signal=45% NA > 2 1e-10 > 3: 0 0 1427 tags=54%, list=12%, signal=61% NA > 4 1e-10 > 4: 0 0 1819 tags=45%, list=16%, signal=52% NA > 4 1e-10 > 5: 0 0 1216 tags=38%, list=11%, signal=42% NA > 4 1e-10 > 6: 0 0 491 tags=28%, list=4%, signal=29% NA > 4 1e-10 > >> head(fdr2_sorted) > NAME GS<br> follow > link to MSigDB GS DETAILS SIZE ES NES NOM p-val > 1: GO_DNA_PACKAGING_COMPLEX > GO_DNA_PACKAGING_COMPLEX Details ... 77 0.6757226 2.466745 > 0 > 2: GO_PROTEIN_DNA_COMPLEX > GO_PROTEIN_DNA_COMPLEX Details ... 132 0.5958179 2.346520 0 > 3: GO_RESPONSE_TO_TYPE_I_INTERFERON > GO_RESPONSE_TO_TYPE_I_INTERFERON Details ... 52 -0.7521569 -2.533148 > 0 > 4: GO_RESPONSE_TO_INTERFERON_GAMMA > GO_RESPONSE_TO_INTERFERON_GAMMA Details ... 101 -0.6370415 -2.420473 > 0 > 5: GO_CELLULAR_RESPONSE_TO_INTERFERON_GAMMA > GO_CELLULAR_RESPONSE_TO_INTERFERON_GAMMA Details ... 85 -0.6571892 > -2.402153 0 > 6: GO_GRANULOCYTE_MIGRATION > GO_GRANULOCYTE_MIGRATION Details ... 43 -0.7332099 -2.398983 > 0 > FDR q-val FWER p-val RANK AT MAX LEADING EDGE V12 > FDR.q.val2 > 1: 0 0 1111 tags=43%, list=10%, signal=47% NA > 1e-10 > 2: 0 0 1516 tags=39%, list=13%, signal=45% NA > 1e-10 > 3: 0 0 1427 tags=54%, list=12%, signal=61% NA > 1e-10 > 4: 0 0 1819 tags=45%, list=16%, signal=52% NA > 1e-10 > 5: 0 0 1216 tags=38%, list=11%, signal=42% NA > 1e-10 > 6: 0 0 491 tags=28%, list=4%, signal=29% NA > 1e-10 > > and I would like to get the plot like the one in attach. > > Please advise, > Ana > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.
HI David, thank you for getting back to me. Is there is a way for qq() to pick up text label names on its own or I have to specify each one manually? like in this example: text( 2, 6, "arbitrary") this is dput for>a=head(fdr2_sorted) > dput(a)structure(list(NAME = c("GO_DNA_PACKAGING_COMPLEX", "GO_PROTEIN_DNA_COMPLEX", "GO_RESPONSE_TO_TYPE_I_INTERFERON", "GO_RESPONSE_TO_INTERFERON_GAMMA", "GO_CELLULAR_RESPONSE_TO_INTERFERON_GAMMA", "GO_GRANULOCYTE_MIGRATION" ), `GS<br> follow link to MSigDB` = c("GO_DNA_PACKAGING_COMPLEX", "GO_PROTEIN_DNA_COMPLEX", "GO_RESPONSE_TO_TYPE_I_INTERFERON", "GO_RESPONSE_TO_INTERFERON_GAMMA", "GO_CELLULAR_RESPONSE_TO_INTERFERON_GAMMA", "GO_GRANULOCYTE_MIGRATION"), `GS DETAILS` = c("Details ...", "Details ...", "Details ...", "Details ...", "Details ...", "Details ..." ), SIZE = c(77L, 132L, 52L, 101L, 85L, 43L), ES = c(0.6757226, 0.59581786, -0.7521569, -0.63704145, -0.6571892, -0.7332099), NES = c(2.466745, 2.3465202, -2.5331483, -2.4204733, -2.4021535, -2.3989832), `NOM p-val` = c(0, 0, 0, 0, 0, 0), `FDR q-val` = c(0, 0, 0, 0, 0, 0), `FWER p-val` = c(0, 0, 0, 0, 0, 0), `RANK AT MAX` = c(1111L, 1516L, 1427L, 1819L, 1216L, 491L), `LEADING EDGE` = c("tags=43%, list=10%, signal=47%", "tags=39%, list=13%, signal=45%", "tags=54%, list=12%, signal=61%", "tags=45%, list=16%, signal=52%", "tags=38%, list=11%, signal=42%", "tags=28%, list=4%, signal=29%"), V12 = c(NA, NA, NA, NA, NA, NA), FDR.q.val2 = c(1e-10, 1e-10, 1e-10, 1e-10, 1e-10, 1e-10)), class = c("data.table", "data.frame"), row.names = c(NA, -6L), .internal.selfref = <pointer: 0x10400bae0>)> b=head(fdr1_sorted) > dput(b)structure(list(NAME = c("GO_DNA_PACKAGING_COMPLEX", "GO_PROTEIN_DNA_COMPLEX", "GO_RESPONSE_TO_TYPE_I_INTERFERON", "GO_RESPONSE_TO_INTERFERON_GAMMA", "GO_CELLULAR_RESPONSE_TO_INTERFERON_GAMMA", "GO_GRANULOCYTE_MIGRATION" ), `GS<br> follow link to MSigDB` = c("GO_DNA_PACKAGING_COMPLEX", "GO_PROTEIN_DNA_COMPLEX", "GO_RESPONSE_TO_TYPE_I_INTERFERON", "GO_RESPONSE_TO_INTERFERON_GAMMA", "GO_CELLULAR_RESPONSE_TO_INTERFERON_GAMMA", "GO_GRANULOCYTE_MIGRATION"), `GS DETAILS` = c("Details ...", "Details ...", "Details ...", "Details ...", "Details ...", "Details ..." ), SIZE = c(77L, 132L, 52L, 101L, 85L, 43L), ES = c(0.6757226, 0.59581786, -0.7521569, -0.63704145, -0.6571892, -0.7332099), NES = c(2.466745, 2.3465202, -2.5331483, -2.4204733, -2.4021535, -2.3989832), `NOM p-val` = c(0, 0, 0, 0, 0, 0), `FDR q-val` = c(0, 0, 0, 0, 0, 0), `FWER p-val` = c(0, 0, 0, 0, 0, 0), `RANK AT MAX` = c(1111L, 1516L, 1427L, 1819L, 1216L, 491L), `LEADING EDGE` = c("tags=43%, list=10%, signal=47%", "tags=39%, list=13%, signal=45%", "tags=54%, list=12%, signal=61%", "tags=45%, list=16%, signal=52%", "tags=38%, list=11%, signal=42%", "tags=28%, list=4%, signal=29%"), V12 = c(NA, NA, NA, NA, NA, NA), group = c(2, 2, 4, 4, 4, 4), FDR.q.val2 = c(1e-10, 1e-10, 1e-10, 1e-10, 1e-10, 1e-10)), class = c("data.table", "data.frame"), row.names = c(NA, -6L), .internal.selfref = <pointer: 0x10400bae0>) library(qqman) qq(fdr2_sorted$FDR.q.val2, main = "RG_All", pch = 16, col=fdr1_sorted$group, cex = 0.8, las = 1) Please advise On Wed, Mar 11, 2020 at 11:21 PM David Winsemius <dwinsemius at comcast.net> wrote:> > > On 3/10/20 9:51 PM, Ana Marija wrote: > > Hello, > > > > I am making QQ plot via: > > > > library(ggman) > > qq(fdr2_sorted$FDR.q.val2, main = "RG_All", pch = 17, > > col=fdr1_sorted$group, cex = 1, las = 1) > > > I think you may be confusing the audience. There is no qq function in > the ggman package. There is however a qq function in the qqman package. > > > Running the example in help page for qqman::qq and looking at the code > suggests this is a base plot function, so the text function will allow > you to put any particular string within the plot area: > > library(qqman) > > qq(gwasResults$P) > text( 2, 6, "arbitrary") # puts text "arbitrary" at postion (x=2, y=6) > > > > > data frames used look like this: > > > >> head(fdr1_sorted) > > You should use `dput` to post reproducible data examples. > > HTH; > > David. > > > NAME GS<br> follow > > link to MSigDB GS DETAILS SIZE ES NES NOM p-val > > 1: GO_DNA_PACKAGING_COMPLEX > > GO_DNA_PACKAGING_COMPLEX Details ... 77 0.6757226 2.466745 > > 0 > > 2: GO_PROTEIN_DNA_COMPLEX > > GO_PROTEIN_DNA_COMPLEX Details ... 132 0.5958179 2.346520 0 > > 3: GO_RESPONSE_TO_TYPE_I_INTERFERON > > GO_RESPONSE_TO_TYPE_I_INTERFERON Details ... 52 -0.7521569 -2.533148 > > 0 > > 4: GO_RESPONSE_TO_INTERFERON_GAMMA > > GO_RESPONSE_TO_INTERFERON_GAMMA Details ... 101 -0.6370415 -2.420473 > > 0 > > 5: GO_CELLULAR_RESPONSE_TO_INTERFERON_GAMMA > > GO_CELLULAR_RESPONSE_TO_INTERFERON_GAMMA Details ... 85 -0.6571892 > > -2.402153 0 > > 6: GO_GRANULOCYTE_MIGRATION > > GO_GRANULOCYTE_MIGRATION Details ... 43 -0.7332099 -2.398983 > > 0 > > FDR q-val FWER p-val RANK AT MAX LEADING EDGE V12 > > group FDR.q.val2 > > 1: 0 0 1111 tags=43%, list=10%, signal=47% NA > > 2 1e-10 > > 2: 0 0 1516 tags=39%, list=13%, signal=45% NA > > 2 1e-10 > > 3: 0 0 1427 tags=54%, list=12%, signal=61% NA > > 4 1e-10 > > 4: 0 0 1819 tags=45%, list=16%, signal=52% NA > > 4 1e-10 > > 5: 0 0 1216 tags=38%, list=11%, signal=42% NA > > 4 1e-10 > > 6: 0 0 491 tags=28%, list=4%, signal=29% NA > > 4 1e-10 > > > >> head(fdr2_sorted) > > NAME GS<br> follow > > link to MSigDB GS DETAILS SIZE ES NES NOM p-val > > 1: GO_DNA_PACKAGING_COMPLEX > > GO_DNA_PACKAGING_COMPLEX Details ... 77 0.6757226 2.466745 > > 0 > > 2: GO_PROTEIN_DNA_COMPLEX > > GO_PROTEIN_DNA_COMPLEX Details ... 132 0.5958179 2.346520 0 > > 3: GO_RESPONSE_TO_TYPE_I_INTERFERON > > GO_RESPONSE_TO_TYPE_I_INTERFERON Details ... 52 -0.7521569 -2.533148 > > 0 > > 4: GO_RESPONSE_TO_INTERFERON_GAMMA > > GO_RESPONSE_TO_INTERFERON_GAMMA Details ... 101 -0.6370415 -2.420473 > > 0 > > 5: GO_CELLULAR_RESPONSE_TO_INTERFERON_GAMMA > > GO_CELLULAR_RESPONSE_TO_INTERFERON_GAMMA Details ... 85 -0.6571892 > > -2.402153 0 > > 6: GO_GRANULOCYTE_MIGRATION > > GO_GRANULOCYTE_MIGRATION Details ... 43 -0.7332099 -2.398983 > > 0 > > FDR q-val FWER p-val RANK AT MAX LEADING EDGE V12 > > FDR.q.val2 > > 1: 0 0 1111 tags=43%, list=10%, signal=47% NA > > 1e-10 > > 2: 0 0 1516 tags=39%, list=13%, signal=45% NA > > 1e-10 > > 3: 0 0 1427 tags=54%, list=12%, signal=61% NA > > 1e-10 > > 4: 0 0 1819 tags=45%, list=16%, signal=52% NA > > 1e-10 > > 5: 0 0 1216 tags=38%, list=11%, signal=42% NA > > 1e-10 > > 6: 0 0 491 tags=28%, list=4%, signal=29% NA > > 1e-10 > > > > and I would like to get the plot like the one in attach. > > > > Please advise, > > Ana > > > > ______________________________________________ > > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > > https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > > and provide commented, minimal, self-contained, reproducible code.