Performs global sequence alignment of two strings. Allows for affine gap penalties.
The package can be installed via pip, conda, or mamba.
Run the following in a terminal.
python3 -m venv my_venv_for_globalign
source my_venv_for_globalign/bin/activate
pip install globalignWe recommend using mamba, but conda works too. Be careful not to install into your base environment. Here, we create and activate an evironment first. For more information on using conda to install packages, refer to the documentation. Run the following in a terminal.
conda create -n globalign_conda_test
conda activate globalign_conda_test
conda install --channel conda-forge globalignA drop-in replacement for conda:
mamba create -n globalign_conda_test
mamba activate globalign_conda_test
mamba install --channel conda-forge globalignYou will need to install quarto and quartodoc to be able to publish documentation updates. To build the documentation locally and publish it to GitHub, do the following: From the project root, run:
quartodoc build
quarto renderIf you are happy with the resulting website, then push your changes to a branch other than gh-pages. Then, (from a branch other than gh-pages), execute the command:
quarto publish gh-pagesThe public-facing website should now be updated.
To run unit tests, make sure pytest and hatch are installed and available. Building also requires the hatch-vcs plugin. To build and test, do the following: From the project root, run:
rm -rf dist/
hatch build
hatch testTo install from source, run the following from the project root after building:
pip install --editable .Versions can be changed via git tags. For example, run this with the version you want:
git tag -a "v0.0.0"
git push origin v0.0.0A special thanks goes to Mykola Akulov and Ragnar Groot Koerkamp for their insightful blog post without which I would not have known how to make this package work with both scoring and costing schemes.
- https://web.stanford.edu/class/cs262/archives/presentations/lecture3.pdf
- https://ocw.mit.edu/courses/6-096-algorithms-for-computational-biology-spring-2005/01f55f348ea1e95f7015bd1b40586012_lecture5.pdf
- Martin Mann, Mostafa M Mohamed, Syed M Ali, and Rolf Backofen Interactive implementations of thermodynamics-based RNA structure and RNA-RNA interaction prediction approaches for example-driven teaching PLOS Computational Biology, 14 (8), e1006341, 2018.
- Martin Raden, Syed M Ali, Omer S Alkhnbashi, Anke Busch, Fabrizio Costa, Jason A Davis, Florian Eggenhofer, Rick Gelhausen, Jens Georg, Steffen Heyne, Michael Hiller, Kousik Kundu, Robert Kleinkauf, Steffen C Lott, Mostafa M Mohamed, Alexander Mattheis, Milad Miladi, Andreas S Richter, Sebastian Will, Joachim Wolff, Patrick R Wright, and Rolf Backofen Freiburg RNA tools: a central online resource for RNA-focused research and teaching Nucleic Acids Research, 46(W1), W25-W29, 2018.
- An improved algorithm for matching biological sequences. Osamu Gotoh. https://doi.org/10.1016/0022-2836(82)90398-9
- http://www.cs.cmu.edu/~durand/03-711/2017/Lectures/Sequence-Alignment-2017.pdf
- https://bioboot.github.io/bimm143_W20/class-material/nw/
- https://www.ncbi.nlm.nih.gov/CBBresearch/Przytycka/download/lectures/PCB_Lect02_Pairwise_allign.pdf
- https://ics.uci.edu/~xhx/courses/CS284A-F08/lectures/alignment.pdf
- https://link.springer.com/chapter/10.1007/978-3-319-90684-3_2
- Optimal sequence alignment using affine gap costs. https://link.springer.com/content/pdf/10.1007/BF02462326.pdf
- Optimal alignments in linear space. Eugene W. Myers, Webb Miller. https://doi.org/10.1093/bioinformatics/4.1.11
- Sequence alignment using FastLSA. https://webdocs.cs.ualberta.ca/~duane/publications/pdf/2000metmbs.pdf
- MASA: A Multiplatform Architecture for Sequence Aligners with Block Pruning. https://doi.org/10.1145/2858656
- https://community.gep.wustl.edu/repository/course_materials_WU/annotation/Introduction_Dynamic_Programming.pdf
- Optimal gap-affine alignment in O(s) space. https://doi.org/10.1093/bioinformatics/btad074
- Exact global alignment using A* with chaining seed heuristic and match pruning. https://doi.org/10.1093/bioinformatics/btae032
- Transforming match bonus into cost. https://curiouscoding.nl/posts/alignment-scores-transform/
- Improving the time and space complexity of the WFA algorithm and generalizing its scoring. https://doi.org/10.1101/2022.01.12.476087
- A* PA2: up to 20 times faster exact global alignment. https://doi.org/10.1101/2024.03.24.586481
- Notes on Dynamic-Programming Sequence Alignment. https://globin.bx.psu.edu/courses/fall2001/DP.pdf
- Lecture 6: Affine gap penalty function. https://www.cs.hunter.cuny.edu/~saad/courses/compbio/lectures/lecture6.pdf