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

System to synthetise bogus MS spectra completed.

parent 5e5744df
No related branches found
No related tags found
No related merge requests found
......@@ -118,7 +118,7 @@ empty_cgram_ms1 <- function(n=0L) {
empty_cgram_ms2 <- function(n=0L) {
r = data.table(precid=integer(n),
ce=numeric(n),
scan=integer(n),
scan=character(n),
idx=integer(n),
rt=numeric(n),
intensity=numeric(n))
......@@ -128,11 +128,11 @@ empty_cgram_ms2 <- function(n=0L) {
}
empty_spectra_table <- function() {
r = data.table(precid=integer(0),
scan=character(0),
mz=numeric(0),
intensity=numeric(0))
empty_spectra_table <- function(n=0L) {
r = data.table(precid=integer(n),
scan=character(n),
mz=numeric(n),
intensity=numeric(n))
setkey(r,precid,scan)
r
}
......
File deleted
PLOTTING_DATA <- readRDS(system.file("testdata","plotting-test-data.rds",package="shinyscreen"))
## PLOTTING_DATA <- readRDS(system.file("testdata","plotting-test-data.rds",package="shinyscreen"))
PLOTTINGDATA <- system.file("testdata","plotting-test-data.rds")
PLOTTING_STATE_DB = readRDS(system.file(package="shinyscreen","testdata","plotting-state-db.rds"))
synthetise_cgm_ms1 <- function(n,fac,shift) {
dt = data.table(rt=numeric(n),intensity=numeric(n))
dt[1L:n,rt:=seq(length.out=n)]
rt0 = dt[.N/2L + shift,rt]
dt[,intensity:=fac*exp(-((rt - rt0)/2.)**2)]
}
synthetise_cgm_ms2 <- function(cgm1,shift) {
dt = copy(cgm1)
m = dt[,max(intensity)]
n0 = dt[,.N%/%2L] + shift
dt[,intensity:=NA_real_]
dt[n0-1L,intensity:=0.05*m]
dt[n0,intensity:=0.1*m]
dt[n0+1L,intensity:=0.07*m]
dt
}
synthetise_spectra <- function(n_mz,precursors,cgm2) {
do_int <- function(n_mz,i) {
things = runif(n_mz - 1L,0.5*i,0.9*i)
c(things,i)
}
do_mass <- function(n_mz,mz) {
c(runif(n_mz-1L,0.1*mz,0.7*mz),mz)
}
cgm2[precursors,on=.(precid),
.(mz=do_mass(n_mz,i.mz),
intensity=do_int(n_mz,intensity[[1]]),
scan=scan[[1]]),
by=.EACHI]
}
synthetise_pseudo_state_db <- function(db) {
## Fix input parameters.
set.seed(22) # Random generator seed for reproducible results.
n_time = 11L
n_mz = 3L
n_precid = length(db$precursors[,unique(precid)])
n_cgm = n_time * n_precid
n_spectra = n_time * n_precid * n_mz
shifts = sample(c(-1L,0L,1L),size=n_precid,replace=T)
facs = runif(n_precid,min=0.5)*1.e8
inp = data.table(precid=db$precursors[,unique(precid)],
fac=facs,
shift=shifts)
setkey(inp,precid)
extr = list()
extr$cgm$ms1 = empty_cgram_ms1(n_cgm)
extr$cgm$ms2 = empty_cgram_ms2(n_cgm)
extr$spectra = empty_spectra_table(n_spectra)
uprec = db$precursors[,unique(.SD),.SDcols=c("file","tag","precid")]
uprec[,{
f=file
for (i in seq(length.out=length(precid))) {
b=(.GRP-1L)*length(precid)*n_time + (i-1L)*n_time + 1L
e=b+n_time - 1L
pp = precid[[i]]
cx=(.GRP-1L)*length(precid) + i
faci = inp[precid==pp,fac]
shifti = inp[precid==pp,shift]
ri = synthetise_cgm_ms1(n=n_time,
fac=faci,
shift=shifti)
ri2 = synthetise_cgm_ms2(ri,
shift=shifti)
extr$cgm$ms1[b:e,
`:=`(precid=pp,
cgmidx=cx,
file=f,
rt=ri[,rt],
intensity=ri[,intensity])]
scans = paste0("F1.S",formatC(b:e,width=6,flag="0"))
extr$cgm$ms2[b:e,
`:=`(precid=pp,
ce=50,
scan=scans,
idx=b:e,
rt=ri2[,rt],
intensity=ri2[,intensity])]
}
},
by=c("file","tag")]
extr$cgm$ms2 = extr$cgm$ms2[!is.na(intensity)]
db$extr = extr
db$extr$spectra = synthetise_spectra(n_mz,db$precursors,db$extr$cgm$ms2)
set.seed(NULL)
browser()
1+1
db
}
## synthetise_eic_ms1 <- function(precursors) {
## ## N =
## dt = empty_cgram_ms1(
## }
......@@ -13,6 +13,5 @@ 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)
})
test_that("get_data_from_key",{
s = synthetise_pseudo_state_db(PLOTTING_STATE_DB)
expect_identical(1L,1L)
})
## test_that("make_eic_ms1_plot",{
## ms1 <- PLOTTING_DATA$ms1
......
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