Ejemplo n.º 1
0
def setAlignments( seqs = None, profiles = None, run_id = None, ali_type = 'struct',
                   **kwargs ):
    '''
Make N structural alignemnts for each of N profiles
having the same M sequences apiece. 
'''
    assert seqs; assert run_id; assert profiles
    
    ns = len(profiles)
    nq = len(seqs)
    rutils = utils

    if ali_type == 'struct':
        ali_out = [infernal.alignment(seqs, p, run_id) for p in profiles]
        alignments = [a[0] for a in ali_out]
        refs = [[a[1]]*nq for a in ali_out]
        stks =  [a[2] for a in ali_out]
        pairs = [[rutils.stk_pairs(stk)]*nq for stk in stks] 
    elif ali_type == 'muscle':
        alignment = muscle.align(seqs)
        alignments = [alignment] * ns     
        
        refs = None
        pairs = None
        stks = None
        #raise Exception('MUSCLE ALIGNMENT NOT YET IMPLEMENTED... SORRY :(')
        #ONCE IMPLEMENTED, WILL FIND HOMOLOGOUS STRUCTURES FOR EACH
        #PROFILE IN THE GIVEN MULTIPLE SEQUENCE ALIGNMENT.

        #IT REMAINS UNCLEAR HOW I WILL PUT THESE INTO A TREE AND TRACK THE
        #STRUCTURAL ELEMENTS THROUGH IT!

        #all_refs = []
        #all_pairs = []
        #for i, profile  in enumerate(profiles):
        #    these_refs = []
        #    these_pairs = []
        #    for j, q in enumerate(seqs):
        #        ali_out = [infernal.alignment([q],profile, run_id)]
        #        these_refs.append(ali_out[0][1])
        #        stk = ali_out[0][2]
        #        
        #        this_ali = ali_out[0][0]
        #        this_seq = this_ali[0]
        #        all_seqs.append(this_seq)
        #        these_pairs.append( rutils.stk_pairs(stk))
        #        raise Exception()
        #    all_refs.append(these_refs)
        #    all_pairs.append(these_pairs)
        refs = None
        pairs = None
                
    else:  
        raise Exception('sorry not implemented')
    return alignments, refs, pairs
Ejemplo n.º 2
0
def align_seqnodes(recs,**kwargs):
  align = muscle.align(recs)
  return align