diff --git a/R/metfrag.R b/R/metfrag.R index cae013e2f096fc31dbb8a0e0a6d666c1baeb4527..cfab5a13900c8f06abca87450e45a791ed3f79ed 100644 --- a/R/metfrag.R +++ b/R/metfrag.R @@ -89,7 +89,7 @@ metfrag_run <- function(param,path,subpaths,db_file,stag_tab,ms2,runtime,java_bi mf_narrow_summ <- function(summ,kv,ms2_rt_i=NA_integer_,ms2_rt_f=NA_integer_) { skey = data.table::key(summ) - cols = c("adduct","tag","ID","CE","an","mz","qa_pass","ms2_rt") + cols = c("adduct","tag","ID","CE","scan","mz","qa_pass","ms2_rt") nsumm = get_rows_from_summ(summ,kv,cols) nsumm = nsumm[qa_pass==T] # Those that make sense. nsumm_key = union(SUMM_KEY,"ms2_rt") @@ -109,13 +109,13 @@ mf_narrow_summ <- function(summ,kv,ms2_rt_i=NA_integer_,ms2_rt_f=NA_integer_) { get_metfrag_targets <- function(stag_tab,ms2) { ## Take the columns we need from summ. x = summ[ms2_sel==T,.SD,.SDcols=c(key(summ),"mz")] - mrg_keys = c(intersect(key(ms2),key(summ)),"an") + mrg_keys = c(intersect(key(ms2),key(summ)),"scan") x=ms2[x,.(CE=CE,ion_mz=i.mz,mz,intensity),on=mrg_keys,by=.EACHI] ## Get column order so that `an' follows `CE'. - resnms = setdiff(mrg_keys,"an") - nms = union(union(resnms,"CE"),c("an","ion_mz","mz","intensity")) + resnms = setdiff(mrg_keys,"scan") + nms = union(union(resnms,"CE"),c("scan","ion_mz","mz","intensity")) data.table::setcolorder(x,neworder = nms) - setkeyv(x,unique(c(resnms,"CE","an"))) + setkeyv(x,unique(c(resnms,"CE","scan"))) x } diff --git a/R/mix.R b/R/mix.R index 105b02550655300756fa91d6bbde59f08e6f19d4..3846cff9b1638ffd641ff6ebbf348f98eb66d988 100644 --- a/R/mix.R +++ b/R/mix.R @@ -191,7 +191,7 @@ gen_empty_summ <- function() { ## ms2_cols <- intersect(colnames(qa_ms2),SUMM_COLS) ## ms2_cols <- setdiff(ms2_cols,colnames(summ)) ## summ <- qa_ms2[summ,c(..comp_cols,..ms1_cols,..ms2_cols),on=BASE_KEY] -## data.table::setkeyv(summ,c(BASE_KEY_MS2,"an")) +## data.table::setkeyv(summ,c(BASE_KEY_MS2,"scan")) ## summ[,qa_ms1_exists:=the_ifelse(!is.na(qa_ms1_good_int),T,F)] ## summ[,qa_ms2_exists:=the_ifelse(!is.na(CE),T,F)] ## summ[,qa_pass:=apply(.SD,1,all),.SDcols=QA_FLAGS[!(QA_FLAGS %in% "qa_pass")]] @@ -642,7 +642,7 @@ assess_ms2 <- function(m) { qa_ms2 <- ms2[qa_ms1[qa_ms1_above_noise==T],.(CE=unique(CE), pc_rt=i.ms1_rt, pc_int=i.ms1_int, - an=unique(an)),on=BASE_KEY,by=.EACHI,nomatch=NULL] + scan=unique(scan)),on=BASE_KEY,by=.EACHI,nomatch=NULL] rt_win2 <- presconf$ret_time_shift_tol qa_ms2 <- ms2[qa_ms2,.(pc_rt=pc_rt, @@ -650,12 +650,12 @@ assess_ms2 <- function(m) { ms2_int=max(intensity), ms2_rt=unique(rt), qa_ms2_near=head(rt,1) < pc_rt + rt_win2 & head(rt,1) > pc_rt - rt_win2), - by=.EACHI,on=c(BASE_KEY_MS2,"an")] + by=.EACHI,on=c(BASE_KEY_MS2,"scan")] qa_ms2$qa_ms2_good_int <-F qa_ms2[qa_ms2_near==T, qa_ms2_good_int := ms2_int > presconf$ms2_int_thresh & ms2_int < pc_int, - by=c(BASE_KEY_MS2,"an")] + by=c(BASE_KEY_MS2,"scan")] ## qa_ms2$qa_pass <- F @@ -702,7 +702,7 @@ analyse_extracted_data_old <- function(extr,prescreen_param) { ## We drop mz info. tab_ms2 <- ms2_clc_ns[,.(ms2_rt=first(rt),ms2_int=max(intensity),ms2_thr=first(ms2_thr)),by=c(BASE_KEY_MS2,'an')] - tab_ms2[,qa_ms2_good_int:=ms2_int>ms2_thr,by="an"] + tab_ms2[,qa_ms2_good_int:=ms2_int>ms2_thr,by="scan"] data.table::setkeyv(tab_ms2,BASE_KEY_MS2) tab_ms2[,`:=`(rt_left = ms2_rt - rt_shift,rt_right = ms2_rt + rt_shift)] @@ -737,7 +737,7 @@ analyse_extracted_data_old <- function(extr,prescreen_param) { ## MS2 result. tmp = tab_ms1[tab_ms2,{ xx = find_ms1_max(rt,intensity,i.rt_left,i.rt_right) - .(an=i.an, + .(scan=i.scan, ms1_rt = xx[1,], ms1_int = xx[2,]) },by=.EACHI, nomatch=NULL] diff --git a/R/plotting.R b/R/plotting.R index a948ff630ff6c8a49bd0dc380afe7d0102f134b1..eb90abd8a1eb04a719a0734204ec12d67e37a1ad 100644 --- a/R/plotting.R +++ b/R/plotting.R @@ -298,7 +298,7 @@ get_data_4_eic_ms1 <- function(extr_ms1,summ_rows,kvals,labs) { get_data_4_eic_ms2 <- function(summ,kvals,labs) { tab <-get_data_from_key(tab=summ,key=kvals) nms <- names(kvals) - byby <- unique(c(nms,labs,"an")) + byby <- unique(c(nms,labs,"scan")) pdata <- tab[,.(intensity=ms2_int,rt=ms2_rt),by=byby] if (NROW(pdata)==0L) return(NULL) xlxx <- as.character(labs) @@ -336,14 +336,14 @@ make_eic_ms1_plot <- function(extr_ms1,summ,kvals,labs,axis="linear",rt_range=NU ## TODO: FIXME: Somehow calculating representationve ms1_rt for ## plots is wrong. Horrible and wrong. Will remove those labels ## until we fix. - summ_rows <- narrow_summ(summ,kvals,labs,"mz","ms1_rt","ms1_int","Name","SMILES","Formula","qa_ms1_exists","an","ms2_sel") + summ_rows <- narrow_summ(summ,kvals,labs,"mz","ms1_rt","ms1_int","Name","SMILES","Formula","qa_ms1_exists","scan","ms2_sel") rows_key <- union(data.table::key(summ_rows),labs) summ_rows$sel_ms1_rt=NA_real_ summ_rows[ms2_sel==T,sel_ms1_rt:=ms1_rt[which.max(ms1_int)],by=rows_key] summ_rows[is.na(sel_ms1_rt) & ms2_sel==F & qa_ms1_exists==T,sel_ms1_rt:=ms1_rt[which.max(ms1_int)],by=rows_key] summ_rows[,ms1_rt:=sel_ms1_rt] summ_rows[,sel_ms1_rt:=NULL] - summ_rows[,c("an","qa_ms1_exists","ms2_sel"):=NULL] + summ_rows[,c("scan","qa_ms1_exists","ms2_sel"):=NULL] summ_rows <- summ_rows[,unique(.SD)] ## Get the table with ms1 data. @@ -416,7 +416,7 @@ make_eic_ms2_plot <- function(summ,kvals,labs,axis="linear",rt_range=NULL,asp=1, ggplot2::labs(caption=tag_txt,title=title_txt,subtitle=subt_txt) + ggplot2::xlab("retention time")+ggplot2::ylab("intensity")+cust_geom_linerange()+ scale_y(axis=axis,labels=sci10)+rt_lim+guide_fun() - ans <- pdata[,unique(an)] + ans <- pdata[,unique(scan)] ## Add theme. colrdata <- narrow_colrdata(colrdata,kvals) @@ -435,11 +435,11 @@ make_spec_ms2_plot <- function(extr_ms2,summ,kvals,labs,axis="linear",asp=1, col subxdata <- get_data_from_key(extr_ms2,key=common_vals) if (NROW(mdata)==0L) return(NULL) if (NROW(subxdata) == 0L) return(NULL) - ans <- data.table(an=mdata[,unique(an)],key="an") + ans <- data.table(scan=mdata[,unique(scan)],key="scan") ms2ctg <- c(intersect(c(names(kvals),labs),names(extr_ms2)),"CE") xlxx <- intersect(as.character(labs),names(extr_ms2)) - common_labels <- unique(c("an",common_key,intersect(names(extr_ms2),labs))) - pdata <- subxdata[ans,on="an"][,.(mz=mz,intensity=intensity,rt=signif(unique(rt),5)),by=common_labels] + common_labels <- unique(c("scan",common_key,intersect(names(extr_ms2),labs))) + pdata <- subxdata[ans,on="scan"][,.(mz=mz,intensity=intensity,rt=signif(unique(rt),5)),by=common_labels] pdata <- eval(bquote(pdata[,label:=make_line_label(..(lapply(c(xlxx,"rt"),as.symbol))),by=.(xlxx)],splice=T)) if (NROW(pdata)==0L) return(NULL) diff --git a/R/resources.R b/R/resources.R index b3f57b103414fb9b49445501342fec3d66eff384..4cd7360137ac5943d952389733a8f9981a9ec78f 100644 --- a/R/resources.R +++ b/R/resources.R @@ -206,7 +206,7 @@ REPORT_TITLE = "Plots of EICs and MS2 Spectra" ## Select the most fundamental group of entries. Within this group, ## each ID is unique. BASE_KEY = "precid"#c("adduct","tag","ID") -BASE_KEY_MS2 = c("precid","ce","scan")#c(BASE_KEY,"CE","an") +BASE_KEY_MS2 = c("precid","ce","scan")#c(BASE_KEY,"CE","scan") FIG_DEF_CONF =list(grouping=list(group="adduct", plot="ID", diff --git a/R/shiny-state.R b/R/shiny-state.R index ef287a00c463789f8e0febfc329278127c9ff85d..c0b32f9db5244e50226c82cd79ef3ac519ac3fc9 100644 --- a/R/shiny-state.R +++ b/R/shiny-state.R @@ -557,13 +557,13 @@ get_cindex_kval <- function(cindex,row,key) { get_summ_subset <- function(summ,ptab,paritem,kvals) { select <- ptab[item==(paritem)] tab <- get_data_from_key(summ,kvals)[select,nomatch=NULL,on=key(ptab)] - if ("an.1" %in% names(tab)) tab[,an.1:=NULL] #TODO: This is + if ("scan.1" %in% names(tab)) tab[,scan.1:=NULL] #TODO: This is #probably a lousy #hack. tab } -get_ltab <- function(summ_subs,cols=c("an","ms2_rt")) { +get_ltab <- function(summ_subs,cols=c("scan","ms2_rt")) { tab <- summ_subs if (NROW(tab)==1L && is.na(tab$an)) return(data.table::data.table(item=character())) tab[is.na(ms2_sel),ms2_sel:=F] #TODO FIXME: Check why NAs exist at all? @@ -593,8 +593,8 @@ update_on_commit_chg <- function(summ,input,ptab,ltab) { if ('an' %in% names(kvals) && n_ms2_sel) { rkvals <- kvals[!(names(kvals) %in% 'an')] rktab <- tabkey(summ,kvals=rkvals) - tabsel <- summ[rktab,.(an,ms2_sel)] - ansel <- tabsel[ms2_sel == T,an] + tabsel <- summ[rktab,.(scan,ms2_sel)] + ansel <- tabsel[ms2_sel == T,scan] print('ansel') print(ansel) if (length(ansel)!=0) { @@ -610,7 +610,7 @@ update_on_commit_chg <- function(summ,input,ptab,ltab) { the_row <- tabkey(summ,kvals=kvals) summ[the_row,(tgts):=..srcs] - summ[,an.1:=NULL] #FIXME: an.1 pops up somewhere. + summ[,scan.1:=NULL] #FIXME: an.1 pops up somewhere. qflg <- QA_FLAGS[!(QA_FLAGS %in% "qa_pass")] summ[the_row,qa_pass:=apply(.SD,1,all),.SDcols=qflg] summ diff --git a/R/shiny-ui-base.R b/R/shiny-ui-base.R index 8cd232e97a71b90cbf15c214c264e12b70534ee0..3ea38e79ca858b84b15f15377250a457e29c19f1 100644 --- a/R/shiny-ui-base.R +++ b/R/shiny-ui-base.R @@ -564,7 +564,7 @@ mk_shinyscreen_server <- function(projects,init) { res = if (NROW(sel_dt)>0) { - tab[sel_dt,..coln,on=c("adduct","tag","ID","an")] + tab[sel_dt,..coln,on=c("adduct","tag","ID","scan")] } else triv data.table::setnames(res,"intensity","ms2_int") res @@ -741,8 +741,8 @@ mk_shinyscreen_server <- function(projects,init) { rf_get_cindex_parents <- reactive({ rvs$m isolate({ - ms1 = rvs$m$extr$ms1 - ms2 = rvs$m$extr$ms2 + ms1 = rvs$m$db$extr$cgm$ms1 + ms2 = rvs$m$db$extr$cgm$ms2 summ = req(rvs$m$out$tab$summ) }) @@ -813,7 +813,7 @@ mk_shinyscreen_server <- function(projects,init) { rf_plot_eic_ms1 <- reactive({ isolate({ - ms1 = rvs$m$extr$ms1 + ms1 = rvs$m$db$extr$cgm$ms1 summ = rvs$m$out$tab$summ }) @@ -878,7 +878,7 @@ mk_shinyscreen_server <- function(projects,init) { rf_plot_spec_ms2 <- reactive({ isolate({ summ = rvs$m$out$tab$summ - ms2 = rvs$m$extr$ms2 + ms2 = rvs$m$db$extr$cgm$ms2 }) req(NROW(summ)>0L) req(NROW(ms2)>0L) @@ -987,7 +987,7 @@ mk_shinyscreen_server <- function(projects,init) { rvs$status$ms2_int_thresh_stat = rvs$m$conf$prescreen[["ms2_int_thresh"]] rvs$status$s2n_stat = rvs$m$conf$prescreen[["s2n"]] rvs$status$ret_time_shift_tol_stat = rvs$m$conf$prescreen[["ret_time_shift_tol"]] - if (NROW(m$extr$ms1)>0L) rvs$status$is_extracted_stat = "Yes." + if (NROW(m$db$extr$cgm$ms1)>0L) rvs$status$is_extracted_stat = "Yes." if (NROW(m$out$tab$summ)>0L) rvs$status$is_qa_stat = "Yes." } else { @@ -1164,7 +1164,7 @@ mk_shinyscreen_server <- function(projects,init) { observeEvent(input$presc_b,{ - if (NROW(rvs$m$extr$ms1)>0L) { + if (NROW(rvs$m$db$extr$cgm$ms1)>0L) { ## Update just prescreening conf. rvs$m = app_update_conf(input=input, gui=rvs$gui, @@ -1296,8 +1296,8 @@ mk_shinyscreen_server <- function(projects,init) { observeEvent(input$make_report_b,{ isolate({ - ms1 = rvs$m$extr$ms1 - ms2 = rvs$m$extr$ms2 + ms1 = rvs$m$db$extr$cgm$ms1 + ms2 = rvs$m$db$extr$cgm$ms2 summ = rvs$m$out$tab$summ }) @@ -1363,7 +1363,7 @@ mk_shinyscreen_server <- function(projects,init) { fn = file.path(projdir,input$ms2_spectra_tab_name) shinymsg(paste0("Saving MS2 spectra table to: ",basename(fn))) tab2file(pack_ms2_w_summ(rvs$m$out$tab$summ, - rvs$m$extr$ms2), + rvs$m$db$extr$cgm$ms2), fn) shinymsg("Done saving MS2 spectra table.") }) @@ -1625,7 +1625,7 @@ mk_shinyscreen_server <- function(projects,init) { path = rvs$m$run$metfrag$path, subpaths = rvs$m$run$metfrag$subpaths, db_file = rvs$m$run$metfrag$db_file, - stag_tab = stagtab, ms2 = rvs$m$extr$ms2, + stag_tab = stagtab, ms2 = rvs$m$db$extr$cgm$ms2, runtime=rvs$m$run$metfrag$runtime, java_bin=rvs$m$run$metfrag$java_bin, nproc = rvs$m$conf$metfrag$nproc) @@ -1754,7 +1754,7 @@ mk_shinyscreen_server <- function(projects,init) { selMS2 = req(input$sel_spec) if (NROW(ms2tabsel)!=0L) { lval = lapply(ms2tabsel[item==(selMS2)],function(x) x) - ms2 = rvs$m$extr$ms2 + ms2 = rvs$m$db$extr$cgm$ms2 kval = rf_get_cindex_kval() allval = c(kval,lval) ## There can be some duplicates. @@ -1764,7 +1764,7 @@ mk_shinyscreen_server <- function(projects,init) { #more than the names existing in extr$ms2. Also, #BASE_KEY_MS2 does not contain `an', so we need to readd #it. - key = unique(c(names(allval)[names(allval) %in% BASE_KEY_MS2],"an")) + key = unique(c(names(allval)[names(allval) %in% BASE_KEY_MS2],"scan")) kval2 = allval[key] spec = get_data_from_key(ms2,kval2)[,.(mz,intensity)] ## as.character(lapply(1L:NROW(spec),function(nr) paste0(spec[nr,mz]," ",spec[nr,intensity]))) diff --git a/R/state.R b/R/state.R index 9753840b249cef62e67bf77a94778eef4a7c3358..157bbd96be53ab49e7b6cb6ce68f5174b696eb27 100644 --- a/R/state.R +++ b/R/state.R @@ -409,7 +409,7 @@ pack_ms2_w_summ <- function(summ,ms2) { ## Take the columns we need from summ. x = summ[ms2_sel==T,.SD,.SDcols=c(key(summ),"mz","SMILES","Formula","Name")] - mrg_keys = c(intersect(key(ms2),key(summ)),"an") + mrg_keys = c(intersect(key(ms2),key(summ)),"scan") ms2[x,.(mz=i.mz,ms2_spectrum=encode_ms2_to_line(.SD[,c("mz","intensity")])),on=mrg_keys,by=.EACHI] } diff --git a/tests/testthat/test-integration.R b/tests/testthat/test-integration.R index 3b46dc0ffb0c950440c359dd06e5b26959a0160c..7c0a667602ba4052725bec275f4af2dc84e1b0a6 100644 --- a/tests/testthat/test-integration.R +++ b/tests/testthat/test-integration.R @@ -13,5 +13,6 @@ test_that("Extraction returns what is needed.",{ m = run(envopts=eo,m=m,phase="extract") m = run(envopts=eo,m=m,phase="prescreen") + browser() expect_true(1==1) })