pylibseq

Python interface to libsequence via pybind11

https://github.com/molpopgen/pylibseq

Science Score: 33.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
    Links to: ncbi.nlm.nih.gov
  • Committers with academic emails
    1 of 1 committers (100.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.4%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Python interface to libsequence via pybind11

Basic Info
Statistics
  • Stars: 8
  • Watchers: 3
  • Forks: 2
  • Open Issues: 0
  • Releases: 0
Archived
Created over 10 years ago · Last pushed almost 7 years ago
Metadata Files
Readme License

README.rst

pylibseq: Python bindings for libsequence
***************************************************************

This package provides Python_ bindings for the C++11 library libsequence_.

The bindings are implemented using pybind11_.

This package serves two roles:

* It provides a means of using some of the more widely-used bits of libsequence_ within the Python language
* The unit tests of this package also serve as unit tests for libsequence_.

What this package does **not** (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 the boost_ Python interface, which would add an additional C++ dependency to this package.

Build status
==========================================

Master branch:

.. image:: https://travis-ci.org/molpopgen/pylibseq.svg?branch=master
   :target: https://travis-ci.org/molpopgen/pylibseq
   :alt: Travis CI Build Status (master branch)

.. image:: https://circleci.com/gh/molpopgen/pylibseq/tree/master.svg?style=svg
    :target: https://circleci.com/gh/molpopgen/pylibseq/tree/master

Development branch:

.. image:: https://travis-ci.org/molpopgen/pylibseq.svg?branch=dev
   :target: https://travis-ci.org/molpopgen/pylibseq
   :alt: Travis CI Build Status (dev branch)

.. image:: https://circleci.com/gh/molpopgen/pylibseq/tree/dev.svg?style=svg
    :target: https://circleci.com/gh/molpopgen/pylibseq/tree/dev

Citation
====================================================

If 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 3
* cmake
* An 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.

.. note:: 

   As of version 0.2.2, libsequence is included as a git submodule compiled
   directly into the Python package.

   If you installing from GitHub, then pybind11_ is 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 use pybind11_ to integrate C++ and Python.  Previous
  versions of this project used Cython_.  The API now corrresponds to libsequence_ 1.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.py

Installation:
=======================

For many users, the best way to install the latest release will be via bioconda_,

.. code-block:: bash

    conda -c bioconda install pylibseq

The latest release of the package is available via PyPi_, and can be installed with your favorite Python package manager:

.. code-block:: bash

   $ pip install --upgrade pylibseq

Or, you may install from GitHub:

.. note:: The GitHub version does not contain the .cpp files generated by pybind11.  You need to generate those!

.. code-block:: bash

   $ git clone http://github.com/molpopgen/pylibseq
   $ cd pylibseq
   $ git submodule init
   $ git submodule update

.. code-block:: bash

   $ ./configure
   $ sudo pip install . 


You may also install from GitHub using pip:

.. code-block:: bash

   $ pip install git+git://github.com/molpopgen/pylibseq 


Unit testing:
=======================

.. code-block:: bash

   $ ./configure
   $ python setup.py build_ext -i 
   $ python -m unittest discover tests

Documentation:
======================

* Project homepage_
* Manual_

.. _libsequence: http://molpopgen.github.io/libsequence/
.. _boost: http://www.boost.org/
.. _pybind11: http://pybind11.readthedocs.io/
.. _Cython: http://www.cython.org
.. _Python: http://www.python.org/
.. _Manual: http://molpopgen.github.io/pylibseq/docs/_build/html/index.html
.. _homepage: http://molpopgen.github.io/pylibseq/
.. _PyPi: https://pypi.python.org
.. _bioconda: https://bioconda.github.io

Owner

  • Name: Kevin R. Thornton
  • Login: molpopgen
  • Kind: user
  • Location: Irvine, CA
  • Company: University of California Irvine

Faculty member in Ecology & Evolutionary Biology at UC Irvine. @ThorntonLab is our group's GitHub account.

GitHub Events

Total
Last Year

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 533
  • Total Committers: 1
  • Avg Commits per committer: 533.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
molpopgen k****t@u****u 533
Committer Domains (Top 20 + Academic)
uci.edu: 1

Issues and Pull Requests

Last synced: about 1 year ago

All Time
  • Total issues: 11
  • Total pull requests: 18
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 18 days
  • Total issue authors: 9
  • Total pull request authors: 1
  • Average comments per issue: 3.55
  • Average comments per pull request: 0.06
  • Merged pull requests: 17
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • molpopgen (3)
  • oushujun (1)
  • pmorrell (1)
  • jeromekelleher (1)
  • stsmall (1)
  • agladstein (1)
  • hsiehph (1)
  • mpjuers (1)
  • vsbuffalo (1)
Pull Request Authors
  • molpopgen (18)
Top Labels
Issue Labels
CI (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 10 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 2
  • Total versions: 13
  • Total maintainers: 1
pypi.org: pylibseq

Python interface to libsequence.

  • Versions: 13
  • Dependent Packages: 0
  • Dependent Repositories: 2
  • Downloads: 10 Last month
Rankings
Dependent packages count: 10.0%
Dependent repos count: 11.6%
Stargazers count: 18.5%
Average: 22.4%
Forks count: 22.6%
Downloads: 49.5%
Maintainers (1)
Last synced: 11 months ago

Dependencies

docs/environment.yml conda
  • cmake
  • ipython
  • matplotlib
  • msprime
  • pybind11 2.2.3
  • seaborn
  • sphinx_rtd_theme 0.1.9
  • sphinxcontrib-bibtex
requirements.txt pypi
  • ipython *
  • matplotlib *
  • msprime >=0.7.1
  • pybind11 >=2.2.3
  • seaborn *
  • setuptools *
  • sphinx *
  • sphinxcontrib-bibtex *
requirements.txt.in pypi
  • ipython *
  • matplotlib *
  • msprime >=0.7.1
  • pybind11 >=
  • seaborn *
  • setuptools *
  • sphinx *
  • sphinxcontrib-bibtex *
setup.py pypi
  • pybind11 >=2.2.3