Metadata-Version: 2.4
Name: fusor
Version: 0.10.3
Summary: Computable object representation and validation for gene fusions
Author-email: Alex Wagner <alex.wagner@nationwidechildrens.org>, Kori Kuzma <kori.kuzma@nationwidechildrens.org>, James Stevenson <james.stevenson@nationwidechildrens.org>, Katie Stahl <kathryn.stahl@nationwidechildrens.org>, Jeremy Arbesfeld <jeremy.arbesfeld@nationwidechildrens.org>
License-Expression: MIT
Project-URL: Homepage, https://github.com/cancervariants/fusor
Project-URL: Documentation, https://github.com/cancervariants/fusor
Project-URL: Changelog, https://github.com/cancervariants/fusor/releases
Project-URL: Source, https://github.com/cancervariants/fusor
Project-URL: Bug Tracker, https://github.com/cancervariants/fusor/issues
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: Pydantic
Classifier: Framework :: Pydantic :: 2
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pydantic==2.*
Requires-Dist: ga4gh.vrs<3.0,>=2.3.0
Requires-Dist: biocommons.seqrepo
Requires-Dist: gene-normalizer~=0.11.3
Requires-Dist: civicpy~=5.4.0
Requires-Dist: cool-seq-tool~=0.16.0
Provides-Extra: tests
Requires-Dist: pytest; extra == "tests"
Requires-Dist: pytest-cov; extra == "tests"
Requires-Dist: pytest-asyncio; extra == "tests"
Requires-Dist: pyyaml; extra == "tests"
Provides-Extra: dev
Requires-Dist: prek>=0.2.23; extra == "dev"
Requires-Dist: ruff==0.14.10; extra == "dev"
Provides-Extra: docs
Requires-Dist: sphinx<8.2.0,>=7.2; extra == "docs"
Requires-Dist: sphinx-autodoc-typehints==1.22.0; extra == "docs"
Requires-Dist: sphinx-autobuild==2021.3.14; extra == "docs"
Requires-Dist: sphinx-copybutton==0.5.2; extra == "docs"
Requires-Dist: sphinxext-opengraph==0.8.2; extra == "docs"
Requires-Dist: furo>=2023.9.10; extra == "docs"
Requires-Dist: sphinx-github-changelog==1.2.1; extra == "docs"
Provides-Extra: notebooks
Requires-Dist: ipykernel; extra == "notebooks"
Requires-Dist: jupyter; extra == "notebooks"
Requires-Dist: seaborn>=0.12.0; extra == "notebooks"
Dynamic: license-file

<h1 align="center">
FUSOR
</h1>

[![image](https://img.shields.io/pypi/v/fusor.svg)](https://pypi.python.org/pypi/fusor)
[![image](https://img.shields.io/pypi/l/fusor.svg)](https://pypi.python.org/pypi/fusor)
[![image](https://img.shields.io/pypi/pyversions/fusor.svg)](https://pypi.python.org/pypi/fusor)
[![Actions status](https://github.com/cancervariants/fusor/actions/workflows/checks.yaml/badge.svg)](https://github.com/cancervariants/fusor/actions/checks.yaml)
[![DOI](https://img.shields.io/badge/DOI-10.5281%2Fzenodo.12708137-blue)](https://doi.org/10.5281/zenodo.12708137)


---

**[Documentation](https://fusor.readthedocs.io/stable/)** · [Installation](https://fusor.readthedocs.io/stable/install.html) · [Usage](https://fusor.readthedocs.io/stable/usage.html) · [API reference](https://fusor.readthedocs.io/stable/reference/index.html)

---

## Overview

<!-- description -->
FUSOR (**FUS**ion **O**bject **R**epresentation) provides modeling and validation tools for representing gene fusions in a precise, computable structure that adheres to the [VICC Gene Fusion Specification](https://fusions.cancervariants.org). It also provides easy access to transcript selection and coordinate conversion tools, and enables generation of human-readable fusion [nomenclature](https://fusions.cancervariants.org/en/latest/nomenclature.html).
<!-- /description -->

## Install

FUSOR is available on [PyPI](https://pypi.org/project/fusor):

```shell
python3 -m pip install fusor
```

See the [installation instructions](https://fusor.readthedocs.io/stable/install.html) in the documentation for a description of dependency setup requirements.

---

## Usage

Fusion and subcomponent constructors are provided through a core `FUSOR` class:

```pycon
>>> from fusor import FUSOR
>>> f = FUSOR()
>>> fusion = f.fusion(
...     structure=[
...         {
...             "type": "GeneElement",
...             "gene": {
                    "primaryCoding": {
    ...                 "id": "hgnc:3508",
                        "code": "HGNC:3508",
                        "system": "https://www.genenames.org/data/gene-symbol-report/#!/hgnc_id/"
                    }
                    "conceptType": "Gene",
                    "name": "EWSR1"
...             }
...         },
...         {
...           "type": "UnknownGeneElement"
...         }
...     ],
...     assay={
...         "type": "Assay",
...         "methodUri": "pmid:33576979",
...         "assayId": "obi:OBI_0003094",
...         "assayName": "fluorescence in-situ hybridization assay",
...         "fusionDetection": "inferred",
...     },
... )
>>> fusion.type
<FUSORTypes.ASSAYED_FUSION: 'AssayedFusion'>
```

See the [usage](https://fusor.readthedocs.io/stable/usage.html) section in the documentation for more features and code examples.

---

## Feedback and contributing

We welcome bug reports, feature requests, and code contributions from users and interested collaborators. The [documentation](https://fusor.readthedocs.io/stable/contributing.html) contains guidance for submitting feedback and contributing new code.
