Skip to content
Snippets Groups Projects
Commit dd266151 authored by Todor Kondic's avatar Todor Kondic
Browse files

app: Added report functionality.

parent aab8c499
No related branches found
No related tags found
No related merge requests found
...@@ -491,6 +491,7 @@ guide_fun <- function() { ...@@ -491,6 +491,7 @@ guide_fun <- function() {
narrow_summ <- function(summ,kvals,labs,...) { narrow_summ <- function(summ,kvals,labs,...) {
keys <- names(kvals) keys <- names(kvals)
## keys <- keys[!is.na(keys)]
needed <- setdiff(labs,keys) needed <- setdiff(labs,keys)
x <- as.list(c(needed,...)) x <- as.list(c(needed,...))
x <- c(list(summ,kvals),x) x <- c(list(summ,kvals),x)
...@@ -498,8 +499,6 @@ narrow_summ <- function(summ,kvals,labs,...) { ...@@ -498,8 +499,6 @@ narrow_summ <- function(summ,kvals,labs,...) {
} }
make_eic_ms1_plot <- function(extr_ms1,summ,kvals,labs,axis="linear",rt_range=NULL, asp=1) { make_eic_ms1_plot <- function(extr_ms1,summ,kvals,labs,axis="linear",rt_range=NULL, asp=1) {
message("RTs: ", paste0(rt_range,coll=','))
## Get metadata. ## Get metadata.
summ_rows <- narrow_summ(summ,kvals,labs,"mz","ms1_rt","ms1_int","Name","SMILES","Formula") summ_rows <- narrow_summ(summ,kvals,labs,"mz","ms1_rt","ms1_int","Name","SMILES","Formula")
## Get the table with ms1 data. ## Get the table with ms1 data.
...@@ -613,9 +612,11 @@ make_spec_ms2_plot <- function(extr_ms2,summ,kvals,labs,axis="linear",asp=1) { ...@@ -613,9 +612,11 @@ make_spec_ms2_plot <- function(extr_ms2,summ,kvals,labs,axis="linear",asp=1) {
} }
combine_plots <- function(p_eic_ms1,p_eic_ms2,p_spec_ms2) { combine_plots <- function(p_eic_ms1,p_eic_ms2,p_spec_ms2,p_struct) {
cowplot::plot_grid(p_eic_ms1,p_eic_ms2,p_spec_ms2,ncol=1,align='vh',axis='b') cowplot::plot_grid(p_eic_ms1,p_struct,p_eic_ms2,p_spec_ms2,ncol=2,align='v',axis='l')
} }
...@@ -1140,6 +1140,71 @@ mk_shinyscreen_server <- function(projects,init) { ...@@ -1140,6 +1140,71 @@ mk_shinyscreen_server <- function(projects,init) {
rvs$gui$datatab$adduct <- z$adduct rvs$gui$datatab$adduct <- z$adduct
}, label = "datatab-edit") }, label = "datatab-edit")
observeEvent(input$make_report_b,{
isolate({
ms1 <- rvs$m$extr$ms1
ms2 <- rvs$m$extr$ms2
summ <- rvs$m$out$tab$summ
})
req(NROW(summ)>0L)
req(NROW(ms1)>0L)
req(NROW(ms2)>0L)
cind <- rf_get_cindex()
key <- rf_get_cindex_key()
rt_range <- rf_get_rtrange()
labs <- req(rf_get_cindex_labs())
projdir <- rvs$gui$paths$project
fn <- paste0(file.path(projdir,input$report_name),'.pdf')
print(fn)
pdf(file=fn,paper="a4")
for (ri in 1:NROW(cind)) {
rowtab <- cind[ri][,..key]
kvals <- lapply(rowtab,function (x) x[[1]])
names(kvals) <- key
message('Compound index row: ',ri)
p1 <- make_eic_ms1_plot(ms1,summ,kvals=kvals,
labs=labs,
asp=PLOT_EIC_ASPECT,
rt_range=rt_range)
p2 <- make_eic_ms2_plot(summ,
kvals=kvals,
labs=labs,
rt_range = rt_range,
asp=PLOT_EIC_ASPECT)
id <- rowtab <- cind[ri][,..key][["ID"]][[1]]
smi <- rvs$m$out$tab$comp[ID==(id),SMILES][[1]]
grb <- smiles2img(smi)
p_struc <- qplot(1:5, 2*(1:5), geom="blank") +
annotation_custom(grb, xmin=-Inf, xmax=Inf, ymin=-Inf, ymax=Inf) +
theme_empty
p_spec <- make_spec_ms2_plot(ms2,
summ,
kvals=kvals,
labs=labs)
cmb <- combine_plots(p1,p2,p_spec,p_struc)
print(cmb)
}
dev.off()
})
## observeEvent(input$plot_save_single,{
## p1 <- rf_plot_eic_ms1()
## p2 <- rf_plot_eic_ms2()
## p3 <- rf_plot_spec_ms2()
## str <- rf_plot_struct()
## message("Plots saved to ",file.path(rvs$gui$paths$project,
## FIG_TOPDIR))
## })
## RENDER ## RENDER
output$curr_proj <- renderText({ output$curr_proj <- renderText({
...@@ -1287,6 +1352,30 @@ mk_shinyscreen_server <- function(projects,init) { ...@@ -1287,6 +1352,30 @@ mk_shinyscreen_server <- function(projects,init) {
## },height=1000) ## },height=1000)
observeEvent(input$plot_brush,{
xmin <- input$plot_brush[["xmin"]]
xmax <- input$plot_brush[["xmax"]]
if (!is.null(xmin)) updateNumericInput(session=session,
inputId="plot_rt_min",
value=xmin)
if (!is.null(xmax)) updateNumericInput(session=session,
inputId="plot_rt_max",
value=xmax)
session$resetBrush("plot_brush")
},label = "get_rt_from_selection")
observeEvent(input$plot_rt_click,
{
## TODO: update to sensible range.
updateNumericInput(session=session,
inputId="plot_rt_min",
value=NA_real_)
updateNumericInput(session=session,
inputId="plot_rt_max",
value=NA_real_)
}, label = "reset_rt_range")
output$plot_eic_ms1 <- renderPlot({ output$plot_eic_ms1 <- renderPlot({
rf_plot_eic_ms1() rf_plot_eic_ms1()
......
...@@ -705,6 +705,24 @@ plotOutput("plot_spec_ms2", ...@@ -705,6 +705,24 @@ plotOutput("plot_spec_ms2",
</div> </div>
<div></div> <div></div>
</div> </div>
<div style="display: flex-flow: row nowrap"> <!-- Control Bar -->
```{r, echo=F}
## actionButton("plot_save_single",
## label="Save this plot")
## actionButton("plot_save_all",
## label="Save all plots")
actionButton("make_report_b",
label="Create report")
textInput("report_name",
label="Report Name",
value="report")
## textInput("plot_ext",
## label = "Plot extension",
## value = "pdf")
```
</div> <\!-- Control Bar -\-> -->
<!-- <div style="display: flex-flow: column nowrap"> <\!-- Main -\-> --> <!-- <div style="display: flex-flow: column nowrap"> <\!-- Main -\-> -->
<!-- <div style="display: flex; flex-direction: row; flex-wrap: nowrap;"> <\!-- EICs and Structure -\-> --> <!-- <div style="display: flex; flex-direction: row; flex-wrap: nowrap;"> <\!-- EICs and Structure -\-> -->
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment