Skip to main content

Synteny-aware hmm searches made easy in Python

Project description

logo

Synteny-aware hmm searches made easy

tests codecov docs

Project Status: Active – The project has reached a stable, usable state and is being actively developed. license Contributor Covenant

GitHub release

python Code style: black

pyOpenSci DOI

1. :bulb: What is Pynteny?

Pynteny is Python tool to search for synteny blocks in (prokaryotic) sequence data through HMMs of the ORFs of interest and HMMER. By leveraging genomic context information, Pynteny can be employed to decrease the uncertainty of functional annotation of unlabelled sequence data due to the effect of paralogs. Pynteny can be accessed (i) through the command line or (ii) as a Python module.

Get more info in the documentation pages!

Check out the Pynteny paper in the Journal of Open Source Software!

2. :wrench: Setup

Pynteny is a pure-Python package (it no longer requires conda or any external binaries). All dependencies, including the HMMER and Prodigal engines, are provided by the pip packages pyhmmer and pyrodigal.

Install the latest development version directly from GitHub:

pip install git+https://github.com/Robaina/Pynteny.git

Once released on PyPI, Pynteny will also be installable with:

pip install pynteny

Check that the installation worked fine:

pynteny --help

2.1. Installing on Windows

Pynteny is developed and tested on Linux, but since it is now a pure-Python package, pip install pynteny also works on Windows and macOS (including Apple Silicon / ARM64), provided wheels are available for pyhmmer and pyrodigal on your platform.

3. :rocket: Usage

Consider the following toy example of a syntenic block:

synteny example

Here, we are interested in four genes which colocate according to the pattern above: genes A-C show consecutive locations in the positive strand, followed by three (untargeted) genes and followed by gene D, which is located in the negative strand.

Pynteny can be run either as a command line tool or as a Python module. To run pynteny in the command line, execute:

pynteny <subcommand> <options>

pynyeny-cli

There are a number of available subcommands, which can be explored in the documentation pages.

For intance, to first download the PGAP's database containing a collection of profile HMMs as well as metadata:

pynteny download --outdir data/hmms --unpack

Next, to build a labelled peptide database from DNA assembly data:

pynteny build \
    --data assembly.fa \
    --outfile labelled_peptides.faa

Finally, to search the peptide database for the syntenic structure displayed above: >gene_A 0 >gene_B 0 >gene_C 3 <gene_D, and using the downloaded PGAP database:

pynteny search \
    --synteny_struc ">gene_A 0 >gene_B 0 >gene_C 3 <gene_D" \
    --data labelled_peptides.faa \
    --outdir results/ \
    --gene_ids

4. :notebook_with_decorative_cover: Examples

Here are some Jupyter Notebooks with examples to show how Pynteny works:

You can find more notebooks in the examples directory. Find more info in the documentation.

5. :arrows_counterclockwise: Dependencies

Pynteny would not work without these awesome projects:

Thanks!

6. :octocat: Contributing

Contributions are always welcome! If you don't know where to start, you may find an interesting issue to work in here. Please, read our contribution guidelines first.

7. :black_nib: Citation

If you use this software, please cite it as below:

Semidán Robaina Estévez. (2023). Pynteny: synteny-aware hmm searches made easy (Version 1.0.0). Zenodo. https://zenodo.org/record/7696204

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pynteny-1.2.0.tar.gz (37.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pynteny-1.2.0-py3-none-any.whl (42.9 kB view details)

Uploaded Python 3

File details

Details for the file pynteny-1.2.0.tar.gz.

File metadata

  • Download URL: pynteny-1.2.0.tar.gz
  • Upload date:
  • Size: 37.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pynteny-1.2.0.tar.gz
Algorithm Hash digest
SHA256 979f77df26715151c9269e2855f803c958a2d32885c4a0993a9c9851ef852fee
MD5 4cf6e9802574bfeac13d61748ca99523
BLAKE2b-256 1ac4e6eef8bc8bde8a68f0e701ee493cd9ee600cb58ca9650f5cf80ac9e36774

See more details on using hashes here.

Provenance

The following attestation bundles were made for pynteny-1.2.0.tar.gz:

Publisher: publish.yml on Robaina/Pynteny

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pynteny-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: pynteny-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 42.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pynteny-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 01bb613ad012910390c327307b072d64a43c60ddde2f20122371a7f05bc1ca9a
MD5 3ff83eadbad8a69460c81c4f1c917ef5
BLAKE2b-256 6eaf712b95e5f627ccc426c61a9ed33d1eab118f764de2c29e6700aae9ec54d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pynteny-1.2.0-py3-none-any.whl:

Publisher: publish.yml on Robaina/Pynteny

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page