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

selected_annotations = c(1,2,3)
logP_Zg0 = sumall0(data)
In [5]:
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 [32]:
for(i in seq(0.16,0.2,0.01)){
    
a = c(rep(.1,3),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 [33]:
gm.lst
ll.lst
A matrix: 20 × 4 of type dbl
gama0.65689641.7397861.18706590.07491911
gama0.65115211.7466601.18955720.07463896
gama0.64122051.7542091.19931740.07416458
gama0.65059371.7462351.19139180.07439457
gama0.64878261.7483051.19195380.07450695
gama0.64932551.7470401.18977320.07483334
gama0.65059961.7480171.18970170.07444925
gama0.65099611.7477781.19042340.07453956
gama0.69576571.6809081.14445530.07841420
gama0.87432191.4848290.71927660.09941103
gama0.64752951.7505411.19147440.07444288
gama0.64942961.7487311.19063000.07408705
gama0.65163331.7432791.18701360.07496639
gama0.66673271.7349141.17295240.07559982
gama0.65164781.7486301.19027830.07428465
gama0.64889741.7492601.18932910.07452712
gama0.62474701.7768781.19618290.07366718
gama0.48333381.9004421.25494260.06952424
gama0.64946701.7476441.18975970.07487428
gama0.64981421.7470191.18964870.07478791
  1. -36572.8095708438
  2. -36572.8079660188
  3. -36572.8105027984
  4. -36572.808274808
  5. -36572.8080203598
  6. -36572.8080808036
  7. -36572.8080172488
  8. -36572.8079747223
  9. -36572.8938996583
  10. -36577.173126213
  11. -36572.8081258265
  12. -36572.8089887641
  13. -36572.8082130437
  14. -36572.8172759166
  15. -36572.8082045685
  16. -36572.808076329
  17. -36572.8326787905
  18. -36573.5629523631
  19. -36572.80824296
  20. -36572.8080204665
In [34]:
which.max(ll.lst)
2
In [35]:
plot(ll.lst)