Skip to main content

Cython bindings and Python interface to Infernal.

Project description

🐍 PyInfernal Stars

Cython bindings and Python interface to Infernal.

Actions Coverage PyPI Bioconda AUR Wheel Python Versions Python Implementations License Source Mirror GitHub issues Docs Changelog Downloads

🗺️ Overview

Infernal is a biological sequence analysis method that uses profile stochastic context-free grammars called covariance models (CMs) to identify RNA structure and sequence similarities. Infernal was developed by Eric P. Nawrocki during his PhD thesis in the Eddy Laboratory.

pyinfernal is a Python package, implemented using the Cython language, that provides bindings to Infernal. It directly interacts with the Infernal internals. It builds on top of pyhmmer and follows a generally similar interface.

This library is still very experimental and has not been thoroughly tested yet, use with caution.

🔧 Installing

pyinfernal can be installed from PyPI, which hosts some pre-built CPython wheels for Linux and MacOS on x86-64 and Arm64, as well as the code required to compile from source with Cython:

$ pip install pyinfernal

Compilation for UNIX PowerPC is not tested in CI, but should work out of the box. Note than non-UNIX operating systems (such as Windows) are not supported by Infernal.

🔖 Citation

PyInfernal is scientific software, and builds on top of Infernal. Please cite the Infernal 1.1 application note in Bioinformatics, for instance:

PyInfernal, a Python library binding to Infernal (Nawrocki & Eddy, 2013).

Also refer to the Infernal User's Guide which contains a section about citation and reproducibility.

💡 Example

Use pyinfernal to run cmsearch to search for the genome of Escherichia coli str. K-12 substr. MG1655 (U00096.3) for models from RFam. This will produce an iterable over TopHits that can be used for further sorting/querying in Python. Processing happens in parallel using Python threads, and a TopHits object is yielded for every CM in the input iterable.

import pyhmmer.easel
import pyinfernal.cm
import pyinfernal.infernal

rna = pyhmmer.easel.Alphabet.rna()
with pyhmmer.easel.SequenceFile("U00096.3.fna", digital=True, alphabet=rna) as seq_file:
    sequences = seq_file.read_block()

with pyinfernal.cm.CMFile("RFam.cm", alphabet=rna) as cm_file:
    for hits in pyinfernal.cmsearch(cm_file, sequences, cpus=4):
        print(f"CM {hits.query.name} ({hits.query.accession}) found {len(hits)} hits in the target sequences")

💭 Feedback

⚠️ Issue Tracker

Found a bug ? Have an enhancement request ? Head over to the GitHub issue tracker if you need to report or ask something. If you are filing in on a bug, please include as much information as you can about the issue, and try to recreate the same bug in a simple, easily reproducible situation.

🏗️ Contributing

Contributions are more than welcome! See CONTRIBUTING.md for more details.

⚖️ License

This library is provided under the MIT License. The Infernal code is available under the BSD 3-clause license. See vendor/infernal/LICENSE for more information.

This project is in no way affiliated, sponsored, or otherwise endorsed by the original Infernal authors. It was developed by Martin Larralde during his PhD project at the Leiden University Medical Center in the Zeller Lab.

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

pyinfernal-0.1.1.tar.gz (4.7 MB view details)

Uploaded Source

Built Distributions

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

pyinfernal-0.1.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pyinfernal-0.1.1-cp312-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pyinfernal-0.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pyinfernal-0.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pyinfernal-0.1.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pyinfernal-0.1.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

File details

Details for the file pyinfernal-0.1.1.tar.gz.

File metadata

  • Download URL: pyinfernal-0.1.1.tar.gz
  • Upload date:
  • Size: 4.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyinfernal-0.1.1.tar.gz
Algorithm Hash digest
SHA256 c9da4e91e6bfefe4fb32d88b5b106580279907c1d7ce92c23c65dd4117381da0
MD5 8cd9e7c79f70d07bc5ae5d9218c79cd6
BLAKE2b-256 7a88b6801fe0db4ef72bfd4d4613be61450f57550069e6f29f373847edf58dd2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyinfernal-0.1.1.tar.gz:

Publisher: package.yml on althonos/pyinfernal

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

File details

Details for the file pyinfernal-0.1.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyinfernal-0.1.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e1ee23ddee8ac982f11e4fab74bbb6304bc3c8a654ffce206d5a0a3ab2c65f2b
MD5 8f355a28880071dc04c67d00346ee3b8
BLAKE2b-256 b672d8b7ba1337842f6259ba3dfc3e62658bcdf3b5933dd781f0dff3a6f45b76

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyinfernal-0.1.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: package.yml on althonos/pyinfernal

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

File details

Details for the file pyinfernal-0.1.1-cp312-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyinfernal-0.1.1-cp312-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ef057a36238c0b6f9cc256acd0fb0917bbc3f377472d5a263a1e3f137b796dc9
MD5 2bace2c629c5190a2a1914a126745724
BLAKE2b-256 d22ed586930cf9f394068531b1eb5169b36ab07aaaec8267fefb8036d2baca80

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyinfernal-0.1.1-cp312-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: package.yml on althonos/pyinfernal

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

File details

Details for the file pyinfernal-0.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyinfernal-0.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3c6f125ccb9329e4edefe19463883c57eeb2dd2cb253d1c00cd9745ce4392aba
MD5 1dc48a56aa1a75ea752db9cfc64c52a9
BLAKE2b-256 7c067ee14b6709e29f53b68981a77fb378687bf2a656426b4d73df40c6726b76

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyinfernal-0.1.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: package.yml on althonos/pyinfernal

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

File details

Details for the file pyinfernal-0.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyinfernal-0.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7ac41f8a430090fd8fc83a3d4827d865694d68cfad53d1d67a3971d0a2135bfb
MD5 d8977c1113b3bc3195c23ef9ffda0233
BLAKE2b-256 4c081aebd1f421db524eb57f41222680c58db3ffbdd8a64fff25ab6f6af2ad12

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyinfernal-0.1.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: package.yml on althonos/pyinfernal

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

File details

Details for the file pyinfernal-0.1.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyinfernal-0.1.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0c8fb00b498ab76c7a178cc44ca51999a96bc7059ed6425c38bde6fcf6ae211c
MD5 3123d48ebd104b5b252415dac3f7a575
BLAKE2b-256 ff60e2e449d6127f973b67bbe4f4503ba82dc88be6e61981d4c03be7c79eba96

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyinfernal-0.1.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: package.yml on althonos/pyinfernal

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

File details

Details for the file pyinfernal-0.1.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyinfernal-0.1.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7a2ed05990a6eeba318494edf94ab605e37ff783d4ccd77aaaa5c3654bad5af2
MD5 38f151b415bff82f831e7ce144bc7f21
BLAKE2b-256 2abd1b072bcc4afd4c13c1c3cbcbd5c0b60c348c0d03be2cfbdffb3060105717

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyinfernal-0.1.1-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: package.yml on althonos/pyinfernal

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