-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathserver.R
More file actions
executable file
·45 lines (34 loc) · 1.27 KB
/
server.R
File metadata and controls
executable file
·45 lines (34 loc) · 1.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# server.R
source("Global.R")
#load data once:
m <- read.table(file = "kallisto_tpm_expression_table.txt")
shinyServer(function(input, output) {
geneInput <- renderText(input$gene)
output$plot <- renderPlotly({
goi <- geneInput()
validate(
need(goi %in% m$ensembl_gene_id | goi %in% m$external_gene_name, "Gene not found!")
)
if (substr(goi,1,7) == "ENSDARG") {
expr <- m[m$ensembl_gene_id==goi,grep("tpm",colnames(m))]
}
else {
expr <- m[m$external_gene_name==goi,grep("tpm",colnames(m))]
}
expr$id <- rownames(expr)
m1 <- melt(expr, id.vars = "id", value.name="tpm")
p <- plot_ly(m1, x = ~variable, y = ~tpm, type = "bar")
layout(p, title = goi, margin = list(b = 160), xaxis = list(title = "Tissue", tickangle = 45)) #should be list() to work!
})
output$table <- renderTable(
data.frame(m[m$external_gene_name==geneInput() | m$ensembl_gene_id==geneInput() ,])
)
#download
output$downloadData <- downloadHandler(
filename = function() { paste(geneInput(), '.csv', sep='') },
content = function(file) {
x = data.frame(m[m$external_gene_name==geneInput() | m$ensembl_gene_id==geneInput() ,])
write.csv(x, file)
}
)
})