def edlib_align

bend-edit-distance@0.2.2.0 · src/Myers.bend:708

import bend-edit-distance@0.2.2.0/src/Myers.bend as Myers
import Base
import bend-edit-distance@0.2.2.0/src/Sequence.bend as S
import bend-edit-distance@0.2.2.0/EdlibTypes.bend as E
import bend-edit-distance@0.2.2.0/src/Alignment.bend as A

708def edlib_align(query: String, target: String, config: E.AlignConfig) -> E.AlignResult:
709  match query target config:
710    case SNil{} _ _:
711      A.empty_result("", target, config)
712    case SCon{h, t} SNil{} _:
713      A.empty_result(SCon{h, t}, "", config)
714    case +q +t E.AlignConfig{E.NW{}, task, threshold, +pairs, format}:
715      +qn +tn = S.length(q) S.length(t)
716      nw_result(q, t, task, pairs, format, E.end_coordinate(tn),
717        search_distance(search_shorter(q, t, qn, tn, threshold, Nat.is_le(qn, tn), pairs)))
718    case +q +t E.AlignConfig{mode, task, threshold, pairs, format}:
719      semiglobal_align(q, t, mode, task, threshold, pairs, format)

Uses (12)

Used by (3)