def distribution_ppwm_modular (fm_dna=traindna, order=3): from shogun.Features import StringByteFeatures, StringCharFeatures, DNA from shogun.Distribution import PositionalPWM from numpy import array,e,log,exp charfeat=StringCharFeatures(DNA) charfeat.set_features(fm_dna) feats=StringByteFeatures(charfeat.get_alphabet()) feats.obtain_from_char(charfeat, order-1, order, 0, False) L=20 k=3 sigma = 1; mu = 4 ppwm=PositionalPWM() ppwm.set_sigma(sigma) ppwm.set_mean(mu) pwm=array([[0.0, 0.5, 0.1, 1.0], [0.0, 0.5, 0.5, 0.0], [1.0, 0.0, 0.4, 0.0], [0.0, 0.0, 0.0, 0.0]]); pwm=array([[0.01,0.09,0.1],[0.09,0.01,0.1],[0.85,0.4,0.1],[0.05,0.5,0.7]]) ppwm.set_pwm(log(pwm)) #print(ppwm.get_pwm()) ppwm.compute_w(L) w=ppwm.get_w() #print(w) #from pylab import * #figure(1) #pcolor(exp(w)) #pcolor(w) #colorbar() #figure(2) ppwm.compute_scoring(1) u=ppwm.get_scoring(0) #pcolor(exp(u)) #show() #ppwm=PositionalPWM(feats) #ppwm.train() #out_likelihood = histo.get_log_likelihood() #out_sample = histo.get_log_likelihood_sample() return w,u
def distribution_ppwm_modular(fm_dna=traindna, order=3): from shogun.Features import StringByteFeatures, StringCharFeatures, DNA from shogun.Distribution import PositionalPWM from numpy import array, e, log, exp charfeat = StringCharFeatures(DNA) charfeat.set_features(fm_dna) feats = StringByteFeatures(charfeat.get_alphabet()) feats.obtain_from_char(charfeat, order - 1, order, 0, False) ppwm = PositionalPWM() ppwm.set_sigma(5.0) ppwm.set_mean(10.0) pwm = array([[0.0, 0.5, 0.1, 1.0], [0.0, 0.5, 0.5, 0.0], [1.0, 0.0, 0.4, 0.0], [0.0, 0.0, 0.0, 0.0]]) ppwm.set_pwm(log(pwm)) print ppwm.get_pwm() ppwm.compute_w(20) w = ppwm.get_w()
def distribution_ppwm_modular (fm_dna=traindna, order=3): from shogun.Features import StringByteFeatures, StringCharFeatures, DNA from shogun.Distribution import PositionalPWM from numpy import array,e,log,exp charfeat=StringCharFeatures(DNA) charfeat.set_features(fm_dna) feats=StringByteFeatures(charfeat.get_alphabet()) feats.obtain_from_char(charfeat, order-1, order, 0, False) ppwm=PositionalPWM() ppwm.set_sigma(5.0) ppwm.set_mean(10.0) pwm=array([[0.0, 0.5, 0.1, 1.0], [0.0, 0.5, 0.5, 0.0], [1.0, 0.0, 0.4, 0.0], [0.0, 0.0, 0.0, 0.0]]); ppwm.set_pwm(log(pwm)) print ppwm.get_pwm() ppwm.compute_w(20) w= ppwm.get_w()