shuffle everything
This commit is contained in:
parent
8c96f1a317
commit
48d9e88bc9
3 changed files with 60 additions and 16 deletions
29
global.R
Normal file
29
global.R
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
library(dplyr)
|
||||||
|
library(DT)
|
||||||
|
library(ggplot2)
|
||||||
|
library(grid) # for the info box
|
||||||
|
library(plotly)
|
||||||
|
library(NGLVieweR)
|
||||||
|
library(httr)
|
||||||
|
library(readr)
|
||||||
|
library(RCurl)
|
||||||
|
# make shiny non-stupid
|
||||||
|
#options(shiny.launch.browser = FALSE) # i am a big girl and can tie my own laces
|
||||||
|
#options(shiny.port = 8000) # don't change the port every time
|
||||||
|
#options(shiny.host = '0.0.0.0') # This means "listen to all addresses on all interfaces"
|
||||||
|
#options(DT.options = list(scrollX = TRUE))
|
||||||
|
|
||||||
|
|
||||||
|
# An "application token" is required here. I generated this one like this:
|
||||||
|
# curl -H "Content-Type: application/json" -d '{"name":"r-data"}' -u <username>:<password> https://git.tunstall.in/api/v1/users/sethp/tokens
|
||||||
|
|
||||||
|
# Gitea access token
|
||||||
|
access_token = read_lines("~/secret-token")
|
||||||
|
|
||||||
|
gene_url = "https://git.tunstall.in/api/v1/repos/tanu/fellowship_dcdf/raw/tb_data_fc/data_dashboard/list_unique_missense_genes.csv"
|
||||||
|
missense_gene_url = "https://git.tunstall.in/api/v1/repos/tanu/fellowship_dcdf/raw/tb_data_fc/data_dashboard/missense_genes_params.csv"
|
||||||
|
alphafold_url = "https://alphafold.ebi.ac.uk/files/"
|
||||||
|
|
||||||
|
genes=read_csv(paste0(gene_url,"?token=",access_token))
|
||||||
|
unique_missense_genes = read_delim(paste0(missense_gene_url,"?token=",access_token))
|
||||||
|
|
46
server.R
46
server.R
|
@ -13,7 +13,7 @@ library(httr)
|
||||||
library(readr)
|
library(readr)
|
||||||
library(RCurl)
|
library(RCurl)
|
||||||
|
|
||||||
shinyServer(function(input, output) {
|
shinyServer(function(input, output){
|
||||||
|
|
||||||
output$distPlot <- renderPlot({
|
output$distPlot <- renderPlot({
|
||||||
# generate bins based on input$bins from ui.R
|
# generate bins based on input$bins from ui.R
|
||||||
|
@ -83,11 +83,13 @@ shinyServer(function(input, output) {
|
||||||
|
|
||||||
observeEvent(input$table_rows_selected,{
|
observeEvent(input$table_rows_selected,{
|
||||||
#req(length(input$table_row_selected) > 0)
|
#req(length(input$table_row_selected) > 0)
|
||||||
|
mutation_pdb = as.character(unique_missense_genes[input$table_rows_selected,"position_pdb"])
|
||||||
|
mutation_af = as.character(unique_missense_genes[input$table_rows_selected,"position_af"])
|
||||||
mutation = as.character(unique_missense_genes[input$table_rows_selected,"hgvd_p"])
|
mutation = as.character(unique_missense_genes[input$table_rows_selected,"hgvd_p"])
|
||||||
chain = as.character(unique_missense_genes[input$table_rows_selected,"chain"])
|
chain = as.character(unique_missense_genes[input$table_rows_selected,"chain"])
|
||||||
# what the absolute FUCK is this mess? I JUST WANT THE MATCH ASDLASJASDASHFKLJASDFK
|
# what the absolute FUCK is this mess? I JUST WANT THE MATCH ASDLASJASDASHFKLJASDFK
|
||||||
# coming down from the trees was a mistake, and abandoning Perl doubly so.
|
# coming down from the trees was a mistake, and abandoning Perl doubly so.
|
||||||
clicked_position = regmatches(mutation, regexpr("[0-9]+", mutation, perl=TRUE))
|
#clicked_position = regmatches(mutation, regexpr("[0-9]+", mutation, perl=TRUE))
|
||||||
|
|
||||||
# Now update the 3D structure to highlight the clicked thing and then zoom in.
|
# Now update the 3D structure to highlight the clicked thing and then zoom in.
|
||||||
|
|
||||||
|
@ -96,7 +98,7 @@ shinyServer(function(input, output) {
|
||||||
addSelection('spacefill'
|
addSelection('spacefill'
|
||||||
, param = list(
|
, param = list(
|
||||||
name = "Pos"
|
name = "Pos"
|
||||||
, sele = trimws(paste0(clicked_position,':', chain))
|
, sele = trimws(paste0(mutation_pdb,':', chain))
|
||||||
, color = "red"
|
, color = "red"
|
||||||
#, colorValue="00ff00"
|
#, colorValue="00ff00"
|
||||||
#, colorScheme="element"
|
#, colorScheme="element"
|
||||||
|
@ -107,7 +109,7 @@ shinyServer(function(input, output) {
|
||||||
addSelection('spacefill'
|
addSelection('spacefill'
|
||||||
, param = list(
|
, param = list(
|
||||||
name = "Pos"
|
name = "Pos"
|
||||||
, sele = clicked_position
|
, sele = mutation_af
|
||||||
, color = "red"
|
, color = "red"
|
||||||
#, colorValue="00ff00"
|
#, colorValue="00ff00"
|
||||||
#, colorScheme="element"
|
#, colorScheme="element"
|
||||||
|
@ -115,20 +117,20 @@ shinyServer(function(input, output) {
|
||||||
)
|
)
|
||||||
|
|
||||||
NGLVieweR_proxy("af_structure") %>% updateZoomMove(
|
NGLVieweR_proxy("af_structure") %>% updateZoomMove(
|
||||||
center = clicked_position,
|
center = mutation_af,
|
||||||
zoom = clicked_position,
|
zoom = mutation_af,
|
||||||
duration = 1000, # animation time in ms
|
duration = 1000, # animation time in ms
|
||||||
z_offSet = -1
|
z_offSet = -1
|
||||||
)
|
)
|
||||||
NGLVieweR_proxy("structure") %>% updateZoomMove(
|
NGLVieweR_proxy("structure") %>% updateZoomMove(
|
||||||
center = trimws(paste0(clicked_position,':', chain)),
|
center = trimws(paste0(mutation_pdb,':', chain)),
|
||||||
zoom = trimws(paste0(clicked_position,':', chain)),
|
zoom = trimws(paste0(mutation_pdb,':', chain)),
|
||||||
duration = 1000, # animation time in ms
|
duration = 1000, # animation time in ms
|
||||||
z_offSet = -1
|
z_offSet = -1
|
||||||
)
|
)
|
||||||
output$information <- renderUI({
|
output$information <- renderUI({
|
||||||
selected_gene=input$gene
|
selected_gene=input$gene
|
||||||
HTML(paste0("<strong>Mutation: </strong>", as.character(unique_missense_genes[input$table_rows_selected,"mutationinformation"]),"<br/>",
|
HTML(paste0("<strong>Mutation: </strong>", as.character(unique_missense_genes[input$table_rows_selected,"mutationinformation_pdb"]),"<br/>",
|
||||||
"<strong>PDB ID: </strong>", as.character(genes[genes$Gene==selected_gene,"PDB"]),"<br/>",
|
"<strong>PDB ID: </strong>", as.character(genes[genes$Gene==selected_gene,"PDB"]),"<br/>",
|
||||||
"<strong>AlphaFold ID: </strong>", as.character(genes[genes$Gene==selected_gene,"AF_PDB"]), "<br/>",
|
"<strong>AlphaFold ID: </strong>", as.character(genes[genes$Gene==selected_gene,"AF_PDB"]), "<br/>",
|
||||||
"<strong>Ligand Distance: </strong>", as.character(unique_missense_genes[input$table_rows_selected,"ligand_distance"]), "<br/>",
|
"<strong>Ligand Distance: </strong>", as.character(unique_missense_genes[input$table_rows_selected,"ligand_distance"]), "<br/>",
|
||||||
|
@ -186,7 +188,21 @@ shinyServer(function(input, output) {
|
||||||
" and (",
|
" and (",
|
||||||
paste0(
|
paste0(
|
||||||
apply(
|
apply(
|
||||||
unique_missense_genes[unique_missense_genes$gene_name == gene,c("position","chain")],
|
unique_missense_genes[unique_missense_genes$gene_name == gene,c("position_pdb","chain")],
|
||||||
|
1,
|
||||||
|
function(x){
|
||||||
|
paste0(trimws(x[1])
|
||||||
|
)}
|
||||||
|
),
|
||||||
|
collapse=", "
|
||||||
|
), ")"
|
||||||
|
)
|
||||||
|
mutations_af = paste0(":",
|
||||||
|
as.matrix(unique_missense_genes[unique_missense_genes$gene_name == gene,c("chain")])[1],
|
||||||
|
" and (",
|
||||||
|
paste0(
|
||||||
|
apply(
|
||||||
|
unique_missense_genes[unique_missense_genes$gene_name == gene,c("position_af","chain")],
|
||||||
1,
|
1,
|
||||||
function(x){
|
function(x){
|
||||||
paste0(trimws(x[1])
|
paste0(trimws(x[1])
|
||||||
|
@ -207,7 +223,7 @@ shinyServer(function(input, output) {
|
||||||
opacity = 0.2
|
opacity = 0.2
|
||||||
)
|
)
|
||||||
) %>%
|
) %>%
|
||||||
addSelection(type="ball+stick", #spacefill
|
addSelection(type="spacefill", #spacefill
|
||||||
param = list(name = "all_mutations",
|
param = list(name = "all_mutations",
|
||||||
color="orange",
|
color="orange",
|
||||||
sele = mutations
|
sele = mutations
|
||||||
|
@ -225,14 +241,14 @@ shinyServer(function(input, output) {
|
||||||
opacity = 0.2
|
opacity = 0.2
|
||||||
)
|
)
|
||||||
) %>%
|
) %>%
|
||||||
addSelection(type="ball+stick", #spacefill
|
addSelection(type="spacefill", #spacefill
|
||||||
param = list(name = "all_mutations",
|
param = list(name = "all_mutations",
|
||||||
color="orange",
|
color="orange",
|
||||||
sele = mutations
|
sele = mutations_af
|
||||||
#colorScheme = "bfactor",
|
#colorScheme = "bfactor",
|
||||||
#opacity = 1
|
#opacity = 1
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
}
|
})
|
||||||
)
|
|
||||||
|
|
1
ui.R
1
ui.R
|
@ -12,7 +12,6 @@ library(NGLVieweR)
|
||||||
library(httr)
|
library(httr)
|
||||||
library(readr)
|
library(readr)
|
||||||
library(RCurl)
|
library(RCurl)
|
||||||
|
|
||||||
dashboardPage(skin="purple",
|
dashboardPage(skin="purple",
|
||||||
dashboardHeader(title="Tuberculosis Host"),
|
dashboardHeader(title="Tuberculosis Host"),
|
||||||
dashboardSidebar(
|
dashboardSidebar(
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue