[Bioperl-l] how to create Graphics object from home-made SQL
table with parsed blast data?
Jan Aerts
jan.aerts at wur.nl
Fri Oct 29 06:01:53 EDT 2004
Hi Marcus,
I would start creating a GFF file based on your database, and visualize
that using either gbrowse (http://www.gmod.org/ggb/gbrowse.shtml) or a
custom script. A step-by-step procedure to write such a script using the
bioperl package is available at
http://bioperl.org/HOWTOs/Graphics-HOWTO/index.html.
jan.
On Fri, 2004-10-29 at 05:17, Marcus Claesson wrote:
> Hi there,
>
> My apologies if this already has been adressed in this list. I have a
> number of mysql tables with blast data that I parsed using Bio::SearchIO
> (see below). I now want to use that data to create graphics overviews in
> png-format with the Bio::Graphics module. I guess the normal way for
> doing this is by implementing Bio::SeqFeature to the
> Bio::Graphics::Panel class. However, all blast-outputs are already
> parsed and put into a table and I would like to use that format. Is
> there any way of using these tables instead of the Bio::SeqFeature
> module?
>
> Here is how it was parsed and put into the table:
>
> $in = new Bio::SearchIO(-format => 'blast',
> -file => 'blast_output.txt');
>
> $dbh->do("CREATE TABLE $table(format TEXT NOT NULL,sbj_name TEXT NOT
> NULL,sbj_count INTEGER,hsp_count INTEGER,hsp_length INTEGER,E_value
> DOUBLE PRECISION,score INTEGER,bits REAL,percent_id REAL,query_begin
> INTEGER,query_end INTEGER,sbj_length INTEGER,sbj_begin INTEGER,sbj_end
> INTEGER,frame CHAR(3),alignment TEXT)") unless ($add eq "yes");
> $sth = $dbh->prepare("INSERT INTO $table VALUES
> (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
> while($result = $in->next_result) {
> $sbj_count = 0;
> while($hit = $result->next_hit) {
> $sbj_count++;
> my $hsp_count = 0;
> my $sbj_name = $hit->name." ".$hit->description;
> $sbj_name =~ s/'/\\'/gi;
> my $sbj_length = $hit->length('query');
> while($hsp = $hit->next_hsp ) {
> $hsp_count++;
> if ($format eq "blast") {
> $frame_value = ($hsp->query->frame + 1) * $hsp->query->strand;
> } elsif ($format eq "fasta") {
> $frame_value = "+" if ($hsp->query->strand eq "1");
> $frame_value = "-" if ($hsp->query->strand eq "-1");
> }
> my $align = "Query -->\n".
> $hsp->query_string."\n".
> $hsp->homology_string."\n".
> $hsp->hit_string."\n".
> "Subject -->\n";
> my $evalue = $hsp->evalue;
> $evalue =~ s/^e/1e/gi;
> my $score = $hsp->score;
> my $bits = $hsp->bits;
> my $percent_id = $hsp->percent_identity;
> my $hsp_length = $hsp->length('total');
> my $query_begin = $hsp->query->start + $offset;
> my $query_end = $hsp->query->end + $offset;
> my $sbj_begin = $hsp->hit->start;
> my $sbj_end = $hsp->hit->end;
>
> $sth->execute($format,$sbj_name,$sbj_count,$hsp_count,$hsp_length,$evalue,$score,$bits,$percent_id,$query_begin,$query_end,$sbj_length,$sbj_begin,$sbj_end,$frame_value,$align);
> }
> }
>
>
> Many thanks in advance!
>
> Marcus
>
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at portal.open-bio.org
> http://portal.open-bio.org/mailman/listinfo/bioperl-l
More information about the Bioperl-l
mailing list