[R] how do I add text lables on QQ plot

Michael Dewey ||@t@ @end|ng |rom dewey@myzen@co@uk
Thu Mar 12 15:16:52 CET 2020


Dear Ana

You can specify the first three parameters to text() as vectors so it is 
all done in one call. That may or may not answer your question.

Michael

On 12/03/2020 14:08, Ana Marija wrote:
> 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 using 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 using 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.
> 
> ______________________________________________
> R-help using 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.
> 

-- 
Michael
http://www.dewey.myzen.co.uk/home.html



More information about the R-help mailing list