Hi,
I'm trying to get the bases from a query that aligns to a specified location in the reference sequence.
For example, given the three alignments below,
I want to do something like (I'm using Bio::Perl and Bio:
B::Sam)
... which should output
I suppose this can be achieved by parsing the cigar string or the padded_alignment (($ref,$matches,$query)=$a->padded_alignment;), but was wondering if there is a function that does this already.
Thanks.
I'm trying to get the bases from a query that aligns to a specified location in the reference sequence.
For example, given the three alignments below,
Code:
12345678
Ref1 ACGTACGT
|||||| |
Qry1 ACGTA[COLOR="Red"]CT[/COLOR]T (Read is has a mismatch)
12345678
Ref1 ACGTACGT
| ||| ||
Qry2 A-GTA[COLOR="red"]GG[/COLOR]T (Read has a deletion and a mismatch)
1 2345678
Ref1 A-CGTACGT
| |||| ||
Qry3 AACGTA[COLOR="red"]AG[/COLOR]T (Read has an insertion and a mismatch)
B::Sam)Code:
my $start = 6;
my $end = 7;
$sam->fetch('Ref1',
sub
{
my $a = shift;
print $a->query->name,"\t";
print $a->[B][COLOR="DarkRed"]some_magical_function[/COLOR][/B]($start,$end),"\n";
});
Code:
Qry1 CT Qry2 GG Qry3 AG
Thanks.
Comment