Skip to content
Snippets Groups Projects
Commit 0a3fe7ae authored by Todor Kondić's avatar Todor Kondić
Browse files

Adapted `mf_narrow_summ' and `pack_ms2_w_summ' to new data model.

Also adapted metfrag subsystem to new data model.
parent 3eb6d1e1
No related branches found
No related tags found
No related merge requests found
...@@ -783,7 +783,7 @@ metfrag <- function(m) { ...@@ -783,7 +783,7 @@ metfrag <- function(m) {
path = m$run$metfrag$path, path = m$run$metfrag$path,
subpaths = m$run$metfrag$subpaths, subpaths = m$run$metfrag$subpaths,
db_file = m$run$metfrag$db_file, db_file = m$run$metfrag$db_file,
stag_tab = stagtab, ms2 = m$db$extr$cgm$ms2, stag_tab = stagtab, ms2 = m$db$extr$spectra,
runtime=m$run$metfrag$runtime, runtime=m$run$metfrag$runtime,
java_bin=m$run$metfrag$java_bin, java_bin=m$run$metfrag$java_bin,
nproc = m$conf$metfrag$nproc) nproc = m$conf$metfrag$nproc)
......
...@@ -36,7 +36,7 @@ metfrag_get_stag_tab <- function(summ) { ...@@ -36,7 +36,7 @@ metfrag_get_stag_tab <- function(summ) {
## Argument summ can be a subset of actual `summ' table. ## Argument summ can be a subset of actual `summ' table.
x = gen_1d_keytab(summ) x = gen_1d_keytab(summ)
data.table::setnames(x,old="key1d",new="stag") data.table::setnames(x,old="key1d",new="stag")
res = x[summ,`:=`(CE=i.CE,ion_mz=mz)] res = x[summ,`:=`(ce=i.ce,ion_mz=mz)]
res res
} }
...@@ -54,18 +54,21 @@ get_mf_res_ext <- function(fn) { ...@@ -54,18 +54,21 @@ get_mf_res_ext <- function(fn) {
metfrag_run <- function(param,path,subpaths,db_file,stag_tab,ms2,runtime,java_bin,nproc = 1L) { metfrag_run <- function(param,path,subpaths,db_file,stag_tab,ms2,runtime,java_bin,nproc = 1L) {
keys = intersect(colnames(stag_tab),colnames(ms2)) keys = intersect(colnames(stag_tab),colnames(ms2))
rms2 = ms2[stag_tab,on=keys,nomatch=NULL]
message("Generating MetFrag configs.") message("Generating MetFrag configs.")
file_tab = ms2[stag_tab,{
file_tab = rms2[,{
r = write_metfrag_config(param = ..param, r = write_metfrag_config(param = ..param,
path = ..path, path = ..path,
subpaths = ..subpaths, subpaths = ..subpaths,
db_file = ..db_file, db_file = ..db_file,
stag = stag, stag = first(stag),
adduct = adduct, adduct = first(adduct),
ion_mz = ion_mz, ion_mz = first(ion_mz),
spec = data.table(mz=mz,intensity=intensity)) spec = data.table(mz=mz,intensity=intensity))
c(r,stag = stag) c(r,stag = first(stag))
},by=.EACHI,on=keys] },keyby=keys]
message("Done generating MetFrag configs.") message("Done generating MetFrag configs.")
withr::with_dir(path,{ withr::with_dir(path,{
...@@ -89,21 +92,18 @@ metfrag_run <- function(param,path,subpaths,db_file,stag_tab,ms2,runtime,java_bi ...@@ -89,21 +92,18 @@ 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_) { mf_narrow_summ <- function(summ,kv,ms2_rt_i=NA_integer_,ms2_rt_f=NA_integer_) {
skey = data.table::key(summ) skey = data.table::key(summ)
cols = c("adduct","tag","ID","CE","scan","mz","qa_pass","ms2_rt") cols = union(names(skey),c("adduct","tag","ID","ce","precid","scan","mz","qa_pass","ms2_rt"))
nsumm = get_rows_from_summ(summ,kv,cols) dtkv = as.data.table(kv)
nsumm = summ[dtkv,on=names(kv),.SD,.SDcols=cols]
nsumm = nsumm[qa_pass==T] # Those that make sense. nsumm = nsumm[qa_pass==T] # Those that make sense.
nsumm_key = union(SUMM_KEY,"ms2_rt") nsumm_key = intersect(union(SUMM_KEY,"ms2_rt"),colnames(nsumm))
data.table::setkeyv(nsumm,nsumm_key) data.table::setkeyv(nsumm,nsumm_key)
if (!is.na(ms2_rt_i)) { ms2_rt_i = if (!is.na(ms2_rt_i)) ms2_rt_i else 0.
nsumm = nsumm[ms2_rt>(ms2_rt_i)] ms2_rt_f = if (!is.na(ms2_rt_f)) ms2_rt_f else Inf
}
if (!is.na(ms2_rt_f)) { nsumm[ms2_rt > (ms2_rt_i) & ms2_rt < (ms2_rt_f)]
nsumm = nsumm[ms2_rt<(ms2_rt_f)]
}
nsumm
} }
get_metfrag_targets <- function(stag_tab,ms2) { get_metfrag_targets <- function(stag_tab,ms2) {
...@@ -220,7 +220,7 @@ summarise_metfrag_results <- function(param,path,subpaths,cand_parameters,db_sco ...@@ -220,7 +220,7 @@ summarise_metfrag_results <- function(param,path,subpaths,cand_parameters,db_sco
} }
.adapt_col_types <- function(x) { .adapt_col_types <- function(x) {
x[,(names(db_scores)):=lapply(.SD, as.numeric),.SDcol=names(db_scores)] if (length(db_scores)>0) x[,(names(db_scores)):=lapply(.SD, as.numeric),.SDcol=names(db_scores)] else x
} }
.calc_basic_scores <- function(x) { .calc_basic_scores <- function(x) {
......
...@@ -217,7 +217,7 @@ FIG_DEF_CONF =list(grouping=list(group="adduct", ...@@ -217,7 +217,7 @@ FIG_DEF_CONF =list(grouping=list(group="adduct",
SUMM_COLS=c("set",BASE_KEY_MS2,"mz","ms1_rt", "ms1_int", "ms2_rt", "ms2_int", SUMM_COLS=c("set",BASE_KEY_MS2,"mz","ms1_rt", "ms1_int", "ms2_rt", "ms2_int",
"ms1_mean","ms2_sel",QA_FLAGS,"Name", "SMILES", "Formula", "known","Comments","file") "ms1_mean","ms2_sel",QA_FLAGS,"Name", "SMILES", "Formula", "known","Comments","file")
SUMM_KEY = c("set","ID","adduct","tag","scan") SUMM_KEY = c("set","ID","adduct","tag","precid","catid","scan")
PLOT_FEATURES = c("adduct", PLOT_FEATURES = c("adduct",
"tag", "tag",
......
...@@ -1372,7 +1372,7 @@ mk_shinyscreen_server <- function(projects,init) { ...@@ -1372,7 +1372,7 @@ mk_shinyscreen_server <- function(projects,init) {
fn = file.path(projdir,input$ms2_spectra_tab_name) fn = file.path(projdir,input$ms2_spectra_tab_name)
shinymsg(paste0("Saving MS2 spectra table to: ",basename(fn))) shinymsg(paste0("Saving MS2 spectra table to: ",basename(fn)))
tab2file(pack_ms2_w_summ(rvs$m$out$tab$summ, tab2file(pack_ms2_w_summ(rvs$m$out$tab$summ,
rvs$m$db$extr$cgm$ms2), rvs$m$db$extr$spectra),
fn) fn)
shinymsg("Done saving MS2 spectra table.") shinymsg("Done saving MS2 spectra table.")
}) })
...@@ -1634,7 +1634,8 @@ mk_shinyscreen_server <- function(projects,init) { ...@@ -1634,7 +1634,8 @@ mk_shinyscreen_server <- function(projects,init) {
path = rvs$m$run$metfrag$path, path = rvs$m$run$metfrag$path,
subpaths = rvs$m$run$metfrag$subpaths, subpaths = rvs$m$run$metfrag$subpaths,
db_file = rvs$m$run$metfrag$db_file, db_file = rvs$m$run$metfrag$db_file,
stag_tab = stagtab, ms2 = rvs$m$db$extr$cgm$ms2, stag_tab = stagtab,
ms2 = rvs$m$db$extr$spectra, #rvs$m$db$extr$cgm$ms2,
runtime=rvs$m$run$metfrag$runtime, runtime=rvs$m$run$metfrag$runtime,
java_bin=rvs$m$run$metfrag$java_bin, java_bin=rvs$m$run$metfrag$java_bin,
nproc = rvs$m$conf$metfrag$nproc) nproc = rvs$m$conf$metfrag$nproc)
......
...@@ -408,9 +408,11 @@ pack_ms2_w_summ <- function(summ,ms2) { ...@@ -408,9 +408,11 @@ pack_ms2_w_summ <- function(summ,ms2) {
## Takes summ, finds entries with high quality spectra and subsets ms2 based on that. ## Takes summ, finds entries with high quality spectra and subsets ms2 based on that.
## Take the columns we need from summ. ## Take the columns we need from summ.
x = summ[ms2_sel==T,.SD,.SDcols=c(key(summ),"mz","SMILES","Formula","Name")] x = summ[ms2_sel==T,.SD,.SDcols=c(key(summ),"mz","SMILES","Name")]
mrg_keys = c(intersect(key(ms2),key(summ)),"scan") mrg_keys = intersect(key(ms2),key(summ))
ms2[x,.(mz=i.mz,ms2_spectrum=encode_ms2_to_line(.SD[,c("mz","intensity")])),on=mrg_keys,by=.EACHI] mrg_keys = c(mrg_keys,"scan")
## ms2[x,.(mz=i.mz,ms2_spectrum=encode_ms2_to_line(.SD[,c("mz","intensity")])),on=mrg_keys,by=.EACHI]
ms2[x,.(ion_mz=i.mz,mz,intensity),on=mrg_keys,by=.EACHI]
} }
......
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