xlmhglite


Namexlmhglite JSON
Version 1.1.1 PyPI version JSON
download
home_pagehttps://github.com/GuyTeichman/xlmhglite
SummaryXL-mHG lite: A light implementation of the Semiparametric Enrichment Test
upload_time2024-06-30 10:59:09
maintainerNone
docs_urlNone
authorGuy Teichman
requires_python>=3.9
licenseGPLv3
keywords statistics nonparametric semiparametric enrichment test ranked lists
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            XL-mHG Lite
=============


**Useful links:** `Documentation <https://guyteichman.github.io/xlmhglite>`_ |
`Source code <https://github.com/GuyTeichman/xlmhglite>`_ |
`Bug reports <https://github.com/GuyTeichman/xlmhglite/issues>`_ | |pipimage| | |versionssupported| | |githubactions| | |downloads| | |license|

`xlmhg` is an efficient Python/Cython implementation of the semiparametric
`XL-mHG test`__ for enrichment in ranked lists. The XL-mHG test is an extension
of the nonparametric `mHG test`__, which was developed by `Dr. Zohar
Yakhini`__ and colleagues.

`xlmhglite` is a fork of the original `xlmhg` package (which is unfortunately no longer being maintained).
This fork was updated to support modern Python versions (Python >=3.8), fix bugs in the original implementation,
and reduce the mandatory dependencies of the project to a minimum.
To that end, the plotting functionality of `xlmhg` is not part of the core `xlmhglite` package, instead being an optional requirement.

__ xlmhg_paper_
__ mhg_paper_
__ zohar_

Installation
------------

To install the core ("lite") version of `xlmhglite`:
.. code-block:: bash

    $ pip install xlmhglite

To install the complete version of `xlmhglite` (including the plotting functionality):
.. code-block:: bash

    $ pip install xlmhglite['all']

Getting started
---------------

The `xlmhglite` package provides two functions (one simple and more more advanced)
for performing XL-mHG tests. These functions are documented in the
`User Manual`__. Here's a quick example using the "simple" test function:

.. code-block:: python

    import xlmhglite
    stat, cutoff, pval = xlmhglite.xlmhg_test(v, X, L)

Where: ``v`` is the ranked list of 0's and 1's, represented by a NumPy array of
integers, ``X`` and ``L`` are the XL-mHG parameters, and the return values have
the following meanings:

- ``stat``: The XL-mHG test statistic
- ``cutoff``: The cutoff at which XL-mHG test statistic was attained
- ``pval``: The XL-mHG p-value

__ user_manual_

XL-mHG Lite Documentation
---------------------------

Please refer to the `XL-mHG User Manual`__.

__ user_manual_

Citing XL-mHG
-------------

If you use the XL-mHG test in your research, please cite `Eden et al. (PLoS
Comput Biol, 2007)`__ and `Wagner (PLoS One, 2015)`__.

__ mhg_paper_
__ go_pca_paper_

Copyright and License
---------------------

Copyright (c) 2015-2019 Florian Wagner

::

    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:

    * Redistributions of source code must retain the above copyright notice, this
    list of conditions and the following disclaimer.

    * Redistributions in binary form must reproduce the above copyright notice,
    this list of conditions and the following disclaimer in the documentation
    and/or other materials provided with the distribution.

    * Neither the name of the copyright holder nor the names of its
    contributors may be used to endorse or promote products derived from
    this software without specific prior written permission.

    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
    SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
    CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


.. _xlmhg_paper: https://doi.org/10.7287/peerj.preprints.1962v2

.. _zohar: http://bioinfo.cs.technion.ac.il/people/zohar

.. _mhg_paper: https://dx.doi.org/10.1371/journal.pcbi.0030039

.. _go_pca_paper: https://dx.doi.org/10.1371/journal.pone.0143196

.. _user_manual: https://guyteichman.github.io/xlmhglite

.. |license| image:: https://img.shields.io/pypi/l/xlmhglite.svg
    :target: https://pypi.python.org/pypi/xlmhg
    :alt: License


.. |pipimage| image:: https://img.shields.io/pypi/v/xlmhglite.svg
    :target: https://pypi.python.org/pypi/xlmhglite
    :alt: PyPI version
.. |downloads| image:: https://pepy.tech/badge/xlmhglite
    :target: https://pepy.tech/project/xlmhglite
    :alt: Downloads
.. |versionssupported| image:: https://img.shields.io/pypi/pyversions/xlmhglite.svg
    :target: https://pypi.python.org/pypi/xlmhglite
    :alt: Python versions supported

..  |githubactions| image:: https://github.com/guyteichman/xlmhglite/actions/workflows/tests.yml/badge.svg
    :target: https://github.com/GuyTeichman/xlmhglite/actions/workflows/tests.yml
    :alt: Build status


History
=======



1.1.1 (2024-06-30)
------------------
xlmhglite now runs on numpy version 2 and above.

1.1.0 (2023-06-11)
------------------
This version improves clarity of warning messages and addresses some additional bugs.
Moreover, the project has been transitioned to use pyproject.toml and setup.cfg, and old code was cleaned up for better maintainability.

Changed
********
* Warning messages regarding failed import of the cython module were made more informative.
* Transitioned the project to use pyproject.toml and setup.cfg, and cleaned up legacy code from setup.py.

Fixed
******
* Fixed bug where calculating enrichment scores using the pure Python implementation would raise an AttributeError.
* Fixed bug where the pure Python implementation would raise an ImportError if numba is not already installed on the system.

1.0.1 (2023-06-11)
------------------
Minor patch addressing installation issues.

1.0.0 (2023-06-10)
------------------
First stable release.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/GuyTeichman/xlmhglite",
    "name": "xlmhglite",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "statistics, nonparametric, semiparametric, enrichment test, ranked lists",
    "author": "Guy Teichman",
    "author_email": "guyteichman@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/d0/45/471a45e2f685f88be80d4c2f0957e17579eca08085efe207dbd0489f2017/xlmhglite-1.1.1.tar.gz",
    "platform": null,
    "description": "XL-mHG Lite\r\n=============\r\n\r\n\r\n**Useful links:** `Documentation <https://guyteichman.github.io/xlmhglite>`_ |\r\n`Source code <https://github.com/GuyTeichman/xlmhglite>`_ |\r\n`Bug reports <https://github.com/GuyTeichman/xlmhglite/issues>`_ | |pipimage| | |versionssupported| | |githubactions| | |downloads| | |license|\r\n\r\n`xlmhg` is an efficient Python/Cython implementation of the semiparametric\r\n`XL-mHG test`__ for enrichment in ranked lists. The XL-mHG test is an extension\r\nof the nonparametric `mHG test`__, which was developed by `Dr. Zohar\r\nYakhini`__ and colleagues.\r\n\r\n`xlmhglite` is a fork of the original `xlmhg` package (which is unfortunately no longer being maintained).\r\nThis fork was updated to support modern Python versions (Python >=3.8), fix bugs in the original implementation,\r\nand reduce the mandatory dependencies of the project to a minimum.\r\nTo that end, the plotting functionality of `xlmhg` is not part of the core `xlmhglite` package, instead being an optional requirement.\r\n\r\n__ xlmhg_paper_\r\n__ mhg_paper_\r\n__ zohar_\r\n\r\nInstallation\r\n------------\r\n\r\nTo install the core (\"lite\") version of `xlmhglite`:\r\n.. code-block:: bash\r\n\r\n    $ pip install xlmhglite\r\n\r\nTo install the complete version of `xlmhglite` (including the plotting functionality):\r\n.. code-block:: bash\r\n\r\n    $ pip install xlmhglite['all']\r\n\r\nGetting started\r\n---------------\r\n\r\nThe `xlmhglite` package provides two functions (one simple and more more advanced)\r\nfor performing XL-mHG tests. These functions are documented in the\r\n`User Manual`__. Here's a quick example using the \"simple\" test function:\r\n\r\n.. code-block:: python\r\n\r\n    import xlmhglite\r\n    stat, cutoff, pval = xlmhglite.xlmhg_test(v, X, L)\r\n\r\nWhere: ``v`` is the ranked list of 0's and 1's, represented by a NumPy array of\r\nintegers, ``X`` and ``L`` are the XL-mHG parameters, and the return values have\r\nthe following meanings:\r\n\r\n- ``stat``: The XL-mHG test statistic\r\n- ``cutoff``: The cutoff at which XL-mHG test statistic was attained\r\n- ``pval``: The XL-mHG p-value\r\n\r\n__ user_manual_\r\n\r\nXL-mHG Lite Documentation\r\n---------------------------\r\n\r\nPlease refer to the `XL-mHG User Manual`__.\r\n\r\n__ user_manual_\r\n\r\nCiting XL-mHG\r\n-------------\r\n\r\nIf you use the XL-mHG test in your research, please cite `Eden et al. (PLoS\r\nComput Biol, 2007)`__ and `Wagner (PLoS One, 2015)`__.\r\n\r\n__ mhg_paper_\r\n__ go_pca_paper_\r\n\r\nCopyright and License\r\n---------------------\r\n\r\nCopyright (c) 2015-2019 Florian Wagner\r\n\r\n::\r\n\r\n    Redistribution and use in source and binary forms, with or without\r\n    modification, are permitted provided that the following conditions are met:\r\n\r\n    * Redistributions of source code must retain the above copyright notice, this\r\n    list of conditions and the following disclaimer.\r\n\r\n    * Redistributions in binary form must reproduce the above copyright notice,\r\n    this list of conditions and the following disclaimer in the documentation\r\n    and/or other materials provided with the distribution.\r\n\r\n    * Neither the name of the copyright holder nor the names of its\r\n    contributors may be used to endorse or promote products derived from\r\n    this software without specific prior written permission.\r\n\r\n    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\r\n    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r\n    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\r\n    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\r\n    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r\n    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\r\n    SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\r\n    CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\r\n    OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\r\n    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r\n\r\n\r\n.. _xlmhg_paper: https://doi.org/10.7287/peerj.preprints.1962v2\r\n\r\n.. _zohar: http://bioinfo.cs.technion.ac.il/people/zohar\r\n\r\n.. _mhg_paper: https://dx.doi.org/10.1371/journal.pcbi.0030039\r\n\r\n.. _go_pca_paper: https://dx.doi.org/10.1371/journal.pone.0143196\r\n\r\n.. _user_manual: https://guyteichman.github.io/xlmhglite\r\n\r\n.. |license| image:: https://img.shields.io/pypi/l/xlmhglite.svg\r\n    :target: https://pypi.python.org/pypi/xlmhg\r\n    :alt: License\r\n\r\n\r\n.. |pipimage| image:: https://img.shields.io/pypi/v/xlmhglite.svg\r\n    :target: https://pypi.python.org/pypi/xlmhglite\r\n    :alt: PyPI version\r\n.. |downloads| image:: https://pepy.tech/badge/xlmhglite\r\n    :target: https://pepy.tech/project/xlmhglite\r\n    :alt: Downloads\r\n.. |versionssupported| image:: https://img.shields.io/pypi/pyversions/xlmhglite.svg\r\n    :target: https://pypi.python.org/pypi/xlmhglite\r\n    :alt: Python versions supported\r\n\r\n..  |githubactions| image:: https://github.com/guyteichman/xlmhglite/actions/workflows/tests.yml/badge.svg\r\n    :target: https://github.com/GuyTeichman/xlmhglite/actions/workflows/tests.yml\r\n    :alt: Build status\r\n\r\n\r\nHistory\r\n=======\r\n\r\n\r\n\r\n1.1.1 (2024-06-30)\r\n------------------\r\nxlmhglite now runs on numpy version 2 and above.\r\n\r\n1.1.0 (2023-06-11)\r\n------------------\r\nThis version improves clarity of warning messages and addresses some additional bugs.\r\nMoreover, the project has been transitioned to use pyproject.toml and setup.cfg, and old code was cleaned up for better maintainability.\r\n\r\nChanged\r\n********\r\n* Warning messages regarding failed import of the cython module were made more informative.\r\n* Transitioned the project to use pyproject.toml and setup.cfg, and cleaned up legacy code from setup.py.\r\n\r\nFixed\r\n******\r\n* Fixed bug where calculating enrichment scores using the pure Python implementation would raise an AttributeError.\r\n* Fixed bug where the pure Python implementation would raise an ImportError if numba is not already installed on the system.\r\n\r\n1.0.1 (2023-06-11)\r\n------------------\r\nMinor patch addressing installation issues.\r\n\r\n1.0.0 (2023-06-10)\r\n------------------\r\nFirst stable release.\r\n",
    "bugtrack_url": null,
    "license": "GPLv3",
    "summary": "XL-mHG lite: A light implementation of the Semiparametric Enrichment Test",
    "version": "1.1.1",
    "project_urls": {
        "Homepage": "https://github.com/GuyTeichman/xlmhglite"
    },
    "split_keywords": [
        "statistics",
        " nonparametric",
        " semiparametric",
        " enrichment test",
        " ranked lists"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "11229d039b20c5be536178166b2df17805bbacb95181b2952ad478737aa64e55",
                "md5": "3fe207c27c200210be09411a8e98c2ae",
                "sha256": "0fc9173393d419b5459f5adef978a95d2ff101d75ed1f60ea209cd0bdd4c4c7d"
            },
            "downloads": -1,
            "filename": "xlmhglite-1.1.1-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "3fe207c27c200210be09411a8e98c2ae",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.9",
            "size": 83441,
            "upload_time": "2024-06-30T10:59:06",
            "upload_time_iso_8601": "2024-06-30T10:59:06.575381Z",
            "url": "https://files.pythonhosted.org/packages/11/22/9d039b20c5be536178166b2df17805bbacb95181b2952ad478737aa64e55/xlmhglite-1.1.1-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d045471a45e2f685f88be80d4c2f0957e17579eca08085efe207dbd0489f2017",
                "md5": "a91c7f6f755ecfce537e6cf37dfb51aa",
                "sha256": "01855fd1f6664d0ecdaa7d02c3ad9db15343192bfcd550f98ac3f8833fe74d49"
            },
            "downloads": -1,
            "filename": "xlmhglite-1.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "a91c7f6f755ecfce537e6cf37dfb51aa",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 261374,
            "upload_time": "2024-06-30T10:59:09",
            "upload_time_iso_8601": "2024-06-30T10:59:09.218353Z",
            "url": "https://files.pythonhosted.org/packages/d0/45/471a45e2f685f88be80d4c2f0957e17579eca08085efe207dbd0489f2017/xlmhglite-1.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-30 10:59:09",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "GuyTeichman",
    "github_project": "xlmhglite",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "lcname": "xlmhglite"
}
        
Elapsed time: 5.29602s