Browse Source

Afegit funció de visor.

main
marcelcosta 2 years ago
parent
commit
8d221d6898
1 changed files with 65 additions and 18 deletions
  1. +65
    -18
      chromatoR/app.R

+ 65
- 18
chromatoR/app.R

@ -10,23 +10,35 @@ ui <- fluidPage(
titlePanel("ChromatoR"),
# Sidebar with a slider input for number of bins
sidebarLayout(
sidebarPanel(
fileInput("file1", "Sube fichero ab1", multiple = FALSE),
numericInput("thr", label = "Peak Threshold", value = 450),
numericInput("dist1", label = "1st Distance Reduction", value = 4),
numericInput("dist2", label = "2nd Distance Reduction", value = 7),
numericInput("ratio", label = "Ratio 2ary seq", value = 0.33),
textInput("old", label="Referencia"),
actionButton("calab", "Analizar")
),
# Show a plot of the generated distribution
mainPanel(
tags$head(tags$style(HTML("pre,.wrap { white-space: pre-wrap; word-break: break-all; }"))),
verbatimTextOutput("Primseq") %>% tagAppendAttributes(class="wrap"),
verbatimTextOutput("align")
)
navbarPage("ChromatoR",
tabPanel("Detección de Bases",
sidebarPanel(
fileInput("file1", "Sube fichero ab1", multiple = FALSE),
numericInput("thr", label = "Peak Threshold", value = 450),
numericInput("dist1", label = "1st Distance Reduction", value = 4),
numericInput("dist2", label = "2nd Distance Reduction", value = 7),
numericInput("ratio", label = "Ratio 2ary seq", value = 0.33),
textInput("old", label="Referencia"),
actionButton("calab", "Analizar")
),
# Show a plot of the generated distribution
mainPanel(
tags$head(tags$style(HTML("pre,.wrap { white-space: pre-wrap; word-break: break-all; }"))),
verbatimTextOutput("Primseq") %>% tagAppendAttributes(class="wrap"),
verbatimTextOutput("align")
)
),
tabPanel("Visor de Cromatograma",
sidebarPanel(
numericInput("visStart", label="Inicio", value=0),
numericInput("visWidth", label="Bases a mostrar", value=50),
actionButton("butvis", "Mostrar")
),
mainPanel(
plotOutput("visor",width=1000)
)
)
)
)
@ -177,7 +189,7 @@ server <- function(input, output) {
output$Primseq <- renderText({
observeEvent(obj$seq, {})
if (!is.null(obj$seq) & input$old != ""){
if (!is.null(obj$seq)){
print(1)
as.character(obj_ab@primarySeq)
}
@ -192,6 +204,41 @@ server <- function(input, output) {
paste(capture.output(print(alignament, show="complete")), collapse="\n")
}
})
plotvis<-eventReactive( input$butvis, {
if (!is.null(obj$seq)){
print("Inicio imagen")
width<-input$visWidth
min<-input$visStart
max<-min+width
let<-obj_ab@primarySeq %>% as.character %>% strsplit("")
picks_x<-apply(obj_ab@peakPosMatrix, 1, max, na.rm=T)
picks<-data.frame(rows=apply(obj_ab@peakPosMatrix, 1, max, na.rm=T), Base=let[[1]], num=1:length(let[[1]])) %>%
filter(num >= min & num <= max) #%>% mutate(rows=rows-min)
ranPeaks<-range(picks$rows)
obj$plot<-obj_ab@traceMatrix %>% as.data.frame() %>% rename(A=V1,C=V2,G=V3,T=V4) %>% add_column(rows=1:nrow(.)) %>%
filter(rows >= ranPeaks[1] & rows <= ranPeaks[2]) %>% gather(Base, Value, -rows) %>%
mutate(Base=factor(Base, levels=c("G","A","T","C"))) %>%
ggplot(aes(rows, Value))+
geom_line(aes(color=Base))+
geom_vline(xintercept = picks_x[picks_x >= ranPeaks[1] & picks_x <= ranPeaks[2]], alpha=0.2)+
geom_text(data=picks, aes(label=Base, y=3800, color=factor(Base,levels=c("G","A","T","C"))))+
geom_text(data=picks, aes(label=num, y=4250), size=3, angle=90, hjust=0.5, vjust=0.5)+
scale_color_manual(values=c("G"="black", "A"="#66CC00", "T"="red","C"="blue"))+
geom_hline(yintercept = peakthr)+
theme_classic()
print("Final Imagen")
}
})
output$visor <- renderPlot({
observeEvent(input$butvis, {plotvis()})
obj$plot
})
}

Loading…
Cancel
Save