Releases: tskit-dev/tskit
Python 0.3.7
Minor release
Features
map_mutations
now allows the ancestral state to be specified
(@hyanwong, @jeromekelleher, #1542, #1550)
Fixes
- Fix segfault when very large columns overflow
(@bhaller, @benjeffery, #1509, #1511).
C API 0.99.13
Bugfix release
Fixes
- Fix segfault when very large columns overflow
(@bhaller, @benjeffery, #1509, #1511).
Python 0.3.6
Minor feature release
Notebook detailing the new features here: https://gist.github.com/benjeffery/aff619fd8da6799bccab81655c391965
Breaking changes
Mutation.position
andMutation.index
which were deprecated in 0.2.2 (Sep '19) have
been removed.
Features
-
Add direct, copy-free access to the arrays representing the quintuply-linked structure
ofTree
(e.g.left_child_array
). Allows performant algorithms over the tree
structure using, for example, numba
(@jeromekelleher, #1299, #1320). -
Add fancy indexing to tables. E.g.
table[6:86]
returns a new table with the
specified rows. Supports slices, index arrays and boolean masks
(@benjeffery, #1221, #1348, #1342). -
Add
Table.append
method for adding rows from classes such asSiteTableRow
and
Site
(@benjeffery, #1111, #1254). -
SVG visualization of a tree sequence can be restricted to displaying between left
and right genomic coordinates using thex_lim
parameter. The default settings
now mean that if the left or right flanks of a tree sequence are entirely empty,
these regions will not be plotted in the SVG (@hyanwong, #1288). -
SVG visualization of a single tree allows all mutations on an edge to be plotted
via theall_edge_mutations
param (@hyanwong,#1253, #1258). -
Entity classes such as
Mutation
,Node
are now python dataclasses
(@benjeffery, #1261). -
Metadata decoding for table row access is now lazy (@benjeffery, #1261).
-
Add html notebook representation for
Tree
and changeTree.__str__
from dict
representation to info table. (@benjeffery, #1269, #1304). -
Improve display of tables when
print
ed, limiting lines set via
tskit.set_print_options
(@benjeffery,#1270, #1300). -
Add
Table.assert_equals
andTableCollection.assert_equals
which give an exact
report of any differences. (@benjeffery,#1076, #1328)
Changes
- In drawing methods
max_tree_height
andtree_height_scale
have been deprecated
in favour ofmax_time
andtime_scale
(@benjeffery,#1262, #1331).
Fixes
- Tree sequences were not properly init'd after unpickling
(@benjeffery, #1297, #1298)
C API 0.99.12
Minor feature release
Breaking changes
- Removed
TSK_NO_BUILD_INDEXES
.
Not building indexes is now the default behaviour oftsk_table_collection_dump
and related functions.
(@molpopgen, #1327, #1337).
Features
- Add
tsk_*_table_extend
methods to append to a table from another
(@benjeffery, #1271, #1287)
Python 0.3.5
Breaking changes
- tskit now requires Python 3.7 (@benjeffery, #1235)
Features
-
SVG visualization plots mutations at the correct time, if it exists, and a y-axis,
with label can be drawn. Both x- and y-axes can be plotted on trees as well as
tree sequences (@hyanwong,#840, #580, #1236) -
SVG visualization now uses squares for sample nodes and red crosses for mutations,
with the site/mutation positions marked on the x-axis. Additionally, an x-axis
label can be set (@hyanwong,#1155, #1194, #1182, #1213) -
Add
parents
column to the individual table to allow recording of pedigrees
(@ivan-krukov, @benjeffery, #852, #1125, #866, #1153, #1177, #1192 #1199). -
Added
Tree.generate_random_binary
static method to create random
binary trees (@hyanwong, @jeromekelleher, #1037). -
Change the default behaviour of Tree.split_polytomies to generate
the shortest possible branch lengths instead of a fixed epsilon of
1e-10. (@jeromekelleher, #1089, #1090) -
Default value metadata in
add_row
functions is now schema-dependant, so that
metadata={}
is no longer needed as an argument when a schema is present
(@benjeffery, #1084). -
default
in metadata schemas is used to fill in missing values when encoding for
the struct codec. (@benjeffery, #1073, #1116). -
Added
canonical
option to table collection sorting (@mufernando,
@petrelharp, #705) -
Added various arguments to
TreeSequence.subset
, to allow for stable
population indexing and lossless node reordering with subset.
(@petrelharp, #1097)
Changes
-
Allow mutations that have the same derived state as their parent mutation.
(@benjeffery, #1180, #1233) -
File minor version change to support individual parents
C API 0.99.11
Features
-
Add
parents
to the individual table to enable recording of pedigrees
(@ivan-krukov, @benjeffery, #852, #1125, #866, #1153, #1177, #1199). -
Added a
tsk_table_collection_canonicalse
method, that allows checking for equality between
tables that are equivalent up to reordering (@petrelharp, @mufernando, #1108). -
Removed a previous requirement on
tsk_table_collection_union
, allowing for unioning of
new information both above and below shared history (@petrelharp, @mufernando, #1108). -
Support migrations in tsk_table_collection_sort. (@jeromekelleher,
#22, #117, #1131).
Breaking changes
-
Method
tsk_individual_table_add_row
has an extra argumentsparents
andparents_length
. -
Add an
options
argument totsk_table_collection_subset
(@petrelharp, #1108),
to allow for retaining the order of populations. -
Mutation error codes have changed
Changes
-
Allow mutations that have the same derived state as their parent mutation.
(@benjeffery, #1180, #1233) -
File minor version change to support individual parents
C API 0.99.10
Minor change to internal APIs
C API 0.99.9
Python 0.3.4
Minor bugfix release.
Bugfixes
- Reinstate the unused zlib_compression option to tskit.dump, as msprime < 1.0 still uses it (@jeromekelleher, #1067).
Python 0.3.3
Minor feature release
Features
-
Add
TreeSequence.genetic_relatedness
for calculating genetic relatedness between
pairs of sets of nodes (@brieuclehmann, #1021, #1023, #974, #973, #898). -
Expose
TreeSequence.coiterate()
method to allow iteration over 2 sequences
simultaneously, aiding comparison of trees from two sequences
(@jeromekelleher, @hyanwong, #1021, #1022). -
tskit is now supported on, and has wheels for, python3.9
(@benjeffery, #982, #907). -
Tree.newick()
now has extra optioninclude_branch_lengths
to allow branch
lengths to be omitted (@hyanwong, #931). -
Added
Tree.generate_star
static method to create star-topologies (@hyanwong,
#934). -
Added
Tree.generate_comb
andTree.generate_balanced
methods to create
example trees. (@jeromekelleher, #1026). -
Added
equals
method to TreeSequence, TableCollection and each of the tables which
provides more flexible equality comparisons, for example, allowing
users to ignore metadata or provenance in the comparison
(@mufernando, @jeromekelleher, #896, #897,
#913, #917). -
Added
__eq__
to TreeSequence
(@benjeffery, #1011, #1020). -
ts.dump
andtskit.load
now support reading and writing file objects such as
FIFOs and sockets (@benjeffery, #657, #909). -
Added
tskit.write_ms
for writing to MS format
(@saurabhbelsare, #727, #854). -
Added
TableCollection.indexes
for access to the edge insertion/removal order indexes
(@benjeffery, #4, #916). -
The dictionary representation of a TableCollection now contains its index
(@benjeffery, #870, #921). -
Added
TreeSequence._repr_html_
for use in jupyter notebooks
(@benjeffery, #872, #923). -
Added
TreeSequence.__str__
to display a summary for terminal usage
(@benjeffery, #938, #985). -
Added
TableCollection.dump
andTableCollection.load
. This allows table
collections that are not valid tree sequences to be manipulated
(@benjeffery, #14, #986). -
Added
nbytes
method to tables,TableCollection
andTreeSequence
which
reports the size in bytes of those objects
(@jeromekelleher, @benjeffery, #54, #871). -
Added
TableCollection.clear
to clear data table rows and optionally
provenances, table schemas and tree-sequence level metadata and schema
(@benjeffery, #929, #1001).
Bugfixes
-
LightWeightTableCollection.asdict
andTableCollection.asdict
now return copies
of arrays (@benjeffery, #1025, #1029). -
The
map_mutations
method previously used the Fitch parsimony method, but this
does not produce parsimonious results on non-binary trees. We now now use the
Hartigan parsimony algorithm, which does (@jeromekelleher,
#987, #1030). -
The
flag
argument to tables'add_row
was treating the value as signed
(@benjeffery, #1027, #1031).
Breaking changes
- The argument to
ts.dump
andtskit.load
has been renamedfile
frompath
. - All arguments to
Tree.newick()
except precision are now keyword-only. - Renamed
ts.trait_regression
tots.trait_linear_model
.