Exemplo n.º 1
0
def convertMali2Alignlib(mali):
    """convert a multiple alignment into an alignlib multiple alignment object."""
    import alignlib
    m = alignlib.makeMultipleAlignment()
    for identifier in mali.getIdentifiers():
        a = alignlib.makeAlignatumFromString(mali[identifier])
        m.add(a)
    return m
Exemplo n.º 2
0
def convertMali2Alignlib( mali ):
    """convert a multiple alignment into an alignlib multiple alignment object."""
    import alignlib
    m = alignlib.makeMultipleAlignment()
    for identifier in mali.getIdentifiers():
        a = alignlib.makeAlignatumFromString( mali[identifier] )
        m.add( a )
    return m
Exemplo n.º 3
0
def convertMali2Mali( mali ):
    """convert a mali to a profile."""

    new_mali = alignlib.makeMultipleAlignment()
    for id in mali.getIdentifiers():
        s = alignlib.makeAlignatumFromString( mali[id] )
        s.thisown = 0
        new_mali.addAlignatum( s )

    return new_mali
Exemplo n.º 4
0
def readPicasso( infile ):
    """read alignment in the non-defined picasso format.
    """

    mali = alignlib.makeMultipleAlignment()

    while 1:
        line = infile.readline()
        if not line: break

        x = re.search( "\d+\s+([A-Z\-\.]*)\s+\d+", line)
        if x:
            s = x.groups()[0]
            a = alignlib.makeAlignatumFromString(s)
            a.thisown = 0
            mali.addAlignatum( a )
            
    return mali
Exemplo n.º 5
0
            map_mali2seq = alignlib.makeAlignataVector()

            sequence = alignlib.makeSequence( cur_record.sequence )
            profile = alignlib.makeProfileFromMali( new_mali )

            if options.loglevel >= 4:
                options.stdlog.write(profile.Write())

            alignator.Align( profile, sequence, map_mali2seq )

            if options.loglevel >= 3:
                options.stdlog.write( map_mali2seq.Write() )

            ## add sequence to mali
            a = alignlib.makeAlignatumFromString( cur_record.sequence )
            a.thisown = 0
                
            new_mali.addAlignatum( a, map_mali2seq, 1, 1, 1, 1, 1 )

            id = cur_record.title
            mali.mIdentifiers.append( id )
            mali.mMali[id] = Mali.AlignedString( id, 0, len(cur_record.sequence), new_mali.getRow( new_mali.getWidth() - 1 ).getString() )

        # substitute 
        for x in range(old_length):
            mali.mMali[mali.mIdentifiers[x]].mString = new_mali.getRow( x ).getString()
            
        mali.writeToFile( sys.stdout, format = options.output_format )
        
    E.Stop()
Exemplo n.º 6
0
        try:
            (query_nid, sbjct_nid, score, query_from, query_to, query_ali, sbjct_from, sbjct_to, sbjct_ali) = line
        except ValueError:
            continue

        ## first time: add query
        if not query_sequence:
            ## if alignment is to a sequence, add query sequence at top (without gaps)
            if query_nid and query_nid != "0":
                if param_sequences:
                    if param_sequences.has_key( query_nid ):
                        query_sequence = param_sequences[query_nid]
                    else:
                        print "# sequence %s not found" % sbjct_nid
                        continue
                    query_alignatum = alignlib.makeAlignatumFromString( query_sequence )
                    identifiers.append( query_nid )

                else:
                    query_sequence, query_nid = GetSequence( tbl_nrdb, query_nid )
                    (identifier, description ) = tbl_nrdb.GetAnnotationFromNid(query_nid)
                    query_alignatum = pairsdblib.makeAlignatumNeighbour( query_sequence, identifier, description, query_nid)
                    
                query_alignatum.thisown = 0
                mali.addAlignatum( query_alignatum )
            else:
                query_sequence = 1
                mali.setLength( max_mali_length )
                
        ## discard self-alignments
        if query_nid == sbjct_nid: continue