1
0
Fork 0
mirror of https://github.com/MillironX/XAM.jl.git synced 2024-11-23 02:09:55 +00:00

Merge pull request #57 from BioJulia/release/0.3.1

Release v0.3.1
This commit is contained in:
Ciarán O'Mara 2022-10-14 22:09:50 +11:00 committed by GitHub
commit 22f939ffbe
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 23 additions and 32 deletions

View file

@ -7,7 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [0.3.0] ## [0.3.1]
### Changed
- Upgraded to BioAlignments v3 ([#55](https://github.com/BioJulia/XAM.jl/pull/55))
## [0.3.0] - 2022-10-10
## Added ## Added
@ -23,5 +29,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- `BAM.Record` layout now matches the BAM specs ([#26](https://github.com/BioJulia/XAM.jl/pull/26)) - `BAM.Record` layout now matches the BAM specs ([#26](https://github.com/BioJulia/XAM.jl/pull/26))
[Unreleased]: https://github.com/BioJulia/XAM.jl/compare/v0.3.0...HEAD [Unreleased]: https://github.com/BioJulia/XAM.jl/compare/v0.3.1...HEAD
[0.3.1]: https://github.com/BioJulia/XAM.jl/compare/v0.3.0...v0.3.1
[0.3.0]: https://github.com/BioJulia/XAM.jl/compare/v0.2.8...v0.3.0 [0.3.0]: https://github.com/BioJulia/XAM.jl/compare/v0.2.8...v0.3.0

View file

@ -1,7 +1,7 @@
name = "XAM" name = "XAM"
uuid = "d759349c-bcba-11e9-07c2-5b90f8f05f7c" uuid = "d759349c-bcba-11e9-07c2-5b90f8f05f7c"
authors = ["Kenta Sato <bicycle1885@gmail.com>", "Ben J. Ward <ward9250@gmail.com>", "Ciarán O'Mara <Ciaran.OMara@utas.edu.au>"] authors = ["Kenta Sato <bicycle1885@gmail.com>", "Ben J. Ward <ward9250@gmail.com>", "Ciarán O'Mara <Ciaran.OMara@utas.edu.au>"]
version = "0.3.0" version = "0.3.1"
[deps] [deps]
Automa = "67c07d97-cdcb-5c2c-af73-a7f9c32a568b" Automa = "67c07d97-cdcb-5c2c-af73-a7f9c32a568b"
@ -17,7 +17,7 @@ TranscodingStreams = "3bb67fe8-82b1-5028-8e26-92a6c54297fa"
[compat] [compat]
Automa = "0.7, 0.8" Automa = "0.7, 0.8"
BGZFStreams = "0.3.1" BGZFStreams = "0.3.1"
BioAlignments = "2.2" BioAlignments = "3"
BioGenerics = "0.1" BioGenerics = "0.1"
BioSequences = "3" BioSequences = "3"
FormatSpecimens = "1.1" FormatSpecimens = "1.1"

View file

@ -430,28 +430,12 @@ end
Get the alignment of `record`. Get the alignment of `record`.
""" """
function alignment(record::Record)::BioAlignments.Alignment function alignment(record::Record)::BioAlignments.Alignment
checkfilled(record) if ismapped(record)
if !ismapped(record) return BioAlignments.Alignment(cigar(record), 1, position(record))
end
return BioAlignments.Alignment(BioAlignments.AlignmentAnchor[]) return BioAlignments.Alignment(BioAlignments.AlignmentAnchor[])
end end
seqpos = 0
refpos = position(record) - 1
anchors = [BioAlignments.AlignmentAnchor(seqpos, refpos, BioAlignments.OP_START)]
for (op, len) in zip(cigar_rle(record)...)
if BioAlignments.ismatchop(op)
seqpos += len
refpos += len
elseif BioAlignments.isinsertop(op)
seqpos += len
elseif BioAlignments.isdeleteop(op)
refpos += len
else
error("operation $(op) is not supported")
end
push!(anchors, BioAlignments.AlignmentAnchor(seqpos, refpos, op))
end
return BioAlignments.Alignment(anchors)
end
function hasalignment(record::Record) function hasalignment(record::Record)
return ismapped(record) return ismapped(record)

View file

@ -79,10 +79,10 @@
@test BAM.flag(record) === UInt16(16) @test BAM.flag(record) === UInt16(16)
@test BAM.cigar(record) == "27M1D73M" @test BAM.cigar(record) == "27M1D73M"
@test BAM.alignment(record) == Alignment([ @test BAM.alignment(record) == Alignment([
AlignmentAnchor( 0, 1, OP_START), AlignmentAnchor( 0, 1, 0, OP_START),
AlignmentAnchor( 27, 28, OP_MATCH), AlignmentAnchor( 27, 28, 27, OP_MATCH),
AlignmentAnchor( 27, 29, OP_DELETE), AlignmentAnchor( 27, 29, 28, OP_DELETE),
AlignmentAnchor(100, 102, OP_MATCH)]) AlignmentAnchor(100, 102, 101, OP_MATCH)])
@test record["XG"] == 1 @test record["XG"] == 1
@test record["XM"] == 5 @test record["XM"] == 5
@test record["XN"] == 0 @test record["XN"] == 0

View file

@ -104,10 +104,10 @@
@test SAM.flag(record) == 16 @test SAM.flag(record) == 16
@test SAM.cigar(record) == "27M1D73M" @test SAM.cigar(record) == "27M1D73M"
@test SAM.alignment(record) == Alignment([ @test SAM.alignment(record) == Alignment([
AlignmentAnchor( 0, 1, OP_START), AlignmentAnchor( 0, 1, 0, OP_START),
AlignmentAnchor( 27, 28, OP_MATCH), AlignmentAnchor( 27, 28, 27, OP_MATCH),
AlignmentAnchor( 27, 29, OP_DELETE), AlignmentAnchor( 27, 29, 28, OP_DELETE),
AlignmentAnchor(100, 102, OP_MATCH)]) AlignmentAnchor(100, 102, 101, OP_MATCH)])
@test record["XG"] == 1 @test record["XG"] == 1
@test record["XM"] == 5 @test record["XM"] == 5
@test record["XN"] == 0 @test record["XN"] == 0