PyOpal Stars#

Cython bindings and Python interface to Opal, a SIMD-accelerated pairwise aligner.

Actions Coverage PyPI Bioconda AUR Wheel Versions Implementations License Source Mirror Issues Docs Changelog Downloads

Overview#

PyOpal is a Python module that provides bindings to Opal using Cython. It directly interacts with the Opal internals, which has the following advantages:

Batteries-included

Just add pyopal as a pip or conda dependency, no need for the Opal binary or any external dependency.

Flexible

Directly pass sequences to process as Python str objects, no need for intermediate files.

Portable

Use the best available SIMD implementation for your current platform without having to recompile Opal.

Wider support

The Opal code has been backported to work on SSE2 rather than SSE4.1, allowing PyOpal to run on older x86 CPUs (all x86 CPUs support it since 2003).

Arm-compatible

Aarch64 CPUs (and Armv7 when they implement NEON extensions) are supported in addition to x86-64 in the original.

Windows-compatible

The C++ code of Opal has been modified to compile on Windows.

Setup#

Run pip install pyopal in a shell to download the latest release from PyPi, or have a look at the Installation page to find other ways to install pyopal.

Library#

License#

This library is provided under the MIT License. Opal was developed by Martin Šošić and is distributed under the terms of the MIT License as well. See the Copyright Notice section for the full license.

This project is in no way not affiliated, sponsored, or otherwise endorsed by the original Opal authors. It was developed by Martin Larralde during his PhD project at the European Molecular Biology Laboratory in the Zeller team.