如何解决如何从BioAlignments.jl比对中检索比对区域的序列索引?
我想访问从BioAlignments.jl中的Julia对对函数返回的比对数据的索引,以了解在原始序列的上下文中比对发生的位置。
using BioAlignments
using BioSequences
scoremodel = AffineGapscoreModel(ednAFULL,gap_open=-5,gap_extend=-1);
my_alignment = pairalign(LocalAlignment(),dna"ATATTAGGTATTGATTATTGTACGCGGCCCGGC",dna"TTGATTATTGT",scoremodel)
alignment(my_alignment)
例如,这样的脚本将输出一个对齐对象,我可以通过score()函数从中访问得分。但是,我想知道在作为输入提供的原始序列中哪里发生了对齐,并且知道如何调用存储此索引的变量。在文档的任何地方似乎都找不到。
解决方法
虽然我不使用这些库,但在Julia中解决此类问题的方法之一是dump
这样的对象,结果人们可以找到所需信息的位置。
julia> dump(alignment(my_alignment))
PairwiseAlignment{LongSequence{DNAAlphabet{4}},LongSequence{DNAAlphabet{4}}}
a: AlignedSequence{LongSequence{DNAAlphabet{4}}}
seq: LongSequence{DNAAlphabet{4}}
data: Array{UInt64}((3,)) UInt64[0x8814881844188181,0x4422244242184881,0x0000000000000002]
part: UnitRange{Int64}
start: Int64 1
stop: Int64 33
shared: Bool false
aln: Alignment
anchors: Array{AlignmentAnchor}((2,))
1: AlignmentAnchor
seqpos: Int64 10
refpos: Int64 0
op: Operation OP_START
2: AlignmentAnchor
seqpos: Int64 21
refpos: Int64 11
op: Operation OP_SEQ_MATCH
firstref: Int64 1
lastref: Int64 11
b: LongSequence{DNAAlphabet{4}}
data: Array{UInt64}((1,)) UInt64[0x0000084881881488]
part: UnitRange{Int64}
start: Int64 1
stop: Int64 11
shared: Bool false
现在您可以看到所需的信息在哪里:
julia> alignment(my_alignment).a.aln.anchors
2-element Array{AlignmentAnchor,1}:
AlignmentAnchor(10,'0')
AlignmentAnchor(21,11,'=')
这种方法的缺点是数据结构通常不是库API的一部分,并且随着新的包实现而可能随时间变化。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。