Skip to content

C-based Needleman-Wunsch and Smith-Waterman alignment algorithms with a Python interface.

License

Notifications You must be signed in to change notification settings

biocommons/uta-align

Repository files navigation

uta-align provides C-based (Cython) Needleman-Wunsch and Smith-Waterman alignment algorithms

build_status pypi_badge

Original author: Kevin Jacobs

IMPORTANT: Python 3.7 only for the moment (PRs welcome!)

Installation

  • From source:

    $ python setup.py install
    

For Development

  • Install developer environment:

    $ make devready
    

    Alternatively:

    $ python3 -m venv myvenv
    $ source myvenv/bin/activate
    $ make setup
    
  • Activate the environment:

    $ source venv/3.7/bin/activate
    

    (or other python version as appropriate for your system)

  • During development, you'll need to recompile any code changes to the .pyx files, like this:

    $ pip install -e .
    
  • Test it (in current Python environment):

    $ make test
    ======================================== test session starts ========================================
    platform linux -- Python 3.7.5, pytest-5.3.5, py-1.8.1, pluggy-0.13.1
    rootdir: /home/reece/projects/biocommons/uta-align, inifile: setup.cfg, testpaths: tests
    collected 5 items
    tests/test_align_algorithms.py .                                                              [ 20%]
    tests/test_align_gap_open.py ..                                                               [ 60%]
    tests/test_cigar_utils.py .                                                                   [ 80%]
    tests/test_nw.py .                                                                            [100%]
    ========================================= 5 passed in 0.12s =========================================
    
  • Tox test it (in multiple environments:

    $ make tox
    
    GLOB sdist-make: /home/reece/projects/biocommons/uta-align/setup.py
    py37 inst-nodeps: /home/reece/projects/biocommons/uta-align/.tox/.tmp/package/...
    ...
    py37: commands succeeded
    congratulations :)