File: maf_species_in_all_files.py

package info (click to toggle)
python-bx 0.13.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 5,000 kB
  • sloc: python: 17,136; ansic: 2,326; makefile: 24; sh: 8
file content (27 lines) | stat: -rwxr-xr-x 563 bytes parent folder | download | duplicates (2)
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
#!/usr/bin/python3

"""
Takes a list of maf filenames on the command line and prints a comma separated
list of the species that occur in all of the mafs.

usage %prog maf1 maf2 ...
"""
import operator
import sys
from functools import reduce

import bx.align.maf

files = sys.argv[1:]
sets = []

for file in files:
    sys.stderr.write(".")
    s = set()
    for block in bx.align.maf.Reader(open(file)):
        for comp in block.components:
            s.add(comp.src.split(".")[0])
    sets.append(s)

inter = reduce(operator.and_, sets)
print(",".join(inter))