Recent Releases of msprime
msprime - 1.3.4 - Wheel bugfix release
Fixes OSX wheels on OSX-13 see #2343
- Python
Published by benjeffery about 1 year ago
msprime - Bugfix release
1.3.3
Bugfix release for issues with Dirac and Beta coalescent models.
Bug fixes:
- Fix segfault for in Dirac and Beta coalescent models for ploidy > 2 (#2307 #2308)
- Correct the Dirac coalescent time scaling with polyploidy and population growth. (#2310, @JereKoskela)
- Allow psi = 1 in the Dirac coalescent (#2310, @JereKoskela)
- Python
Published by jeromekelleher almost 2 years ago
msprime - 1.3.0
[1.3.0] - 2022-12-13
New features
Add a
MicrosatMutationModelmutation model class, that represents a generalized interface for constructing mutational models appropriate to STRs. In addition 3 specific microsat models are addedSMM,TPM, andEL2. (#2013, @andrewkern).Raise an error if
log_arg_likelihoodis called on a recombinant tree sequence that has no recombination nodes (#2123, #2124, @hyanwong)Add ability to record specific node types with the
additional_nodesflag as well as record edges for coalescing nodes along non-coalescing segments. (#2128, #2132, #2162, @GertjanBisschop)Enable
additional_nodesandcoalescing_segments_onlyflags forDTWFandFIXED_PEDIDGREEmodels (#2129, #2133, #2167, #2176, @GertjanBisschop)Support Python 3.11 (#2177, #2180, @benjeffery)
Bug fixes:
- Fix segfault in case of non-binary merger for
log_arg_likelihood(#2107, #2114, @JereKoskela)
Maintenance:
Update tskit to Python 0.5.2 (#2116, @benjeffery).
Automatically flush edges whenever an edge with a different parent is added to the edge buffer. (#2182, #2183, @GertjanBisschop)
Breaking changes:
- msprime no longer supports Python 3.7
- Python
Published by benjeffery over 2 years ago
msprime - Simulation through fixed pedigree
New features
- Add the FixedPedigree ancestry model and various infrastructure for importing pedigree information into msprime.
Bug fixes:
Fix rare assertion trip in the single sweep model caused by numerical jitter. (#1966, #2038, @jeromekelleher, @molpopgen)
Fix edge case in Demography.fromoldstyle() (#2047, #2048, @grahamgower)
Maintenance:
- Documentation improvements (#2054, #2033, #2011 @petrelharp, @gregorgorjanc)
- Python
Published by jeromekelleher about 4 years ago
msprime - Minor bugfix release
Minor bugfix release
Bug fixes:
- Fix (very) rare assertion trip caused by underlying GSL bug. (#1997, #2000, @chriscrsmith, @molpopgen, @andrewkern)
Maintenance:
- Various documentation improvements.
- Python
Published by jeromekelleher over 4 years ago
msprime - Maintenance release integrating new tskit features
[1.1.0] - 2021-12-14
New features
- Add support for tree sequence timeunits field. The timeunits will be set to “generations” for the output of simancestry (and simulate), unless the initialstate argument is used. In this case, the time_units value will be inherited from the input. (#1953, #1951, #1877, #1948, @jeromekelleher).
Bug fixes:
Raise an error if Demography.fromdemes() is passed a model with non-zero selfingrate or cloning_rate values (which msprime does not support). (#1938, #1937, @grahamgower).
Do not assume Population metadata schemas contain the properties and additionalProperties attributes (#1947, #1954, @jeromekelleher).
Read the population name from PopulationConfiguration metadata in Demography.fromoldstyle (#1950, #1954, @jeromekelleher)
Maintenance:
- Update tskit to Python 0.4.0 and C 0.99.15.
- Python
Published by jeromekelleher over 4 years ago
msprime - Minor maintenance release
New features:
Support for Demes 0.2.0, which introduces a change to how pulse sources and proportions are specified. (#1936, #1930, @apragsdale)
- Python
Published by jeromekelleher over 4 years ago
msprime - Bugfix release
[1.0.3] - 2021-11-12
This is a bugfix release recommended for all users.
New features:
- Support for running full ARG simulations with gene conversion (#1801, #1773, @JereKoskela).
- Improved performance when running many small simulations (#1909, @jeromekelleher).
- Update to tskit C API 0.99.14 (#1829).
Bug fixes:
- Fix bug in full ARG simulation with missing regions of the genome, where ARG nodes were not correctly returned. (#1893, @jeromekelleher, @hyl317)
- Fix memory leak when running sim_ancestry in a loop (#1904, #1899, @jeromekelleher, @grahamgower).
- Fix printing small values in rate maps (#1906, #1905, @petrelharp).
- Python
Published by jeromekelleher over 4 years ago
msprime - Minor feature release
Minor feature release with improved Demes support and a few small bugfixes.
New features:
- Support for Demes input and logging in the msp simulate CLI (#1716, @jeromekelleher).
- Add Demography.to_demes method for creating a Demes demographic model from an msprime demography (#1724, @grahamgower).
- Improved mapping of Demes models to Demography objects (#1758, #1757, #1756 @apragsdale).
- Improved numerical algorithms in DemographyDebugger (#1788, @grahamgower, @petrelharp).
Bugfixes:
- Raise an error if running full ARG simulations with gene conversion (#1774).
- Python
Published by jeromekelleher almost 5 years ago
msprime - Minor feature release
Minor feature release with experimental Demes support.
Change the semantics of Admixture events slightly so that ancestral populations that are inactive, are marked as active (#1662, #1657, @jeromekelleher, @apragsdale)
Initial support for Demes via the
Demography.from_demesmethod. (#1662, #1675, @jeromekelleher, @apragsdale, @grahamgower)
- Python
Published by jeromekelleher about 5 years ago
msprime - Initial stable release for 1.0 series
This is a major update recommended for all users. Please see the changelog for details.
- Python
Published by jeromekelleher about 5 years ago
msprime - 1.0.0 beta
Beta release for testing. See https://tskit.dev/msprime/docs/latest/CHANGELOG.html for notes.
- Python
Published by jeromekelleher about 5 years ago
msprime - Early alpha for testing
Sixth alpha for testing. Includes packaging updates.
- Python
Published by jeromekelleher over 5 years ago
msprime - Early alpha for testing
Fifth alpha for testing and evaluation. Includes draft of the 1.0 demography API.
- Python
Published by jeromekelleher over 5 years ago
msprime - Early alpha for testing
Alpha 3 release.
- Python
Published by jeromekelleher over 5 years ago
msprime - Early alpha for testing
Second alpha; updates to release artifacts.
- Python
Published by jeromekelleher over 5 years ago
msprime - Early alpha for testing
Early release of the new 1.0 APIs for developers and experience users. This is not stable and the APIs may still change.
See https://tskit-dev.github.io/msprime-docs/main/quickstart.html#upgrading-from-0-x for more information.
- Python
Published by jeromekelleher over 5 years ago
msprime - Dummy release to update docs
This is a dummy release to allow us to update the "stable" docs branch on readthedocs. This is to correct an error in the version of the Out of Africa model described in the tutorial. See here for full details.
- Python
Published by jeromekelleher about 6 years ago
msprime - Bugfix and feature release
This release fixes an important bug in the legacy ms compatible interface and is therefore strongly recommended of all mspms users.
Bug fixes:
- Fix error in mspms output of tree spans. In previous versions, the length of genome spanned by trees in the newick output was incorrect in certain situations (specifically, when “invisible” recombinations are present so that two or more identical trees are printed out). Thanks to @fbaumdicker for spotting the problem. (@jeromekelleher, #837, #836)
- Fix assertion tripped when we have very low recombination rates in the DTWF model. Thanks to @terhorst for the bug report. (@jeromekelleher, #833, #831).
- Fix bug in memory allocation when simulating mutations on a tree sequence that already contains many mutations. Thanks to @santaci for the bug report. (@jeromekelleher, @petrelharp, #838, #806)
New features:
- Add the new Census event, which allows us to place nodes on all extant branches at a given time (@gtsambos #799).
- Improved error reporting for input parameters, in particular demographic events (#829).
Documentation:
- Improved container documentation (@agladstein, #822, #809).
- Improved developer docs for macs (@gtsambos, @molpopgen, #805).
- Clarify meaning of migration matrix (@petrelharp, #830).
- Python
Published by jeromekelleher over 6 years ago
msprime - Bugfix release
Bug fixes:
- Support for SMC models coupled with the recordfullarg feature was erroneously removed in a previous version (:issue:
795). The feature has been resinstated (:pr:796).
- Python
Published by jeromekelleher almost 7 years ago
msprime - Bugfix release
Minor release fixing a very rare bug and with some new features.
Breaking changes
- The random trajectory has been changed slightly to improve handling of ancient sampling events (:pr:
782). Thus, simulations for a given random seed will not be identical to previous versions, if ancient samples are used.
New features
- Automated Docker builds (:user:
agladstein; :pr:661) - Add mean coalescence time to DemographyDebugger (:user:
petrelharp; :pr:779). - Improve MassMigration descriptions in DemographyDebugger (:user:
marianne-aspbury; :pr:791).
Bug fixes:
- In very, very, very rare cases it was possible to generate a zero waiting time until the next coalescent event, leading to zero branch lengths in the output tree sequence and an error being raised (:user:
molpopgen, :user:DL42, :user:jeromekelleher; :issue:783, :pr:785).
- Python
Published by jeromekelleher almost 7 years ago
msprime - DTWF model and population size ground-truth
New features
- Discrete Time Wright-Fisher simulation model (:user:
DomNelson). - SMC/SMC' simulation models (:user:
jeromekelleher). - Mixed simulation models (:user:
jeromekelleher). - Specify
end_timeto allow early-finish for simulations (:user:jeromekelleher). - Calculation of historical coalescence rates in the DemographyDebugger (:user:
jgallowa07, :user:petrelharp). - Additional information on population sizes in DemographyDebugger (:user:
andrewkern). - Remove support for Python 2 (:user:
hugovk). - Allow specifying metadata for populations (:user:
jeromekelleher).
Bug fixes:
- Various minor bug and doc fixes from :user:
hyanwong, :user:petrelharp, :user:brianzhang01, :user:mufernandoand :user:andrewkern.
- Python
Published by jeromekelleher almost 7 years ago
msprime - Beta release supporting DTWF model
Early release to make the DTWF model available for testing.
- Python
Published by jeromekelleher about 7 years ago
msprime - Remove tskit from msprime
Separation of tskit from msprime. Msprime is now solely dedicated to simulating the coalescent, and all infrastucture for working with succinct tree sequences is now provided by tskit. To ensure compatability, msprime now imports code from tskit under the old names, which should ensure that all code continues to work without changes.
New features
- Ability to record the full ARG (Jere Koskela; #665)
Bug fixes:
- Fix deprecation warning (#695).
- Python
Published by jeromekelleher over 7 years ago
msprime - Testing release
Alpha release for testing the tskit/msprime split.
- Python
Published by jeromekelleher over 7 years ago
msprime - Bugfix release
Minor bugfix release.
New features: - Add provenance recording option to simplify (#601) - Minor performance improvement (#598)
Bug fixes:
- Fix performance regression in replication (#608)
- Python
Published by jeromekelleher over 7 years ago
msprime - Support for completing forwards-time simulations
Significant features for integration with forwards-time simulators plus improvements and bugfixes.
Breaking changes:
Change in the semantics of how populations are treated by simplify. By default, populations that are not referenced will now be removed from the data model. This can be avoided by setting
filter_populations=False.Simplify now raises an error if called on a set of tables that contain one or more migrations.
New features:
The simulate() function now supports a
from_tsargument allowing msprime to complete the ancestry in tree sequences generated by forward simulations (#503, #541, #572, #581).Add starttime and endtime parameters to the
mutatefunction (#508).Add
reduce_to_site_topologyargument to simplify. This allows us to find the minimal tree sequence that would be visible from a given set of sites, and is also a useful compression method if we are only interested in the observed sequences. (#545, #307).Simplify generalised to support individuals, and the
filter_populations,filter_individualsandfilter_sitesparameters added to allow filtering of unreferenced objects from the data model. (#567).Default random seeds are now generated from a sequence initialised by a system source of randomness (#534). Random seeds should also be safely generated across multiple processes.
Full text I/0 support for Individuals and Populations (#498, #555)
Substantially improved performance in
msprime.loadfor large tables and significant refactoring of C code (#559, #567, #569).Improved performance of generating genotypes (#580).
Formal schema for tree sequence provenance (#566, #583).
Many updates to documentation.
Bug fixes:
Throw a more intelligle error during simulation if a topology is produced where the time of a parent is equal to the time of the child. (#570, #87).
Pickle supported in the TableCollection object. (#574, #577).
Deprecated:
- The
filter_zero_mutation_sitesparameter for simplify has been deprecated in favour offilter_sites.
- Python
Published by jeromekelleher almost 8 years ago
msprime - Forward simulation interoperability release
This release is focused on ensuring interoperability with the forthcoming SLiM 3.0 release, which has support for outputting tree sequences in msprime's .trees format. The release represents a substantial step towards the goal of separating the tskit code from msprime. It removes the troublesome HDF5 dependency in favour of the much simpler kastore library.
The principle new features are the mutate() function which allows us to easily add mutations to any tree sequence, preliminary support for Individuals and Populations within the data model, and the addition of the new TableCollection object as the central structure in the Tables API.
Breaking changes:
- Files stored in the HDF5 format will need to upgraded using the
msp upgradecommand.
New features:
The mutate function (#507).
Removed HDF5 library dependency. Now use the embedded kastore library for storing data.
Numpy and h5py are now install time dependencies, solving some installation headaches.
The new TableCollection type gives much tighter integration with the low-level library. Functions like sorttables and simplifytables are now methods of this class. The loadtables function has been replaced by TableCollection.treesequence. These functions still work, but are deprecated.
Preliminary support for Individual and Population types in the Tables API and for TreeSequences.
Add 'root' argument to SparseTree.newick and support for arbitrary node labels (#510).
Larger numbers of alleles now supported via 16-bit genotypes (#466).
Substantially improved simplify performance when there is a large number of sites (#453).
Bug fixes:
Fix bug in tree drawing with many roots (#486)
Fix segfault in accessing trees with zero roots (#515)
Fix bug where DemographyDebugger was modifying the input sample sizes (#407)
Deprecated:
sort_tables is deprecated in favour of TableCollection.sort().
simplify_tables is deprecated in favour of TableCollection.simplify().
loadtables is deprecated in favour of TableCollection.treesequence().
- Python
Published by jeromekelleher almost 8 years ago
msprime - Bugfix release
This release fixes some OSX bugs in 0.6.0b1.
- Python
Published by jeromekelleher almost 8 years ago
msprime - Preview of kastore and extra tables
This is preview release of the following major changes:
- Remove HDF5 and use kastore for tree sequence files
- Add Individual and Population types
- The mutate() function.
- Python
Published by jeromekelleher almost 8 years ago
msprime - Major feature release
This is a major update to the underlying data structures in msprime to generalise the information that can be modelled, and allow for data from external sources to be efficiently processed. The new Tables API enables efficient interchange of tree sequence data using numpy arrays. Many updates have also been made to the tree sequence API to make it more Pythonic and general. Most changes are backwards compatible, however.
Breaking changes:
The
SparseTree.mutations()andTreeSequence.mutations()iterators no longer support tuple-like access to values. For example, code likefor x, u, j in ts.mutations(): print("mutation at position", x, "node = ", u)will no longer work. Code using the oldMutation.positionandMutation.indexwill still work through deprecated aliases, but new code should access these values throughSite.positionandSite.id, respectively.The
TreeSequence.diffs()method no longer works. Please use theTreeSequence.edge_diffs()method instead.TreeSequence.get_num_records()no longer works. Any code using this or therecords()iterator should be rewritten to work with theedges()iterator and num_edges instead.Files stored in the HDF5 format will need to upgraded using the
msp upgradecommand.
New features:
The API has been made more Pythonic by replacing (e.g.)
tree.get_parent(u)withtree.parent(u), andtree.get_total_branch_length()withtree.total_branch_length. The old forms have been maintained as deprecated aliases. (#64)Efficient interchange of tree sequence data using the new Tables API. This consists of classes representing the various tables (e.g.
NodeTable) and some utility functions (such asload_tables,sort_tables, etc).Support for a much more general class of tree sequence topologies. For example, trees with multiple roots are fully supported.
Substantially generalised mutation model. Mutations now occur at specific sites, which can be associated with zero to many mutations. Each site has an ancestral state (any character string) and each mutation a derived state (any character string).
Substantially updated documentation to rigorously define the underlying data model and requirements for imported data.
The
variants()method now returns a list of alleles for each site, and genotypes are indexes into this array. This is both consistent with existing usage and works with the newly generalised mutation model, which allows arbitrary strings of characters as mutational states.Add the formal concept of a sample, and distinguished from 'leaves'. Change
tracked_leaves, etc. totracked_samples(#225). Also renamesample_sizetonum_samplesfor consistency (#227).The simplify() method returns subsets of a large tree sequence.
TreeSequence.first() returns the first tree in sequence.
Windows support. Msprime is now routinely tested on Windows as part of the suite of continuous integration tests.
Newick output is not supported for more general trees. (#117)
The
genotype_matrixmethod allows efficient access to the full genotype matrix. (#306)The variants iterator no longer uses a single buffer for genotype data, removing a common source of error (#253).
Unicode and ASCII output formats for
SparseTree.draw().SparseTree.draw()renders tree in the more conventional 'square shoulders' format.SparseTree.draw()by default returns an SVG string, so it can be easily displayed in a Jupyter notebook. (#204)Preliminary support for a broad class of site-based statistics, including Patterson's f-statistics, has been added, through the
SiteStatCalculator, and its branch length analog,BranchLengthStatCalculator. The interface is still in development, and is expected may change.
Bug fixes:
Duplicate site no longer possible (#159)
Fix for incorrect population sizes in DemographyDebugger (#66).
Deprecated:
The
recordsiterator has been deprecated, and the underlying data model has moved away from the concept of coalescence records. The structure of a tree sequence is now defined in terms of a set of nodes and edges, essentially a normlised version of coalescence records.Changed
population_idtopopulationin various DemographicEvent classes for consistency. The oldpopulation_idargument is kept as a deprecated alias.Changed
destinationtodestin MassMigrationEvent. The olddestinationargument is retained as a deprecated alias.Changed
sample_sizetonum_samplesin TreeSequence and SparseTree. The older versions are retained as deprecated aliases.Change
get_num_leavestonum_samplesin SparseTree. Theget_num_leavesmethod (and other related methods) that have been retained for backwards compatability are semantically incorrect, in that they now return the number of samples. This should have no effect on existing code, since samples and leaves were synonymous. New code should use the documentednum_samplesform.Accessing the
positionattribute on aMutationorVariantobject is now deprecated, as this is a property of aSite.Accessing the
indexattribute on aMutationorVariantobject is now deprecated. Please usevariant.site.idinstead. In general, objects with IDs (i.e., derived from tables) now have anidfield.Various
get_methods in TreeSequence and SparseTree have been replaced by more Pythonic alternatives.
- Python
Published by jeromekelleher over 8 years ago
msprime - Updated APIs preview release
This release completes the documentation and API changes for the 0.5.0 series, and is a pre-release for testing purposes.
- Python
Published by jeromekelleher over 8 years ago
msprime - Interchange API preview release
This is a pre-release for version 0.5.0, which is a major update to the msprime API. This beta release is intended as a preview for the new tree sequence interchange APIs, and also a means for existing users to test their code.
Large changes have been made under the hood in to enable us to handle external input and much more general tree sequences. There have also been many updates to the existing API, which will be listed in the final release. There should be no breaking changes to existing code, except for one case.
The set_mutations method is no longer supported, but is replaced by the much more powerful and general tables API. Please see the tutorial for an example of how to use this new API
- Python
Published by jeromekelleher over 8 years ago
msprime - Major feature release
Major release providing new functionality and laying groundwork for upcoming functionality.
Breaking changes:
- The HDF5 file format has been changed to allow for non-binary trees
and to improve performance. It is now both smaller and faster to
load. However, msprime cannot directly load tree sequence files
written by older versions. The msp upgrade utility has been
developed to provide an upgrade path for existing users, so that
files written by older versions of msprime can be converted to the
newer format and read by version 0.4.x of msprime.
- The tuples returned by the mutations method contains an element.
This will break code doing things like
for pos, node in ts.mutations():
print(pos, node)
For better forward compatibility, code should use named attributes rather than positional access:
for mutation in ts.mutations():
print(mutation.position, mutation.node)
- Similarly, the undocumented variants method has some major changes:
1. The returned tuple has two new values, node and index
in the middle of the tuple (but see the point above about using
named attributes).
2. The returned genotypes are by default numpy arrays. To revert
to the old behaviour of returning Python bytes objects, use the
as_bytes argument to the variants() method.
New features:
- Historical samples. Using the samples argument to simulate
users can specify the location and time of all samples explicitly.
- HDF5 file upgrade utility msp upgrade
- Support for non-binary trees in the tree sequence, and relaxation
of the requirements on input tree sequences using the readtxt()
function.
- Integration with numpy, with zero-copy access to the low-level C API.
- Documented the variants() method that provides access to the sample
genotypes as either numpy arrays or Python bytes objects.
- New LdCalculator class that allows very fast calculation of r^2 values.
- Initial support for threading.
- The values returned mutations() method now also contain an index
attribute. This makes many operations simpler.
- New TreeSequence.gettime() method that returns the time a sample
was sampled at.
Performance improvements:
- File load times substantially reduced by pre-computing and storing
traversal indexes.
- O(1) implementation of TreeSequence.getnumtrees()
- Improved control of enabled tree features in TreeSequence.trees()
method using the leaf_lists and leaf_counts arguments.
Bug fixes: - Fixed a precision problem with DemographyDebugger. #37 - Segfault on large haplotypes. #29
- Python
Published by jeromekelleher over 9 years ago
msprime - Import and export features for tree sequence
Feature release adding new import and export features to the API
and CLI.
- New TreeSequence.write_records and TreeSequence.write_mutations
methods to serialise a tree sequence in a human readable text format.
- New msprime.load_txt() method that parses the above formats, and
allows msprime to read in data from external sources.
- New TreeSequence.write_vcf method to write mutation information
in VCF format.
- Miscellaneous documentation fixes.
- Python
Published by jeromekelleher almost 10 years ago
msprime - Feature update for Python API
Feature release adding population related methods to the API.
- New TreeSequence.get_population(sample_id) method.
- New TreeSequence.get_samples(population_id) method.
- Added the optional samples argument to the
TreeSequence.get_pairwise_diversity method.
- Fixed a potential low-level buffer overrun problem.
- Python
Published by jeromekelleher almost 10 years ago
msprime - Major update for Python API
Bugfix release affecting all users of the Python API. Version 0.2.0 contained a confusing and inconsistent mix of times and rates being expressed in both coalescent units and generations. This release changes all times and rates used when describing demographic models to generations, and also changes all population sizes to be absolute. In the interest of consistency, the units of the trees output by msprime are also changed to generations. This is a major breaking change, and will require updates to all scripts using the API.
This release also include some performance improvements and additional functionality.
Mspms users are not affected, other than benefiting from performance improvements.
Breaking changes: - Time values are now rescaled into generations when a TreeSequence is created, and so all times associated with tree nodes are measured in generations. The time values in any existing HDF5 file will now be interpreted as being in generations, so stored simulations must be rerun. To minimise the chance of this happening silently, we have incremented the file format major version number, so that attempts to read older versions will fail. - Growth rate values for the PopulationConfiguration class are now per generation, and population sizes are absolute. These were in coalescent units and relative to Ne previously. - GrowthRateChangeEvents and SizeChangeEvents have been replaced with a single class, PopulationParametersChange. This new class takes an initialsize as the absolute population size, and growthrate per generation. Since the change in units was a breaking one, potentially leading to subtle and confusing bugs, we decided that the name refactoring would at least ensure that users would need to be aware that the change had been made. This API should now be stable, and will not be changed again without an excellent reason. - MigrationRateChangeEvent has been renamed to MigrationRateChange and the migration rates are now per-generation. - MassMigrationEvent has been renamed to MassMigration, and the values of source and destination swapped, fixing the bug in issue #14. - The TreeSequence.records() method now returns an extra value, potentially breaking client code.
Improvements: - Added tutorial for demographic events. - Added DemographyDebugger class to help view the changes in populations over time. - Added population tracking for coalescent events. We can now determine the population associated with every tree node. The relevant information has been added to the HDF5 file format. - Improved performance for replication by reusing the same low-level simulator instance. This leads to significant improvements for large numbers of replicates of small simulations. Issue #8. - Changed the TreeSequence.records() method to return named tuples. - Added gettotalbranch_length method. Issue #12. - Fixed bug in reading Hapmap files. Issue #13.
- Python
Published by jeromekelleher about 10 years ago
msprime - Major update for Python API
Major update release, adding significant new functionality to the Python API and several breaking changes. All code written for the 0.1.x API will be affected, unfortunately.
Breaking changes: - Sample IDs are now zero indexed. In previous versions of msprime, the samples were numbered from 1 to n inclusive, which is not Pythonic. This change has been made to make the API more usable, but will cause issues for existing code. - There is now an Ne parameter to simulate(), and recombination, mutation and migration rates are now all per-generation. The keyword arguments have been changed to recombinationrate and mutationrate, which should mean that silent errors will be avoided. All rates in existing code will need to be divided by 4 as a result of this. This change was made to make working with recombination maps and per generation recombination rates easier. - Msprime now uses continuous values to represent coordinates, and the numloci parameter has been replaced with a new length parameter to simulate(). Internally, a discrete recombination model is still used, but by default the potential number of discrete sites is very large and effectively continuous. True discrete recombination models can still be specified by using the recombinationmap argument to simulate. - The populationmodels argument to simulate() has been removed, and replaced with the populationconfiguration and demographicevents parameters. This was necessary to provide the full demographic model. - The HDF5 file format has been updated to accommodate the continuous coordinates, along with other minor changes. As a consequence, simulation results will be somewhat larger. Stored simulations will need to be re-run and saved. - Removed the randomseed key from the provenance JSON strings. - Removed the simulate_tree() function, as it seemed to offer little extra value.
New features: - Simulation of variable recombination rates via arbitrary recombination maps. - Full support for population structure and demographic events. - API support for replication via the numreplicates argument to simulate(). - Fully reworked random generation mechanisms, so that in the nominal case a single instance of gslrng is used throughout the entire simulation session. - Addition of several miscellaneous methods to the TreeSequence API. - Added NULL_NODE constant to make tree traversals more readable.
- Python
Published by jeromekelleher about 10 years ago
msprime - Bugfix release. Fixes serious issue affecting simulations with small sample sizes with mutations.
Bugfix release. Fixes serious issue affecting simulations with small sample sizes with mutations.
https://github.com/jeromekelleher/msprime/issues/7
All users of mspms should update immediately and any analyses using a small sample size (< 10) with mutations should be repeated.
Many thanks to Konrad Lohse for identifying the issue.
- Python
Published by jeromekelleher about 10 years ago
msprime - Bugfix release. Fixes serious issue affecting random seeds in mspms.
Bugfix release. Fixes serious issue affecting random seeds in mspms.
https://github.com/jeromekelleher/msprime/issues/6
All users of mspms should update immediately and any analyses using
the -seeds option in mspms should be repeated.
Many thanks to Derek Setter for identifying the issue.
- Python
Published by jeromekelleher about 10 years ago
msprime - Initial support for population structure in mspms
Transitional release providing population structure support for the ms-compatible command line interface. A considerable amount of low-level plumbing was required to provide the required flexibility. This is currently not visible from the high-level API, but will shortly be made available in the forthcoming 0.2.x series.
The current implementation of migration should work well for small numbers of populations (e.g. < 10), but will not scale well for large numbers of populations.
+++++++
Changes
+++++++
- Added the -I, -m, -ma, -em, -eM, -ema, -eG, -eg, -eN, -en,
-ej and -es options to mspms. These should provide full ms
compatability, except for the -es option which is currently
limited in scope.
- Added some extra keys to the low-level configuration JSON in
the HDF5 file format to describe the population structure.
This will be documented in a future release.
- Added a get_pairwise_diversity method to the TreeSequence
class to efficiently calculate the population genetics
statistic pi.
- Python
Published by jeromekelleher over 10 years ago
msprime - Performance tweaks and bugfixes
Minor bugfix release:
- Performance improvements in simulation
- Changed default for max_memory parameter to unlimited
- Minor packaging changes.
- Python
Published by jeromekelleher over 10 years ago
msprime - Performance and bugfix release
- Updated simulation algorithm; ~20% faster for large simulations.
- Added proper SIGPIPE handling in msp
- Added precision argument for msp newick
- Fixed bug in mspms where the positions of mutations were incorrect.
- Python
Published by jeromekelleher over 10 years ago
msprime - Bugfix from 0.1.6a2
Fixes error in mspms's mutation position output.
- Python
Published by jeromekelleher over 10 years ago
msprime - Performance update
Fix version numbering error in previous alpha.
- Python
Published by jeromekelleher over 10 years ago
msprime - Performance update
This release tweaks the underlying simulation algorithm, and leads to ~20% performance improvements on large simulations.
- Python
Published by jeromekelleher over 10 years ago
msprime - Improved installation and performance
Changes from previous version: - Installation instructions for Mac on Homebrew - Improved documentations, removing TODO items. - Added initial version of msp command line utility - Added low-level LeafListIterator, improves performance of leaves() method. - Improved performance of haplotype generation.
- Python
Published by jeromekelleher over 10 years ago
msprime - Minor bugfixes
Minor bugfix for CLI over 0.1.5a1.
- Python
Published by jeromekelleher over 10 years ago
msprime - Improved installation and performance
Changes from previous version: - Installation instructions for Mac on Homebrew - Improved documentations, removing TODO items. - Added initial version of msp command line utility - Added low-level LeafListIterator, improves performance of leaves() method. - Improved performance of haplotype generation.
This is a pre-release to allow testing of installation on various platforms.
- Python
Published by jeromekelleher over 10 years ago
msprime - Bugfix release
- Fixes a bug in which dump did not work after an explicit call to set_mutations.
- Adds a get_index function to the SparseTree class that gives the index of the tree within the sequence.
- Python
Published by jeromekelleher over 10 years ago
msprime - Updated leaf counting
This release adds support for counting a specific subset of the leaves in a tree.
Changes: - Minor change to the signature for TreeSequence.trees(), which now takes an optional list of tracked leaves. - Added the SparseTree.getnumtracked_leaves() method to count the number of these leaves in the subtree rooted at a given node.
- Python
Published by jeromekelleher almost 11 years ago
msprime - Initial stable API release
This is the initial release of the API. Any documented APIs will try to remain stable from this point, and will go through a process of deprecation before change.
Differences from 0.1.2a2:
- Renamed the sparse_trees method to trees.
- Changed the ordering of records_out in the diffs iterator.
- Added documentation for more features in the TreeSequence class.
- Added set_mutations to allow user defined mutations.
- Added get_num_leaves and options to enable constant time implementation.
- Python
Published by jeromekelleher almost 11 years ago
msprime - Initial version of Python API.
This is a minor update to 0.1.2a1 fixing missing files and version number problems.
- Python
Published by jeromekelleher almost 11 years ago
msprime - Initial version of Python API.
This is the initial version of the Python API with draft documentation. This should be considered alpha status, and many details of how the API works may change before it is stabilised.
- Python
Published by jeromekelleher almost 11 years ago
msprime - Initial release
This is the initial release of msprime. The ms-compatible command line interface is ready for use and supports: - newick tree and haplotype output - recombination - exponentially expanding/contracting populations - past demographic events via the -eG and -eN options
The Python API and tree storage format are not yet finalised or documented.
- Python
Published by jeromekelleher almost 11 years ago
msprime - Final alpha for testing
This is a minor update for distribution testing.
- Python
Published by jeromekelleher almost 11 years ago
msprime - Early alpha release for testing and feedback
This release is a minor update over 0.1.1a1, addressing PyPI issues and various minor portability problems.
- Python
Published by jeromekelleher about 11 years ago
msprime - Alpha release for testing
This is an early alpha release for testing. Major incompatibilities exist with previous versions.
- Python
Published by jeromekelleher about 11 years ago
msprime - Initial release for testing.
This is a very early alpha release for testing.
- Python
Published by jeromekelleher about 11 years ago