Python 0.5.2
Fixes
-
Iterating over
ts.variants()
could cause a segfault in tree sequences
with large numbers of alleles or very long alleles
(@jeromekelleher, #2437, #2429). -
Various circular references fixed, lowering peak memory usage
(@jeromekelleher, #2424, #2423, #2427). -
Fix bugs in VCF output when there isn't a 1-1 mapping between individuals
and sample nodes (@jeromekelleher, #2442, #2257,
#2446, #2448).
Performance improvements
-
TreeSequence.site position search performance greatly improved, with much lower
memory overhead (@jeromekelleher, #2424). -
TreeSequence.samples time/population search performance greatly improved, with
much lower memory overhead (@jeromekelleher, #2424, #1916). -
The
timeasc
andtimedesc
orders forTree.nodes
have much
improved performance and lower memory overhead
(@jeromekelleher, #2424, #2423).
Features
-
Variant objects now have a
.num_missing
attribute and.counts()
and
.frequencies
methods (@hyanwong, #2390 #2393). -
Add the
Tree.num_lineages(t)
method to return the number of lineages present
at time t in the tree (@jeromekelleher, #386, #2422) -
Efficient array access to table data now provided via attributes like
TreeSequence.nodes_time
, etc (@jeromekelleher, #2424).
Breaking Changes
- Previously, accessing (e.g.)
tables.edges
returned a different instance of
EdgeTable each time. This has been changed to return the same instance
for the lifetime of a given TableCollection instance. This is technically
a breaking change, although it's difficult to see how code would depend
on the property that (e.g.)tables.edges is not tables.edges
.
(@jeromekelleher, #2441, #2080).