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
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
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
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
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()
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