Exemple #1
0
 def generate_continuations(self, sym, ind, original_seq):
     postfix_len = 4
     seqs = []
     seq_inds = []
     for i in range(2, postfix_len):
         fixed = {ind:sym}
         fixed[ind+i] = 'I'
         seq, inds = \
             shortest_path(self.model, fixed, ind, original_seq)
         seqs.append(seq)
         seq_inds.append(inds)
     return seqs, seq_inds
Exemple #2
0
    def generate_ripples(self, original_seq, sym_ind, sims, win_max=2):
        print '...generate_ripples', sims
        seq_subs = []
        seq_inds = []
        for win in range(1, win_max):
            ub = sym_ind + win
            lb = sym_ind - win

            # allow one extra seq step
            lb_out_bound = lb < -1
            ub_out_bound = ub > len(original_seq)

            # supposedly already second time out of bound
            if lb_out_bound or ub_out_bound:
                break

            if lb < 0:
                lb = 0
            if ub > len(original_seq):
                ub = len(original_seq)

            for j, s in enumerate(sims):
                fixed = {}
                if ub < len(original_seq):
                    fixed[ub] = original_seq[ub]
                else:
                    fixed[ub] = []

                fixed[lb] = original_seq[lb]
                # may override lb or ub
                fixed[sym_ind] = s
                print fixed

                sub_seq, sym_inds = \
                    shortest_path(self.model, fixed, sym_ind, original_seq)

                seq_subs.append(sub_seq)
                seq_inds.append(list(sym_inds))
        for seq in seq_subs:
            print seq
        return seq_subs, seq_inds