[Bioperl-l] Error parsing blast results with blasttable
Jason Stajich
jason.stajich at duke.edu
Fri Jan 7 08:03:47 EST 2005
$hit->start is a convience function which first tiles the HSPs and then
gives you the smallest start.
If you look at the documentation for the method you see that not giving
it a type will give you start in the query and hit.
Usage : $sbjct->start( [seq_type] );
Purpose : Gets the start coordinate for the query, sbjct, or both
sequences
: in the BlastHit object. If there is more than one HSP, the
lowest start
: value of all HSPs is returned.
Example : $qbeg = $sbjct->start('query');
: $sbeg = $sbjct->start('hit');
: ($qbeg, $sbeg) = $sbjct->start();
Returns : scalar context: integer
: array context without args: list of two integers
(queryStart, sbjctStart)
: Array context can be "induced" by providing an argument of
'list' or 'array'.
Argument : In scalar context: seq_type = 'query' or 'hit' or 'sbjct'
(default = 'query')
('sbjct' is synonymous with 'hit')
Throws : n/a
Comments : This method requires that all HSPs be tiled. If there is
more than one
: HSP and they have not already been tiled, they will be
tiled first automatically..
: Remember that the start and end coordinates of all HSPs are
: normalized so that start < end. Strand information can be
: obtained by calling $hit->strand().
I don't know why you are seeing concatenated positions unless you are
somehow getting it in array context and then turning it into a string.
I really don't use this, if I want tiled HSPs I use WU-BLAST with the
-links and build compatible HSP groups.
What are you trying to get - the smallest hit or query start? Just the
start/end for HSPs?
If this is somehow a blasttable specific problem will try and see if
can figure out why.
-jason
On Jan 7, 2005, at 5:50 AM, michael watson ((IAH-C)) wrote:
> Hi
>
> Having done some more tests with this:
>
> $hit->start()
>
> Actually returns a string which is the concatenation of query start and
> subject end! (btw I'm using the "-m 8" option) - surely this isn't the
> desired option????
>
> If I change it to:
>
> $hit->start('query')
>
> Then I get the correct start back, but I still get the stack trace
> error.
>
> The two co-ordinate sets which cause the problem (3264-3268 and
> 3252-3268) are on adjacent lines in the file (3252-3268 is the next
> line
> after 3264-3268) and are to the SAME subject, ie they are two HSPs of
> the same hit (in theory) but they are to two VERY different parts of
> the
> query.
>
> I'm guessing the way blasttable handles multiple HSPs is causing the
> trouble.
>
> Mick
>
> -----Original Message-----
> From: Marc Logghe [mailto:Marc.Logghe at devgen.com]
> Sent: 07 January 2005 10:41
> To: michael watson (IAH-C); Bioperl List
> Subject: RE: [Bioperl-l] Error parsing blast results with blasttable
>
>
>> while (my $result = $searchio->next_result) {
>> while(my $hit = $result->next_hit) {
>> my $start = $hit->start;
>>
>> And it is that call to $hit->start that sets off the whole trace.
>>
>> Any ideas?
>
>
> Hi Mick,
> Have you tried one of these ?:
>
> my $start = $hit->start('sbjct'); # or 'query' or 'hit'. Latter is
> same
> as 'sbjct'
>
> or
>
> my $start = $hit->hsp->start('sbjct');
>
>
> I think in all cases it defaults to 'query'. So it should not crash but
> give you the start position of the query. I am afraid I can't explain
> the crash, sorry.
>
> Marc
>
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at portal.open-bio.org
> http://portal.open-bio.org/mailman/listinfo/bioperl-l
>
>
--
Jason Stajich
jason.stajich at duke.edu
http://www.duke.edu/~jes12/
More information about the Bioperl-l
mailing list