Dense Arrays designs nucleotide sequences with densely packed DNA-protein binding sites. It uses optimal string packing to arrange overlapping sites on both DNA strands, with controls for sequence length, site placement, and library diversity.
First array
Use Python 3.12 or later. This example packs four synthetic 16-base motifs into a 40-base array.
python -m venv .venv # Create an isolated Python environment.
source .venv/bin/activate # Activate it on macOS or Linux.
python -m pip install dense-arrays # Install the released package and CBC solver.
# Fit four sites into at most 40 bases, considering both DNA strands.
dense-arrays optimize \
--motif ACGTTGCAAGTCCTGA \
--motif AGTCCTGATCGTACCG \
--motif TCGTACCGATGCTTAG \
--motif ATGCTTAGGACGTTCA \
--length 40 --strands double
One optimum contains all four sites in 40 bases. The first-array guide explains the overlaps and shows the matching Python code. Installation covers optional features, version availability, Windows, uv projects, and Pixi.
Choose a task
The documentation index routes by use case: prepare binding-site pools, constrain and generate libraries, inspect shortfalls, compare results, export sequences, or render figures and playback. It also links the API, method, and contributor guides.
Cite and contribute
Andreani V, South EJ, Dunlop MJ (2024). Generating information-dense promoter sequences with optimal string packing. PLOS Computational Biology 20(7): e1012276. DOI: 10.1371/journal.pcbi.1012276.
Metadata
Release files for dense-arrays 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dense_arrays-0.3.0.tar.gz | 440.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dense_arrays-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 967.8 kB
Release files / dense_arrays-0.3.0.tar.gz
| Download URL | dense_arrays-0.3.0.tar.gz |
|---|---|
| Size | 440.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b1c16a44974c32c41ca8b1f6a3cb7fb4d2dc4c11d7688f845509dd9b67e17eab
|
|
BLAKE2b-256 checksum How to use checksums |
935b1df16614c6b227ceba0a1fa9b72f7e766ef114c8fe2bfca8242f4eb4da77
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency logRelease files / dense_arrays-0.3.0-py3-none-any.whl
| Download URL | dense_arrays-0.3.0-py3-none-any.whl |
|---|---|
| Size | 526.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2bf7eb55c460e8008d58769909000d0651d68cd136a25da897e32fe8e405aec3
|
|
BLAKE2b-256 checksum How to use checksums |
a1d1e8169b1fa7457c5c875702bf7b3cfbb9aa198a03c04f77990e200b8fe76f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.
Transparency log