if random() > .5: seq[start:start + K] = site else: seq[start:start + K] = rev_comp_site return seq p_binding_site = .01 order = 1 num_background_states = 2 # try to learn pssm for these sequences seqs = [gen_sequence() for i in xrange(num_seqs)] def bw_callback(LL): print LL traits = PssmTraits(K, p_binding_site, order, num_background_states, create_background_model) pssm_learner = PssmLearner(seqs, traits) #pssm_learner.bw_callback = bw_callback multiple_learner = MultiplePssmLearner(pssm_learner, 'test_multiple') found, discarded = multiple_learner.learn_pssms(max_to_find=2, max_attempts=2) print 'Found %d models, discarded %d' % (len(found), len(discarded)) for model, sites, counts in found: print '# sites: %d' % len(sites) dist = traits.pssm_dist(model) IC = information_content(dist) print 'IC: %f' % IC #image.show()
def gen_sequence(): seq = random_sequence(seq_length) if random() > .5: seq[start:start+K] = site else: seq[start:start+K] = rev_comp_site return seq p_binding_site = .01 order = 1 num_background_states = 2 # try to learn pssm for these sequences seqs = [ gen_sequence() for i in xrange(num_seqs) ] def bw_callback(LL): print LL traits = PssmTraits(K, p_binding_site, order, num_background_states, create_background_model) pssm_learner = PssmLearner(seqs, traits) #pssm_learner.bw_callback = bw_callback multiple_learner = MultiplePssmLearner(pssm_learner, 'test_multiple') found, discarded = multiple_learner.learn_pssms(max_to_find = 2, max_attempts = 2) print 'Found %d models, discarded %d' % (len(found), len(discarded)) for model, sites, counts in found: print '# sites: %d' % len(sites) dist = traits.pssm_dist(model) IC = information_content(dist) print 'IC: %f' % IC #image.show()