view test/usecase3.py @ 354:2ede0318ff95
Added virtual monomer types for undefined letters N and X, changed all previous such monomers to be considered modified
author |
Daniil Alexeyevsky <me.dendik@gmail.com> |
date |
Fri, 21 Jan 2011 17:01:21 +0300 |
parents |
20944c113ea3 |
children |
387f692e2356 |
line source
1 from allpy import protein
2 alignment = protein.Alignment.from_file(open("aln.fasta"))
3 #conservative = [(10,20), (40,50)]
4 conservative = [(0,6),(18,37)]
6 def ranges_to_markup(ranges):
7 """Convert list of ranges to line of markup.
9 This has nothing to do with allpy.
11 markup = ["-"] * len(alignment.columns)
12 for begin, end in ranges:
13 for i in range(begin, end+1):
15 return "".join(markup)
17 def markup_to_blocks(markup):
18 """Convert markup line to a bunch of blocks, one for each sequential run."""
21 for mark, column in zip(markup, alignment.columns):
23 block = protein.Block.from_alignment(alignment, columns=[])
24 blocks[mark] = blocks.get(mark, []) + [block]
26 blocks[mark][-1].columns.append(column)
30 markup = ranges_to_markup(conservative)
31 blocks = markup_to_blocks(markup)
32 for block in blocks["-"]:
34 alignment.to_fasta(open("output.fasta", "w"))