{"id":37619832,"url":"https://github.com/flo-compbio/xlmhg","last_synced_at":"2026-01-16T10:37:10.944Z","repository":{"id":31601225,"uuid":"35166103","full_name":"flo-compbio/xlmhg","owner":"flo-compbio","description":"XL-mHG: A Semiparametric Test for Enrichment in Ranked Lists.","archived":false,"fork":false,"pushed_at":"2023-01-19T02:24:39.000Z","size":403,"stargazers_count":13,"open_issues_count":7,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-11-28T23:29:28.480Z","etag":null,"topics":["enrichment","expression","python","statistics"],"latest_commit_sha":null,"homepage":"https://doi.org/10.7287/peerj.preprints.1962","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flo-compbio.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-05-06T15:13:31.000Z","updated_at":"2025-09-25T08:27:42.000Z","dependencies_parsed_at":"2023-02-10T19:40:14.519Z","dependency_job_id":null,"html_url":"https://github.com/flo-compbio/xlmhg","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/flo-compbio/xlmhg","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flo-compbio%2Fxlmhg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flo-compbio%2Fxlmhg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flo-compbio%2Fxlmhg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flo-compbio%2Fxlmhg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flo-compbio","download_url":"https://codeload.github.com/flo-compbio/xlmhg/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flo-compbio%2Fxlmhg/sbom","scorecard":{"id":403484,"data":{"date":"2025-08-11","repo":{"name":"github.com/flo-compbio/xlmhg","commit":"c29d913386443396254774b8cff5cff2b5731323"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":1.7,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":0,"reason":"10 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2018-34 / GHSA-2fc2-6r4j-p65h","Warn: Project is vulnerable to: PYSEC-2021-856 / GHSA-5545-2q6w-2gh6","Warn: Project is vulnerable to: PYSEC-2019-108 / GHSA-9fq2-x9r6-wfmf","Warn: Project is vulnerable to: PYSEC-2018-33 / GHSA-cw6w-4rcx-xphc","Warn: Project is vulnerable to: PYSEC-2021-857 / GHSA-f7c7-j99h-c22f","Warn: Project is vulnerable to: GHSA-fpfv-jqm9-f5jm","Warn: Project is vulnerable to: PYSEC-2017-1 / GHSA-frgw-fgh6-9g52","Warn: Project is vulnerable to: PYSEC-2019-156 / GHSA-xp76-357g-9wqq","Warn: Project is vulnerable to: PYSEC-2023-102","Warn: Project is vulnerable to: PYSEC-2023-114"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-18T20:38:15.167Z","repository_id":31601225,"created_at":"2025-08-18T20:38:15.167Z","updated_at":"2025-08-18T20:38:15.167Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478050,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T06:30:42.265Z","status":"ssl_error","status_checked_at":"2026-01-16T06:30:16.248Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["enrichment","expression","python","statistics"],"created_at":"2026-01-16T10:37:10.867Z","updated_at":"2026-01-16T10:37:10.928Z","avatar_url":"https://github.com/flo-compbio.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"XL-mHG\n======\n\n| |pypi| |versions| |license|\n\n===========  ====================================================================\n**master**   |codecov-master| |travis-master| |appveyor-master| |docs-latest|\n**develop**  |codecov-develop| |travis-develop| |appveyor-develop| |docs-develop|\n===========  ====================================================================\n\nThis is an efficient Python/Cython implementation of the semiparametric\n`XL-mHG test`__ for enrichment in ranked lists. The XL-mHG test is an extension\nof the nonparametric `mHG test`__, which was developed by `Dr. Zohar\nYakhini`__ and colleagues.\n\n__ xlmhg_paper_\n__ mhg_paper_\n__ zohar_\n\nInstallation\n------------\n\n.. code-block:: bash\n\n    $ pip install xlmhg\n\nGetting started\n---------------\n\nThe `xlmhg` package provides two functions (one simple and more more advanced)\nfor performing XL-mHG tests. These functions are documented in the\n`User Manual`__. Here's a quick example using the \"simple\" test function:\n\n.. code-block:: python\n\n    import xlmhg\n    stat, cutoff, pval = xlmhg.xlmhg_test(v, X, L)\n\nWhere: ``v`` is the ranked list of 0's and 1's, represented by a NumPy array of\nintegers, ``X`` and ``L`` are the XL-mHG parameters, and the return values have\nthe following meanings:\n\n- ``stat``: The XL-mHG test statistic\n- ``cutoff``: The cutoff at which XL-mHG test statistic was attained\n- ``pval``: The XL-mHG p-value\n\n__ user_manual_\n\nDocumentation\n-------------\n\nPlease refer to the `XL-mHG User Manual`__ (hosted on ReadTheDocs).\n\n__ user_manual_\n\nCiting XL-mHG\n-------------\n\nIf you use the XL-mHG test in your research, please cite `Eden et al. (PLoS\nComput Biol, 2007)`__ and `Wagner (PLoS One, 2015)`__.\n\n__ mhg_paper_\n__ go_pca_paper_\n\nCopyright and License\n---------------------\n\nCopyright (c) 2015-2019 Florian Wagner\n\n::\n\n    Redistribution and use in source and binary forms, with or without\n    modification, are permitted provided that the following conditions are met:\n\n    * Redistributions of source code must retain the above copyright notice, this\n    list of conditions and the following disclaimer.\n\n    * Redistributions in binary form must reproduce the above copyright notice,\n    this list of conditions and the following disclaimer in the documentation\n    and/or other materials provided with the distribution.\n\n    * Neither the name of the copyright holder nor the names of its\n    contributors may be used to endorse or promote products derived from\n    this software without specific prior written permission.\n\n    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n    DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\n    FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n    DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n    SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n    CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n    OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n\n.. _xlmhg_paper: https://doi.org/10.7287/peerj.preprints.1962v2\n\n.. _zohar: http://bioinfo.cs.technion.ac.il/people/zohar\n\n.. _mhg_paper: https://dx.doi.org/10.1371/journal.pcbi.0030039\n\n.. _go_pca_paper: https://dx.doi.org/10.1371/journal.pone.0143196\n\n.. _user_manual: https://xl-mhg.readthedocs.io\n\n.. |pypi| image:: https://img.shields.io/pypi/v/xlmhg.svg\n    :target: https://pypi.python.org/pypi/xlmhg\n    :alt: PyPI version\n\n.. |versions| image:: https://img.shields.io/pypi/pyversions/xlmhg.svg\n    :target: https://pypi.python.org/pypi/xlmhg\n    :alt: Python versions supported\n\n.. |license| image:: https://img.shields.io/pypi/l/xlmhg.svg\n    :target: https://pypi.python.org/pypi/xlmhg\n    :alt: License\n\n.. |travis-master| image:: https://travis-ci.org/flo-compbio/xlmhg.svg?branch=master\n    :alt: Travis-CI build Status (master branch)\n    :scale: 100%\n    :target: https://travis-ci.org/flo-compbio/xlmhg.svg?branch=master\n\n.. |travis-develop| image:: https://travis-ci.org/flo-compbio/xlmhg.svg?branch=develop\n    :alt: Travis-CI build Status (develop branch)\n    :scale: 100%\n    :target: https://travis-ci.org/flo-compbio/xlmhg.svg?branch=develop\n\n.. |appveyor-master| image:: https://ci.appveyor.com/api/projects/status/wpon7qkwpxx3fe6q/branch/master?svg=true\n    :alt: Appveyor build Status (master branch)\n    :scale: 100%\n    :target: https://ci.appveyor.com/project/flo-compbio/xlmhg/branch/master\n\n.. |appveyor-develop| image:: https://ci.appveyor.com/api/projects/status/wpon7qkwpxx3fe6q/branch/develop?svg=true\n    :alt: Appveyor build Status (develop branch)\n    :scale: 100%\n    :target: https://ci.appveyor.com/project/flo-compbio/xlmhg/branch/develop\n\n.. |codecov-master| image:: https://codecov.io/gh/flo-compbio/xlmhg/branch/master/graph/badge.svg\n    :alt: Coverage (master branch)\n    :target: https://codecov.io/gh/flo-compbio/xlmhg/branch/master\n\n.. |codecov-develop| image:: https://codecov.io/gh/flo-compbio/xlmhg/branch/develop/graph/badge.svg\n    :alt: Coverage (develop branch)\n    :target: https://codecov.io/gh/flo-compbio/xlmhg/branch/develop\n\n.. |docs-latest| image:: https://readthedocs.org/projects/xl-mhg/badge/?version=latest\n    :alt: Documentation Status (master branch)\n    :target: https://xl-mhg.readthedocs.io/en/latest\n\n.. |docs-develop| image:: https://readthedocs.org/projects/xl-mhg/badge/?version=develop\n    :alt: Documentation Status (develop branch)\n    :target: https://xl-mhg.readthedocs.io/en/develop\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflo-compbio%2Fxlmhg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflo-compbio%2Fxlmhg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflo-compbio%2Fxlmhg/lists"}