edlib icon indicating copy to clipboard operation
edlib copied to clipboard

Add random tests for custom equality

Open Martinsos opened this issue 8 years ago • 2 comments

I implemented custom equality but had no time to implement full blown random tests for it. I should upgrade brute force implementation so it can also work with custom equality and then generate many random tests in order to test that custom equality is working correctly.

Martinsos avatar Jul 30 '17 23:07 Martinsos

For degenerate nucleotide alignment, I'm doing the following in python which seems to work. Thanks for implementing the feature. I posted this in case it helps you with any tests, etc.

import edlib

#create a list of tuples with degenerate matches
degenNuc = [("R", "A"), ("R", "G"), 
            ("M", "A"), ("M", "C"),
            ("W", "A"), ("W", "T"),
            ("S", "C"), ("S", "G"),
            ("Y", "C"), ("Y", "T"),
            ("K", "G"), ("K", "T"),
            ("V", "A"), ("V", "C"), ("V", "G"),
            ("H", "A"), ("H", "C"), ("H", "T"),
            ("D", "A"), ("D", "G"), ("D", "T"),
            ("B", "C"), ("B", "G"), ("B", "T"),
            ("N", "G"), ("N", "A"), ("N", "T"), ("N", "C"),
            ("X", "G"), ("X", "A"), ("X", "T"), ("X", "C")]

FwdPrimer = 'AGTGARTCATCGAATCTTTG'
Seq1 = 'AGTGAGTCATCGAATCTTTG'
Seq2 = 'AGTGAATCATCGAATCTTTG'
Seq3 = 'AGTGACTCATCGAATCTTTG'
seq1_align = edlib.align(FwdPrimer, Seq1, mode="HW", k=2, additionalEqualities=degenNuc)
seq2_align =edlib.align(FwdPrimer, Seq2, mode="HW", k=2, additionalEqualities=degenNuc)
seq3_align =edlib.align(FwdPrimer, Seq3, mode="HW", k=2, additionalEqualities=degenNuc)

>>> print seq1_align
{'editDistance': 0, 'cigar': None, 'locations': [(None, 19)], 'alphabetLength': 5}
>>> print seq2_align
{'editDistance': 0, 'cigar': None, 'locations': [(None, 19)], 'alphabetLength': 5}
>>> print seq3_align
{'editDistance': 1, 'cigar': None, 'locations': [(None, 19)], 'alphabetLength': 5}

nextgenusfs avatar Jul 31 '17 00:07 nextgenusfs

Awesome thanks :).

Martinsos avatar Jul 31 '17 14:07 Martinsos