[Bioperl-l] Getting 'features' from SearchIO?

Jason Stajich jason at bioperl.org
Mon May 11 11:38:14 EDT 2009

Dan -

There is nice documentation on the gmod website covering the gbrowse  
tutorial on the expected format of alignment features.   That is what  
you should probably be generating and loading with the  
bp_seqfeature_load script -- otherwise you need to be converting the  
HSPs into seqfeatures with the right associated information (i.e. the  
tag/value pairs that are in the 9th column) in order to have well  
structured data in the database.

There are boilerplate examples of how to visualize alignments on the  
Gbrowse tutorial website as well so I commend that as great starting  
place for GFF, data, conf files, and what kind of visualization you  
can obtain with the browser.

There is also some helper scripts, that do this for you like  
bp_search2gff. Just dumping the feature will take the query ( i  
believe) of the feature pair that is the HSP by default, so you will  
need to make some choices about what information you want.  You can  
get the individual features from the feature pair with $hsp->query  or  
$hsp->hit  which can also be passed to a GFF writer (or call $hsp->hit- 
 >gff_string).   Note that since the data storage is not structured in  
a GFF3 like-way this won't immediately produce well formed GFF3 for  
the 9th column.

Here's a script I use for some DNA to genome alignments, from FASTA  
output for example - it assumes 1 HSP per Hit as per what you get from  
SSEARCH but is a reasonable jumping off place.

There is also a wublast to gff converting script in that repository as  

On May 11, 2009, at 8:07 AM, Dan Bolser wrote:

> 2009/5/11 Dan Bolser <dan.bolser at gmail.com>:
>> Hi,
>> I am parsing a blasttable and extracting Bio::Search::HSP::GenericHSP
>> objects as a result. I read somewhere that HSP objects inherit  
>> Feature
>> objects... How can I get a 'standard' representation of the HSP as a
>> feature? Basically I'd like to simply load the blast results into a
>> feature database...
>> When I call feature methods on the HSP objects I just get blank or
>> undef results... I think this is because I'm trying to get at the
>> sequences existing (non existent) features, rather than get the HSP
>> object as a feature... If that makes sense... How can I confirm  
>> that I
>> have a feature object containing the details of the HSP?
>> I thought of trying to just pass the HSP object to the
>> Bio::DB::SeqFeature::Store, but I need to get that up and running
>> first (I'm looking into it). In the mean time I thought I'd ask if
>> this sounds like the right thing to do.
> Well it works... I am seeing things fill into the database as I call
> $db->store($p)
> 	or die "Couldn't store!";
> (I needed to upgrade bioperl to get Bio::DB::SeqFeature working).
> Here is my code;
> while(my $r = $s->next_result ){
>  print $r->query_name, "\n";
>  while(my $h = $r->next_hit){
>    print "\t", $h->name, "\n";
>    while(my $p = $h->next_hsp){
>      $db->store($p)
> 	or die "Couldn't store!";
>    }
>  }
> }
> How can I visualize the resulting set of HSPs? i.e.  If I point
> gbrowse at this location, will it automatically pick up the entry
> points and their features from the database? Or how much manual
> configuration will I need? Is there some boilerplate config I can use
> to visualize this?
> Cheers,
> Dan.
>> More generally I want to have features attached to sequences that are
>> themselves annotations of larger sequences (but with unknown
>> position). Is Bio::DB::SeqFeature::Store a way to go? I need to  
>> manage
>> various different bits of information coming from a sequencing
>> project, and I need a solution to the whole 'assembly life cycle
>> management' problem.
>> Thanks for any help,
>> Dan.
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/bioperl-l

Jason Stajich
jason at bioperl.org

More information about the Bioperl-l mailing list