Package: pylibseq
This package providesPythonbindings for the C++11 librarylibsequence.The bindings are implemented usingpybind11.This package serves two roles:It provides a means of using some of the more widely-used bits oflibsequencewithin the Python languageThe unit tests of this package also serve as unit tests forlibsequence.What this package doesnot(currently) do:provide an interface for I/O operations.  Python I/O and C++ I/O are fundamentally very different.  Bridging the gap requires either adding features to pybind11 and/or adding modules to this package that depend on theboostPython interface, which would add an additional C++ dependency to this package.Build statusMaster branch:Development branch:CitationIf you use this software for your research, please cite:@ARTICLE{Thornton2003-wj,
  title    = "Libsequence: a C++ class library for evolutionary genetic
              analysis",
  author   = "Thornton, Kevin",
  abstract = "UNLABELLED: A C++ class library is available to facilitate the
              implementation of software for genomics and sequence polymorphism
              analysis. The library implements methods for data manipulation
              and the calculation of several statistics commonly used to
              analyze SNP data. The object-oriented design of the library is
              intended to be extensible, allowing users to design custom
              classes for their own needs. In addition, routines are provided
              to process samples generated by a widely used coalescent
              simulation. AVAILABILITY: The source code (in C++) is available
              from http://www.molpopgen.org",
  journal  = "Bioinformatics",
  volume   =  19,
  number   =  17,
  pages    = "2325--2327",
  month    =  nov,
  year     =  2003,
  url      = "https://www.ncbi.nlm.nih.gov/pubmed/14630667",
  language = "en",
  issn     = "1367-4803",
  pmid     = "14630667",
  doi      = "10.1093/bioinformatics/btg316"
}Requirements:Python 3cmakeAn up-to-date C++ compiler that is C++11 compatible via the flag -std=c++11.  Roughly, this means GCC >= 4.8 and clang >= 3.5.NoteAs of version 0.2.2, libsequence is included as a git submodule compiled
directly into the Python package.If you installing from GitHub, thenpybind11is a dependency.  Further,
pybind11 must not be installed from a source like PyPi. Rather, it must be
installed either from source or via your favorite package manager.  The
reason is that we use their cmake macros during the build process.Changelog (rough)0.2.0: The package has been completely refactored.  We now usepybind11to integrate C++ and Python.  Previous
versions of this project usedCython.  The API now corrresponds tolibsequence1.9.2.Python>= 3.4 is required.0.1.9: Made memory management more robust: more unique_ptr instead of raw pointers.  Cleanup __dealloc__ functions in extension types.  Package now sets __version__.  Class names are now “Pythonic” (and identical to the corresponding type names from libsequence) due to aliasing the C++ names from libsequence. Change from distutils to setuptools.  Documentation fixes.  Expose haplotype diversity and number of haplotype statistics.  First (very alpha) release of pymsstats.0.1.8: made sure C++ objects/fxns are declared “nogil”.  Raw pointers replaced with C++’s unique_ptr.0.1.7: improvements to build system.  Add option to build from GitHub.0.1.6: update to libsequence 1.8.9.  Add –use-cython option to setup.pyInstallation:For many users, the best way to install the latest release will be viabioconda,conda-cbiocondainstallpylibseqThe latest release of the package is available viaPyPi, and can be installed with your favorite Python package manager:$pipinstall--upgradepylibseqOr, you may install from GitHub:NoteThe GitHub version does not contain the .cpp files generated by pybind11.  You need to generate those!$gitclonehttp://github.com/molpopgen/pylibseq$cdpylibseq$gitsubmoduleinit$gitsubmoduleupdate$./configure$sudopipinstall.You may also install from GitHub using pip:$pipinstallgit+git://github.com/molpopgen/pylibseqUnit testing:$./configure$pythonsetup.pybuild_ext-i$python-munittestdiscovertestsDocumentation:ProjecthomepageManual