我正在尝试使用具有多个= TRUE的selectize输入来绘制具有多个输入的散点图。
基本上,我有一个不同基因的列表,我想使用散点图将它们相互绘制。
我可以选择2个基因并将它们相对绘制,但是我想要做的是选择一个基因在Y轴上绘制,然后选择其他几个基因同时在X轴上绘制并通过a_str = 'hii thherre'
e = list(a_str)
b_str = ""
for i, x in enumerate(e):
nextelem = e[(i + 1) % len(e)]
if nextelem == x:
print("Duplicate found, removing")
else:
b_str = b_str + x
print(b_str)
在同一地块上。目前,以下代码适用于一对基因,但是一旦我选择另一个基因在Y轴上对该基因作图,我就会得到selectizeInput( multiple = TRUE)
我知道应该有一些通过dpylr软件包执行此操作的方法,但是当我尝试执行该操作时,我不知道如何只选择一些选定的列,而不是融化整个表。
下面是我的闪亮代码(仅限于相关部分)和数据表的简化版。
Error: more than one expression parsed
我知道我可以为每种可能性手动创建ggplot行,如果我只是想显示固定数量的短输入,这是可行的,但是当我想一次选择多个输入时,这是可行的。
> Short_cortex5
Names MARC1 MARC2 MARCH1 SEPT1 DEC1 MARCH2 SEPT2
1 GTEX-1117F-3226-SM-5N9CT 4.459 15.30 2.501 1.0680 0.02610 81.15 66.14
2 GTEX-111FC-3126-SM-5GZZ2 6.902 16.07 4.700 0.2980 0.00000 68.90 88.95
3 GTEX-1128S-2726-SM-5H12C 5.361 17.27 2.462 0.3812 0.00000 63.41 65.20
4 GTEX-117XS-3026-SM-5N9CA 4.792 11.37 3.107 0.5550 0.02261 84.53 48.98
5 GTEX-1192X-3126-SM-5N9BY 5.772 21.76 6.123 0.7558 0.00000 88.49 106.20
6 GTEX-11DXW-1126-SM-5H12Q 5.143 15.55 4.239 0.5859 0.03581 58.91 69.80
7 GTEX-11DXY-3226-SM-5GIDE 3.856 16.74 4.596 0.6551 0.02627 70.38 68.50
8 GTEX-11EI6-3026-SM-5GZZO 6.386 11.48 2.167 0.3567 0.01090 60.14 74.04
library(shiny)
library(ggplot2)
#TPM5
GeneNames <- colnames(Short_cortex5[2:ncol(Short_cortex5)])
# Define UI for application
ui <- fluidPage(
# Application title
titlePanel("Cell specific gene expression enrichment"),
# Sidebar
sidebarLayout(
sidebarPanel(
selectizeInput(inputId = "gene_X",
label = "Select gene X:",
choices = GeneNames,
selected = "MARCH1",
multiple = TRUE),
selectizeInput(inputId = "gene_Y",
label = "Select gene Y:",
choices = GeneNames,
selected = "SEPT1")
),
# Show a plot
mainPanel(
plotOutput(outputId = "corrPlot")
)
)
)
# Define server logic
server <- function(input, output) {
output$corrPlot <- renderPlot({
req(input$gene_X)
ggplot(data = Short_cortex5, aes_string(x=input$gene_X, y=input$gene_Y)) +
geom_point() +
geom_smooth(method = lm, se = FALSE) +
scale_x_log10() +
scale_y_log10()
})
}
# Run the application
shinyApp(ui = ui, server = server)