From 9d882fb1d80b9b8463435de307910ca344b46e74 Mon Sep 17 00:00:00 2001 From: "Thomas A. Christensen II" <25492070+MillironX@users.noreply.github.com> Date: Tue, 1 Oct 2024 10:48:06 -0500 Subject: [PATCH] feat: Add InsertionEdit type --- .vscode/settings.json | 2 ++ src/Edit.jl | 16 ++++++++++++++++ structure.png | Bin 0 -> 55369 bytes 3 files changed, 18 insertions(+) create mode 100644 .vscode/settings.json create mode 100644 structure.png diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..2c63c08 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,2 @@ +{ +} diff --git a/src/Edit.jl b/src/Edit.jl index cf4bab0..1c55dab 100644 --- a/src/Edit.jl +++ b/src/Edit.jl @@ -46,6 +46,22 @@ Base.hash(x::DeletionEdit, h::UInt) = hash(DeletionEdit, hash((x.position, x.len BioGenerics.leftposition(d::DeletionEdit) = d.position BioGenerics.rightposition(d::DeletionEdit) = leftposition(d) + length(d) - 1 +struct InsertionEdit{S<:BioSequence,T<:BioSymbol} <: Edit{S,T} + position::UInt + seq::S + + function InsertionEdit{S}(position::UInt, seq::S) where {S<:BioSequence} + iszero(position) && error("Insertion cannot be at a position outside the sequence") + function InsertionEdit{S,T}(position::UInt, seq::S) where {S<:BioSequence,T<:BioSymbol} + return new(position, seq) + end +end +Base.length(i::InsertionEdit) = length(i.seq) +Base.:(==)(x::InsertionEdit, y::InsertionEdit) = x.position == y.position && x.seq == y.seq +Base.hash(x::InsertionEdit, h::UInt) = hash(InsertionEdit, hash((x.position, x.seq), h)) +BioGenerics.leftposition(i::InsertionEdit) = i.position +BioGenerics.rightposition(i::InsertionEdit) = leftposition(i) + 1 + function Base.parse(::Type{T}, s::AbstractString) where {T<:Edit{Se,Sy}} where {Se,Sy} return parse(T, String(s)) end diff --git a/structure.png b/structure.png new file mode 100644 index 0000000000000000000000000000000000000000..7c0e9425ead7fea5b82defafe5449371564b0fd7 GIT binary patch literal 55369 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 KjhAZXLH`5x=?q{1 literal 0 HcmV?d00001