seqexplainer


Nameseqexplainer JSON
Version 0.1.2 PyPI version JSON
download
home_page
SummaryInterpreting sequence-to-function machine learning models
upload_time2023-07-20 19:58:15
maintainer
docs_urlNone
authoradamklie
requires_python>=3.9,<3.11
license
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![PyPI version](https://badge.fury.io/py/seqexplainer.svg)](https://badge.fury.io/py/seqexplainer)
![PyPI - Downloads](https://img.shields.io/pypi/dm/seqexplainer)

<img src="docs/_static/SeqExplainer_logo.png" alt="SeqExplainer Logo" width=350>

# SeqExplainer -- Interpreting sequence-to-function machine learning models

A huge goal of applying machine learniing to genomics data is to [obtain novel geneetic insights [1]](https://www.nature.com/articles/s41576-022-00532-2). This can be challenging when models are complex (such as with neural networks). There are [many interpretability methods](https://github.com/ML4GLand/awesome-dl4g/blob/main/README.md#interpretability) specifically designed for such complex sequence-to-function preditctors, but they can be difficult to use and often are not interoperable.

The goal of SeqExplainer is to bring all these methods under one roof. We have designed a workflow that can take in any PyTorch model trained to predict labels from DNA sequence and expose it to many of the most popular explainability methods available in the field. We also offer some wrappers for explaining "shallow" sklearn models.

## What is the scope of SeqExplainer?

Most of the core functionality is for post-hoc analysis of a trained model. 

## Common workflows

### Feature attribution analysis (coming soon)

### Identifying motifs in attributions (coming soon)

### Testing feature dependencies (coming soon)

## Tutorials

###  Extracting motif syntax rules from a CNN (coming soon)

### Explaining predictions for shallow models on synthetic MPRAs using SHAP (coming soon)

## Requirements

The main dependencies of SeqExplainer are:

```bash
python
torch
captum
numpy
matplotlib
logomaker
sklearn
shap
```

## References
1. Novakovsky, G., Dexter, N., Libbrecht, M. W., Wasserman, W. W. & Mostafavi, S. Obtaining genetics insights from deep learning via explainable artificial intelligence. Nat. Rev. Genet. 1–13 (2022) doi:10.1038/s41576-022-00532-2

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "seqexplainer",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.9,<3.11",
    "maintainer_email": "",
    "keywords": "",
    "author": "adamklie",
    "author_email": "aklie@ucsd.edu",
    "download_url": "https://files.pythonhosted.org/packages/0d/4a/bd33b39f8eef8d029547f6805ae60876be1c5dda4400cbf64cc72164741f/seqexplainer-0.1.2.tar.gz",
    "platform": null,
    "description": "[![PyPI version](https://badge.fury.io/py/seqexplainer.svg)](https://badge.fury.io/py/seqexplainer)\n![PyPI - Downloads](https://img.shields.io/pypi/dm/seqexplainer)\n\n<img src=\"docs/_static/SeqExplainer_logo.png\" alt=\"SeqExplainer Logo\" width=350>\n\n# SeqExplainer -- Interpreting sequence-to-function machine learning models\n\nA huge goal of applying machine learniing to genomics data is to [obtain novel geneetic insights [1]](https://www.nature.com/articles/s41576-022-00532-2). This can be challenging when models are complex (such as with neural networks). There are [many interpretability methods](https://github.com/ML4GLand/awesome-dl4g/blob/main/README.md#interpretability) specifically designed for such complex sequence-to-function preditctors, but they can be difficult to use and often are not interoperable.\n\nThe goal of SeqExplainer is to bring all these methods under one roof. We have designed a workflow that can take in any PyTorch model trained to predict labels from DNA sequence and expose it to many of the most popular explainability methods available in the field. We also offer some wrappers for explaining \"shallow\" sklearn models.\n\n## What is the scope of SeqExplainer?\n\nMost of the core functionality is for post-hoc analysis of a trained model. \n\n## Common workflows\n\n### Feature attribution analysis (coming soon)\n\n### Identifying motifs in attributions (coming soon)\n\n### Testing feature dependencies (coming soon)\n\n## Tutorials\n\n###  Extracting motif syntax rules from a CNN (coming soon)\n\n### Explaining predictions for shallow models on synthetic MPRAs using SHAP (coming soon)\n\n## Requirements\n\nThe main dependencies of SeqExplainer are:\n\n```bash\npython\ntorch\ncaptum\nnumpy\nmatplotlib\nlogomaker\nsklearn\nshap\n```\n\n## References\n1. Novakovsky, G., Dexter, N., Libbrecht, M. W., Wasserman, W. W. & Mostafavi, S. Obtaining genetics insights from deep learning via explainable artificial intelligence. Nat. Rev. Genet. 1\u201313 (2022) doi:10.1038/s41576-022-00532-2\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Interpreting sequence-to-function machine learning models",
    "version": "0.1.2",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cd762da64231cc08c72419a59d6cb7f13902a25522a4897c5285b202d5b5738d",
                "md5": "116071c9a31d33308448d46909f56422",
                "sha256": "e2c039ea56e3095d5a22e1591aa45a22f3e2b167c008451070b1d0d8fb55d036"
            },
            "downloads": -1,
            "filename": "seqexplainer-0.1.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "116071c9a31d33308448d46909f56422",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9,<3.11",
            "size": 40650,
            "upload_time": "2023-07-20T19:58:13",
            "upload_time_iso_8601": "2023-07-20T19:58:13.425193Z",
            "url": "https://files.pythonhosted.org/packages/cd/76/2da64231cc08c72419a59d6cb7f13902a25522a4897c5285b202d5b5738d/seqexplainer-0.1.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0d4abd33b39f8eef8d029547f6805ae60876be1c5dda4400cbf64cc72164741f",
                "md5": "89ead6516b8482477860677511dbb906",
                "sha256": "89ad85e3ce624f7eb5d84e75d4be0162319891104bf7d5575171347cccddc391"
            },
            "downloads": -1,
            "filename": "seqexplainer-0.1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "89ead6516b8482477860677511dbb906",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9,<3.11",
            "size": 32583,
            "upload_time": "2023-07-20T19:58:15",
            "upload_time_iso_8601": "2023-07-20T19:58:15.005108Z",
            "url": "https://files.pythonhosted.org/packages/0d/4a/bd33b39f8eef8d029547f6805ae60876be1c5dda4400cbf64cc72164741f/seqexplainer-0.1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-07-20 19:58:15",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "seqexplainer"
}
        
Elapsed time: 0.09405s