1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
#!/usr/bin/python3
"""
Read an alignment from stdin and for each block print the result of
evaluating `template_string` (in cheetah template format). The alignment
block will be placed in the template context as `a` and the list of components
as `c`.
usage: %prog template [options]
-f, --format = maf: Input format, maf (default) or axt
"""
import sys
from bx import align
from bx.cookbook import doc_optparse
try:
from Cheetah.Template import Template
except ImportError:
print("This script requires the Cheetah template modules", file=sys.stderr)
sys.exit(-1)
def main():
# Parse command line arguments
options, args = doc_optparse.parse(__doc__)
try:
template = Template(args[0])
format = options.format
if not format:
format = "maf"
except Exception:
doc_optparse.exception()
reader = align.get_reader(format, sys.stdin)
for a in reader:
template.a = a
template.c = a.components
print(template)
if __name__ == "__main__":
main()
|