2021-04-07-update-scalar-pi0-gama-2nd-annota
In [1]:
library(Rcpp)
sourceCpp(file="/storage11_7T/fuy/TADA-A/cell_WES/DNM/ll_sum.cpp")
sourceCpp(file="/storage11_7T/fuy/TADA-A/cell_WES/DNM/multi_annota.cpp")
sourceCpp(file="/storage11_7T/fuy/TADA-A/cell_WES/DNM/post.cpp")
sourceCpp(file="/storage11_7T/fuy/TADA-A/cell_WES/DNM/ll_sum2.cpp")
In [2]:
compact_data = readRDS("/storage11_7T/fuy/TADA-A/cell_WES/DNM/2021-01-19cp6_all_gene_PO_6788SNV_sf_uni_prior_compact.rds")
data=compact_data$base_info

gene_prior_file = "/storage11_7T/fuy/TADA-A/db/MS_data/prior/new_uniform_gene_prior.txt"
optimization_iteration = 2000
In [41]:
library(data.table)
gene_prior = fread(gene_prior_file)
gene_prior = gene_prior[order(gene_prior$genename),]

selected_annotations = c(2)
logP_Zg0 = sumall0(data)

fr_pi <- function(par){

    all_rr = par[1:length(selected_annotations)] 
    gene_prior$prior <- rep(par[length(par)],nrow(gene_prior))
    
    logP_Zg1 = sumall1(data,selected_annotations,all_rr)

    logP_table<-data.table(logP_Zg1 = logP_Zg1, logP_Zg0 = logP_Zg0, genename = names(data))
    logP_table <- logP_table[gene_prior, on = "genename"]
    logP_table <- logP_table[complete.cases(logP_table)]
    idx = match(unique(logP_table$genename),logP_table$genename)
    idx2 = c(idx,nrow(logP_table) + 1)
    pr = logP_table[idx,]$prior
    ll_sum1 <- ll_sum(idx2,logP_table$logP_Zg1,logP_table$logP_Zg0,pr)
    ll_sum1 
    }

ll.lst = c()
gm.lst = c()
In [42]:
for(i in seq(0.01,0.2,0.02)){
    
a = c(rep(.1,1),i)

tmm = proc.time()
gama = optim(a, fr_pi ,control=list("fnscale"=-1, "maxit" = optimization_iteration))$par
gm.lst = rbind(gm.lst,gama)
ll = fr_pi(gama)
ll.lst = c(ll.lst,ll)
proc.time() - tmm

gm.lst
ll.lst
    
    }
In [46]:
plot(ll.lst)
In [47]:
which.max(ll.lst)
9
In [48]:
gm.lst
ll.lst
A matrix: 10 × 2 of type dbl
gama2.47148510.03797188
gama2.47520780.03752927
gama0.25574160.99999073
gama2.47495310.03765143
gama2.47429990.03803196
gama2.47449440.03760144
gama2.47169760.03776881
gama2.46711190.03804846
gama2.47125560.03783528
gama2.46844450.03812429
  1. -36613.5663787453
  2. -36613.566592261
  3. -36652.6790203363
  4. -36613.5663955015
  5. -36613.5670881353
  6. -36613.566489047
  7. -36613.5664353841
  8. -36613.5665962272
  9. -36613.5663758294
  10. -36613.5664621021