• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

js51 / SplitP / 7987845665

21 Feb 2024 10:50AM UTC coverage: 45.65% (-1.0%) from 46.646%
7987845665

push

github

js51
add method for computing sub-alignments (for ignoring some taxa)

1 of 24 new or added lines in 1 file covered. (4.17%)

446 of 977 relevant lines covered (45.65%)

1.37 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

14.29
/splitp/alignment.py
1
from collections import UserDict
3✔
2

3

4
class Alignment(UserDict):
3✔
5
    def __init__(self, data, taxa):
3✔
6
        self.data = data
×
NEW
7
        self.taxa = tuple(taxa)
×
NEW
8
        self.sub_alignments = dict()
×
9

10
    def sub_alignment(self, sub_taxa):
3✔
NEW
11
        sub_taxa = tuple(sorted(sub_taxa, key=self.taxa.index))
×
NEW
12
        try: 
×
NEW
13
            return self.sub_alignments[sub_taxa]
×
NEW
14
        except KeyError:
×
NEW
15
            pass
×
NEW
16
        sub_taxa_indexer = {taxon: self.taxa.index(taxon) for taxon in sub_taxa}
×
NEW
17
        sub_taxa_indices = sorted(sub_taxa_indexer.values())
×
NEW
18
        if not (set(sub_taxa) <= set(self.taxa)):
×
NEW
19
            raise ValueError("Sub taxa must be a  subset of the taxa")
×
NEW
20
        all_patterns = set(self.data.keys())
×
NEW
21
        sub_alignment_data = {}
×
NEW
22
        while len(all_patterns) > 0:
×
NEW
23
            pattern = all_patterns.pop()
×
NEW
24
            trimmed_pattern = "".join(pattern[i] for i in sub_taxa_indices)
×
NEW
25
            try:
×
NEW
26
                sub_alignment_data[trimmed_pattern] += self.data[pattern]
×
NEW
27
            except KeyError:
×
NEW
28
                sub_alignment_data[trimmed_pattern] = self.data[pattern]
×
NEW
29
        sub_alignment = Alignment(sub_alignment_data, sub_taxa)
×
NEW
30
        self.sub_alignments[sub_taxa] = sub_alignment
×
NEW
31
        return sub_alignment
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc