Metadata-Version: 2.4
Name: deli-chem
Version: 0.1.1
Summary: DNA encoded library sequence analysis software with custom library design support
License-File: LICENSE.txt
Keywords: DNA-encoded library,DEL,cheminformatics,bioinformatics,drug discovery
Author: James Wellnitz
Author-email: wellnitz.james@gmail.com
Maintainer: James Wellnitz
Maintainer-email: wellnitz.james@gmail.com
Requires-Python: >=3.10,<4.0
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Provides-Extra: dev
Provides-Extra: docs
Provides-Extra: ml
Provides-Extra: notebook
Provides-Extra: test
Requires-Dist: Jinja2 (>=3.1.3)
Requires-Dist: Levenshtein (>=0.25.0)
Requires-Dist: biopython (==1.85)
Requires-Dist: click (>=8.1.3)
Requires-Dist: cutadapt (==5.0)
Requires-Dist: dnaio (==1.2.3)
Requires-Dist: ipykernel (==5.5.5) ; extra == "notebook"
Requires-Dist: ipython (==7.22.0) ; extra == "notebook"
Requires-Dist: matplotlib (>=3.9.3)
Requires-Dist: matplotlib-venn (==0.11.10)
Requires-Dist: mypy (>=1.8.0,<1.9.0) ; extra == "dev"
Requires-Dist: notebook (==7.1.3) ; extra == "notebook"
Requires-Dist: numba (>=0.60.0)
Requires-Dist: numpy (<2.0)
Requires-Dist: pandas (>=2.2.3)
Requires-Dist: plotly (>=5.20.0)
Requires-Dist: poetry (>=2.0.0,<2.1.0) ; extra == "dev"
Requires-Dist: poetry-bumpversion (>=0.3.1,<0.4.0) ; extra == "dev"
Requires-Dist: polars (>=0.20.10)
Requires-Dist: pre-commit (>=3.8.0,<3.9.0) ; extra == "dev"
Requires-Dist: pytest (>=7.2.0,<7.3.0) ; extra == "test"
Requires-Dist: pytest-cov (>=4.0.0,<4.1.0) ; extra == "test"
Requires-Dist: pytest-html (>=3.2.0,<3.3.0) ; extra == "test"
Requires-Dist: pytorch-lightning (>=2.0.0) ; extra == "ml"
Requires-Dist: pyyaml (==6.0.2)
Requires-Dist: rdkit (>=2024.9.5)
Requires-Dist: ruff (>=0.5.5,<0.6.0) ; extra == "dev"
Requires-Dist: scikit-learn (>=1.4.2)
Requires-Dist: scipy (>=1.14.1)
Requires-Dist: seaborn (>=0.12.2)
Requires-Dist: sphinx (>=7.1.2,<7.2.0) ; extra == "docs"
Requires-Dist: sphinx_rtd_theme (>=2.0.0,<2.1.0) ; extra == "docs"
Requires-Dist: torch (>=2.2.0) ; extra == "ml"
Requires-Dist: torch-geometric (==2.6.1) ; extra == "ml"
Requires-Dist: torchaudio (>=2.2.0) ; extra == "ml"
Requires-Dist: torchvision (>=0.17.0) ; extra == "ml"
Requires-Dist: tqdm (>=4.66.4)
Requires-Dist: types-PyYAML (==6.0.12.20241230) ; extra == "dev"
Requires-Dist: typing-extensions (>=4.0.0)
Project-URL: Homepage, https://github.com/Popov-Lab-UNC/DELi
Project-URL: Issues, https://github.com/Popov-Lab-UNC/DELi/issues
Project-URL: Repository, https://github.com/Popov-Lab-UNC/DELi
Description-Content-Type: text/markdown

# DELi
![DELi](./assets/DELi_logo.png)

DELi (DNA-Encoded Library informatics) is a Python library for working with DELs.
It incorporates the whole pipeline post base-calling/sequencing including:
1. Barcode/DEL ID calling and cube file generation
2. Enumeration of chemical structures from building blocks
3. Disython and Monosynthon analysis
4. Generation of machine learning datasets and baseline models from DEL data
5. Various digestible reports to understand the DEL results

You can read the detailed documentation [here](https://dna-encoded-library-informatics-deli.readthedocs.io/en/latest/).

## Installing DELi
You can install DELi using pip for any OS/Machine that supports Python 3.10+:

```shell
pip install deli-chem
```

You can use DELi as a command line tool (see the [docs](https://dna-encoded-library-informatics-deli.readthedocs.io/en/latest/cli_docs.html) for more details) or as a python package
```python
import deli
print(deli.__version__)
```

## Getting Started
For an end-to-end workflow of running DELi with open source libraries and selections (Enumerate, Decode, Analyze), see the [examples documentation](examples/README.md).

## Why not a compiled language
DELi is written in Python for two reasons:
1. We wrote the first versions of it in Python
2. Python is the language most scientists in our field know, so it makes contributions from other DEL experts easier

It is true that DELi would be faster as a compiled C++ or Rust program, but we have optimized the DELi enough that runtime isn't much of an issue.
We hope to someday write a Rust version of DELi (at least for decoding and enumeration) but those plans are not yet in motion.

**Note for developers:** DELi is built using poetry. You can use `poetry build` to build from source after
cloning the repo. Be on the lookup for contribution docs in the near future!

