This repository has been archived by the owner on Oct 12, 2023. It is now read-only.
Releases: molpopgen/libsequence
Releases · molpopgen/libsequence
Refactoring of VariantMatrix
- Refactor VariantMatrix to manage memory via Sequence::GenotypeCapsule and Sequence::PositionCapsule
- Windows of VariantMatrix objects now do not require copies, and instead use Sequence::NonOwningGenotypeCapsule and Sequence::NonOwningPositionCapsule.
- A bug in haplotype labelling is fixed. Issue 59. Statistics like number of haplotypes, haplotype diversity, etc., were affected by this issue, but the errors were small for larger data sets.
Bug fix in l-Haf statistics. Compiles on OS X again
A bug in l-Haf from #53 was fixed. Thanks to Alex Nater for spotting that.
The library compiles on OS X again, which required that the path names for deprecated summary stats be changed.
Bug fixes and performance
- Fix GitHub issue PR50 via PR51.
- Added very efficient overload of Sequence::nsl. PR51 and PR52
- PR52 added a first implementation of Sequence::nslx, a series of back-end changes to some of the summary statistic code as well as some more testing.
- Added Sequence::lhaf. PR53
- Include Sequence/variant_matrix/msformat.hpp when installing the library.
- Fix GitHub issue 54
Improved summary stat calculation performance
New summary statistic functions! No dependencies!
Lots of deprecation.
- Refactor unit tests to be much faster to compile
- Remove dependency on htslib.
- The coalescent simulation machinery is no longer compiled or installed.
- Mark a lot of code as deprecated
- Travis CI is now Linux-only
- Add Sequence::VariantMatrix and Sequence::StateCounts
This release includes the following GitHub PRs: #11, #12, #13, #14, #15, #25, #26, #30, #31, and #32.
Refactoring nSL/iHS calculations
This release simplifies these calculations. There is no longer a function to standardize/bin results. Rather, a vector if (nSL/iHS/derived mutation count) tuples are returned.
Use standard library exceptions instead of custom exceptions
- Sequence::SeqException was removed. Exceptions from namespace std are preferred, and are easier to wrap in other languages.
- Sequence::PolySNP::ThetaL throws exception if outrgroup not present
Parallelization of several summary statistics.
- Fixed issues with Sequence::Comeron95 that made it impossible to allocate on the stack.
- Updated threaded implementation of the l-Haf statistic to use TBB.
- Weights on stop codons used in Grantham distance calculations is now configurable, and defaults to the max value of a double. Previous library versions arbitrarily used 999.0.
- PolySIM::ThetaL now correctly will not include fixed differences in the calculation.
- nSL/iHS, H1, H12, H2H1, and haplotype homozygosity statistics are now calculated in parallel.
- Sequence::Disequilibrium parallelized.
- Intel's TBB is now a dependency.
"war on mutable"
- Issue #8 fixed
- Sequence::PolyTableSlice will throw std::runtime_error if input range is not properly sorted
- War on "mutable". The use of this keyword has been removed from the library to the best extent possible.
- The API for calculations involving codons has been modernized. This includes Sequence::Comeron95, Sequence::RedundancyCom95, Sequence::WeightingScheme2 (and derived types), Sequence::WeightingScheme3 (and derived types), Sequence::TwoSubs, Sequence::ThreeSubs, functions in Sequence/PathwayHelper.hpp
- Sequence::PolyTable (and derived types) have been refactored. The fundamental idea is the same, but the API is modernized. IMO, it is still imperfect, and can be further changed to reflect more idiomatic C++11, but that'll have to wait.
- Private data members for classes have been hidden using the PIMPL idiom. This goes a long way to future-proofing the ABI compatibility of these types against further implementation changes such as bug fixes.
- Sequence/SummStats/classic.hpp provides a sneak previous of how summary statistics will work in the future, once the deprecated Sequence::PolySNP and Sequence::PolySIM can finally be removed