mirror of
https://github.com/MillironX/SequenceVariation.jl.git
synced 2024-11-25 22:59:56 +00:00
Add constructor for Variant based on Variations
A Variant is a collection of Variations, right? Unfortunately there was no way to convert a collection of Variations into a Variant, so I added one.
This commit is contained in:
parent
6a77d6d589
commit
1bbb85153c
2 changed files with 14 additions and 0 deletions
|
@ -211,6 +211,8 @@ function Variant(ref::S, edits::Vector{Edit{S, T}}) where {S<:BioSequence, T<:Bi
|
||||||
Variant{S, T}(ref, edits)
|
Variant{S, T}(ref, edits)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function Base.show(io::IO, x::Variant)
|
function Base.show(io::IO, x::Variant)
|
||||||
n = length(x.edits)
|
n = length(x.edits)
|
||||||
print(io, summary(x), " with $n edit$(n > 1 ? "s" : ""):")
|
print(io, summary(x), " with $n edit$(n > 1 ? "s" : ""):")
|
||||||
|
@ -367,6 +369,11 @@ function Variation(ref::S, edit::AbstractString) where {S<:BioSequence}
|
||||||
return Variation{S,T}(ref, e)
|
return Variation{S,T}(ref, e)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function Variant(ref::S, vars::Vector{Variation{S,T}}) where {S<:BioSequence, T<:BioSymbol}
|
||||||
|
edits = edit.(vars)
|
||||||
|
return Variant{S, T}(ref, edits)
|
||||||
|
end
|
||||||
|
|
||||||
reference(v::Variation) = v.ref
|
reference(v::Variation) = v.ref
|
||||||
edit(v::Variation) = v.edit
|
edit(v::Variation) = v.edit
|
||||||
mutation(v::Variation) = mutation(edit(v))
|
mutation(v::Variation) = mutation(edit(v))
|
||||||
|
|
|
@ -35,6 +35,13 @@ seq1 = ungap!(dna"--ATGCGTGTTAGCAAC--TTATCGCG")
|
||||||
seq2 = ungap!(dna"TGATGCGTGT-AGCAACACTTATAGCG")
|
seq2 = ungap!(dna"TGATGCGTGT-AGCAACACTTATAGCG")
|
||||||
var = Variant(align(seq1, seq2))
|
var = Variant(align(seq1, seq2))
|
||||||
|
|
||||||
|
@testset "VariantRoundtrip" begin
|
||||||
|
for v in variations(var)
|
||||||
|
@test v in var
|
||||||
|
@test v in Variant(seq2, [v])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
@testset "VariationPosition" begin
|
@testset "VariationPosition" begin
|
||||||
refseq = dna"ACAACTTTATCT"
|
refseq = dna"ACAACTTTATCT"
|
||||||
mutseq = dna"ACATCTTTATCT"
|
mutseq = dna"ACATCTTTATCT"
|
||||||
|
|
Loading…
Reference in a new issue