view utils/freqs.py @ 1012:9c00d065c054
structure, ignore_one_ss: fix a crash for alignments of >=3 sequences
This bug is caused by multiple addition of ss markup in geometrical_cores().
It did not appear for pair alignment, since geometrical_cores() was called
only once.
close #143
author |
Boris Nagaev <bnagaev@gmail.com> |
date |
Tue, 06 Mar 2012 19:21:59 +0400 |
parents |
8c7e5c16b2f4 |
children |
|
line source
2 """Read alignment on stdin. Print CSV table of letter frequences on stdout.
4 from allpy import protein
5 from allpy.data import codes
8 sys.stderr.write(__doc__)
11 amount = freqs.get(monomer)
13 return 100.0 * amount / width
16 aln = protein.Alignment().append_file(sys.stdin)
17 monomers = [code1 for code1, modified, _, _ in codes.protein if not modified]
19 width = len(aln.sequences)
20 print ", ".join(map(str, monomers))
21 for column in aln.columns_as_lists():
23 for monomer in column:
25 monomer = monomer.code1
28 freqs[monomer] = freqs.get(monomer, 0) + 1
29 print ", ".join(map(str, map(freq, monomers)))