diff --git a/README.md b/README.md index bdbc7227..69deb8d4 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,7 @@ Use Truvari's comparison engine to consolidate redundant variants in a merged mu - [segment](https://github.com/acenglish/truvari/wiki/segment) - Normalization of SVs into disjointed genomic regions - [stratify](https://github.com/acenglish/truvari/wiki/stratify) - Count variants per-region in vcf - [divide](https://github.com/ACEnglish/truvari/wiki/divide) - Divide a VCF into independent shards + - [ga4gh](https://github.com/ACEnglish/truvari/wiki/ga4gh) - Consolidate benchmarking result VCFs ## 🔎 More Information diff --git a/repo_utils/answer_key/anno/anno_bpovl.jl b/repo_utils/answer_key/anno/anno_bpovl.jl index 00328b57..11e3e0c8 100644 Binary files a/repo_utils/answer_key/anno/anno_bpovl.jl and b/repo_utils/answer_key/anno/anno_bpovl.jl differ diff --git a/truvari/annotations/density.py b/truvari/annotations/density.py index bab723ed..83d7c7cb 100644 --- a/truvari/annotations/density.py +++ b/truvari/annotations/density.py @@ -61,8 +61,8 @@ def density_main(args): # setting new indexes after masking new_tree = defaultdict(IntervalTree) cnt = 0 - for chrom in tree: - for intv in tree[chrom]: + for chrom, intvs in tree.items(): + for intv in intvs: for i in range(intv.begin, intv.end, args.stepsize): new_tree[chrom].addi( i, min(intv.end, i + args.windowsize), data=cnt) diff --git a/truvari/region_vcf_iter.py b/truvari/region_vcf_iter.py index 4f4e4ba1..3a0d29c0 100644 --- a/truvari/region_vcf_iter.py +++ b/truvari/region_vcf_iter.py @@ -103,7 +103,7 @@ def build_anno_tree(filename, chrom_col=0, start_col=1, end_col=2, one_based=Fal """ idx = 0 correction = 1 if one_based else 0 - tree = defaultdict(IntervalTree) + ttree = defaultdict(list) for line in truvari.opt_gz_open(filename): if line.startswith(comment): continue @@ -115,8 +115,11 @@ def build_anno_tree(filename, chrom_col=0, start_col=1, end_col=2, one_based=Fal m_idx = idxfmt.format(idx) else: m_idx = idx - tree[chrom].addi(start, end + 1, data=m_idx) + ttree[chrom].append((start, end + 1, m_idx)) idx += 1 + tree = {} + for chrom in ttree: + tree[chrom] = IntervalTree.from_tuples(ttree[chrom]) return tree, idx