R - textxy {откалибровать} размещение текста неверно - PullRequest
0 голосов
/ 01 декабря 2018

Я пытаюсь использовать функцию textxy в пакете R calibrate для построения определенных строк в моем графике вулкана, однако textxy не отображает строки там, где они должны быть.Я искал ответ на этот вопрос, но мне не удалось найти его с этой конкретной проблемой.Мои извинения, если я как-то пропустил это.

Я сделал свой график вулкана со следующим кодом:

library(calibrate)
library(ggrepel)

-tops - это вектор строк, которые я хочу нанести на свой график вулкана

tops <- c("Taurine (-)", "Trigonelline (+)", "L-Asparagine (+)", "L-4-Hydroxyphenylglycine (+)", "2-alpha-D-Glucosyl-D-glucose (-)", "N-Acetylleucine (-)")

-Мой ДФ выглядит примерно так (крошечный подвыбор моего реального ДФ:

Spaven_toplot <- data.frame(KEGG_Match = c("Taurine (-)", "Trigonelline (+)", "L-Asparagine (+)", "L-Cysteine (+)", "L-4-Hydroxyphenylglycine (+)", "2-alpha-D-Glucosyl-D-glucose (-)", "N-Acetylleucine (-)", "L-Cystathionine (+)"), 
                  Log2FC = c(2.511989, 3.047950, 2.680447, 2.699307, -2.390108, -2.874444, -3.477837, 4.273847), 
                  NegLog_pvalue = c(31.69, 30.81, 27.13, 25.73, 25.43, 25.05, 25.05, 24.56), 
                  p.adjust = c(2.035332e-32, 1.539749e-31, 7.417270e-28, 1.853295e-26, 3.673266e-26, 8.816965e-26, 8.816965e-26, 2.762265e-25))

-Создание сюжета вулкана

with(Spaven_toplot, plot(Log2FC, NegLog_pvalue, pch=20, xlim=c(-4,5)))

-Добавление цветов на основе значения

with(subset(Spaven_toplot, p.adjust <.05 ), points(Log2FC, NegLog_pvalue, pch=20, col="blue")) #If p < 0.05 = Blue
with(subset(Spaven_toplot, p.adjust <.05 & abs(Log2FC) > 2), points(Log2FC, NegLog_pvalue, pch=20, col="red")) #If p < 0.05 & abs(Log2FC) > 2 = Red

-Поставление строк с вершин на моем участке вулкана

with(subset(Spaven_toplot, KEGG_Match %in% tops), 
     textxy(Log2FC, NegLog_pvalue, labs = tops, cex=.5, offset = 0.2))

Это дает хороший участок вулкана, однако текст на графике неверен. Volcano_Plot

Я хочу построить определенные строки на графике вулкана. Я указал на векторе вершин выше, какие строки строить из Spaven_toplot.

Используя Spaven_toplot (выше), он указывает значения дляэти строки.

Например, "Taurine (-)" имеет Log2FC = 2.511989 и NegLog_pvalue = 31.69. Он должен быть нанесен справа от нуля, на самой высокой красной точке.

Кроме того, «L-Asparagine (+)» имеет Log2FC = 2.680447 и NegLog_pvalue= 27,13.Это также должно быть нанесено на правой стороне нуля.

«N-ацетиллейцин (-)» имеет Log2FC = -3,477837 и NegLog_pvalue = 25,05.Это должно быть нанесено на левую сторону нуля.

"L-4-Гидроксифенилглицин (+)" имеет Log2FC = -2.390108 и NegLog_pvalue = 25.43 и должен быть нанесен на левую сторону нуля.

Кроме того, если я использую этот код - он отображает все точки на графике без проблемы.

textxy(Spaven_toplot$Log2FC, Spaven_toplot$NegLog_pvalue, labs = Spaven_toplot$KEGG_Match, cex = 0.8, offset = 0.2, col = "black")

Мне интересно, что я делаю не так.Каким-то образом использование subset с textxy дает мне ложные результаты.Любая помощь в исправлении этого будет принята с благодарностью.Спасибо.

...