2021-04-07-update-scalar-pi0-gama-1-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 [3]:
library(data.table)
gene_prior = fread(gene_prior_file)
gene_prior = gene_prior[order(gene_prior$genename),]

selected_annotations = c(1)
logP_Zg0 = sumall0(data)
In [4]:
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 [25]:
for(i in seq(0.16,0.2,0.01)){
    
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 [26]:
plot(ll.lst)
In [27]:
which.max(ll.lst)
20
In [28]:
gm.lst
ll.lst
A matrix: 20 × 2 of type dbl
gama0.25339790.99994414
gama0.24646200.99986721
gama0.24502840.99999898
gama0.24652730.99997564
gama0.25572340.99982913
gama0.24632790.99991015
gama0.24598350.99999870
gama1.89210400.05053365
gama1.88965460.05073585
gama1.89379470.05051670
gama1.89599730.05008693
gama1.89426630.05048543
gama1.90882070.04911948
gama1.89501600.05036444
gama1.89294800.05030295
gama1.90202820.05037517
gama1.89464890.05014284
gama1.88958620.05065857
gama1.89838280.05012419
gama1.89525400.05019804
  1. -36653.6957796911
  2. -36653.6663811608
  3. -36653.6675685553
  4. -36653.6658627665
  5. -36653.7208903833
  6. -36653.6662399235
  7. -36653.6660780727
  8. -36630.9915062714
  9. -36630.9916597215
  10. -36630.9915875553
  11. -36630.9915542731
  12. -36630.9915985592
  13. -36630.9935413858
  14. -36630.9915222123
  15. -36630.9915707425
  16. -36630.9945698813
  17. -36630.9915969171
  18. -36630.9916722832
  19. -36630.9917287056
  20. -36630.991489514