6/13/2008

Q&A in E_Coli code ---Continue

Ok, but in the script runS_post_as_prior_freq.m you get the posterior means from the previous network and set the hyprparameter precisions to 1 (why do you do this?)

PriMu.alpha = 1*ones(k,1); % precision vector, each element for a COL of A
PriMu.beta = 1*ones(pinp,1); % precision vector, each element for a COL of B
PriMu.gamma = 1*ones(k,1); % pseudo-precision vector, each element for a COL of C
PriMu.delta = 1*ones(pinp,1); ; % pseudo-precision vector, each element for a COL of D

==========================================

That's the default initial values for hyperpara, starting point for vbssm model. Tthis could be found at line 86 of vssminpn.m ( vbssm3.2 )


But then you retrain the model using the original data and these priors:

net = vssminpn(yn,inpn,k,its,0,0,PriMu,[10 20 30]);

But you didn't try giving the previous network as an input ? This should be possible, according to Matt README file:

i.e. net = vssminpn(yn,inpn,k,its,0,0,PriMu,[10 20 30],net);

===========================================

Yes, it's possible. I cannot remember why not use the previous network as input. Is it due to we have incorporated the previous posterior as prior?

In this case I wonder if we still need to specify the priors which do not change in PriMu{} as you have done in this script? Will the prior added in PriMu{} overwrite the existing posterior mean in net.exp.D ? (which is what we would want)

========================================

PriMu{} is changed by

muD = net.exp.D;
tmp = muD(:,2:end)';

for j = 1:length(from_idx)

tmp(from_idx(j),to_idx(j)) = double(conn_attr(j))*tmp(from_idx(j),to_idx(j))*mu;
end

muD(:,2:end) = tmp';
PriMu.muD = muD;


trigamma problem

It seems to work ok if I have a zero prior, so the problem with trigamma.m comes from introducing the non-zero prior. I have no idea how to fix this, so any help you can give would be much appreciated.

==================================================

I recalled I also had such problem for some seeds.


Instead of training model with seeds= (1, 10), I trained models with seeds = (1,30) and then collected 10 successful ones.


6/12/2008

Q&A in E_Coli code

1. why you transponse muD twice?
==============================
muD = net.exp.D; % muD's first column is biased column, row = 'to', col = 'from'
tmp = muD(:,2:end)'; % tmp = transpose of muD, such that in tmp row = 'from', col = 'to'

for j = 1:length(from_idx)

tmp(from_idx(j),to_idx(j)) = double(conn_attr(j))*tmp(from_idx(j),to_idx(j))*mu; % keep it row = 'from', col = 'to'
end

muD(:,2:end) = tmp'; % go back to muD's original format, i.e. row = 'to', col = 'from'
==============================

2. And are the row, column indices in from_idx, to_idx counted with the bias column included?
i.e in the E_coli example from_idx = 27. Does this mean gene 26 (with + 1 from bias column)?

from_idx, to_idx , conn_attr , all derived from the shift network prior:
% hns pp glpC 1
% hns pp glpQ 1
% hns pp cyoD 0
% hns pp cyoE 0
% hns pp cyoB 0
% hns pp cyoA 0
% hns pp sdhB -1
% hns pp arcA 0
% hns pp appY -1
% hns pp cadA -1
% hns pp cadB -1
% hns pp hdeB -1

hns is the 27th gene in common_genereg_names.mat, which is already in the E_Coli.zip, subdirectory 'step1-make_yn_inpn\matdata'.

common_genereg_names.mat is extracted from 'top50&reg.sif' and vsn-normalization.xls. Please refer this post (after Download) for detail.
.

Values in conn_attr.mat are 1 (positive), -1(negative) or 0 (none).