Here I investigate behavior of lfsr of CS per condition, using singleton simulation setting.
Y = dscrutils:::read_dsc('small_data_1_singleton_1.pkl')
names(Y)
X = readRDS('small_data_1.rds')
names(X)
prior = dscrutils:::read_dsc('oracle_generator_1.pkl')$configurations$mixture_1
names(prior)
m_init = mvsusieR:::MashInitializer$new(NA, NA, xUlist=prior$xUlist, prior_weights=prior$pi, null_weight=prior$null_weight, top_mixtures=0, alpha=0)
result = mvsusieR::mvsusie(X$X, Y$Y, L=10, prior_variance=m_init)
true_idx = which(apply(Y$meta$true_coef, 1, sum) != 0)
Y$meta$true_coef[true_idx,]
true_idx
names(result)
dim(result$mixture_weights)
result$pip[true_idx]
result$sets
pip = mvsusieR:::mvsusie_get_pip_per_condition(result, m_init)
pip[true_idx,]
This looks perfectly Okay.
result$alpha
lfsr = mvsusieR::mvsusie_get_cs_lfsr(result)
lfsr
This also looks good.
Now let me try another data-set,
Y = dscrutils:::read_dsc('small_data_100_singleton_1.pkl')
X = readRDS('small_data_100.rds')
prior = dscrutils:::read_dsc('oracle_generator_1.pkl')$configurations$mixture_1
m_init = mvsusieR:::MashInitializer$new(NA, NA, xUlist=prior$xUlist, prior_weights=prior$pi, null_weight=prior$null_weight, top_mixtures=0, alpha=0)
result = mvsusieR::mvsusie(X$X, Y$Y, L=10, prior_variance=m_init)
true_idx = which(apply(Y$meta$true_coef, 1, sum) != 0)
Y$meta$true_coef[true_idx,]
pip = mvsusieR:::mvsusie_get_pip_per_condition(result, m_init)
pip[true_idx,]
This looks good.
lfsr = mvsusieR::mvsusie_get_cs_lfsr(result)
lfsr
This also looks good.