From: martinahansen Date: Thu, 22 Oct 2009 07:10:50 +0000 (+0000) Subject: KISS upgrade X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=7260deeebc3f36b1c923ab264f496655a556509c;p=biopieces.git KISS upgrade git-svn-id: http://biopieces.googlecode.com/svn/trunk@707 74ccb610-7750-0410-82ae-013aeee3265d --- diff --git a/code_perl/Maasha/KISS/IO.pm b/code_perl/Maasha/KISS/IO.pm index af36c80..7276f0a 100644 --- a/code_perl/Maasha/KISS/IO.pm +++ b/code_perl/Maasha/KISS/IO.pm @@ -32,6 +32,7 @@ use warnings; use strict; use Data::Dumper; use Maasha::Filesys; +use Maasha::SQL; use vars qw( @ISA @EXPORT ); @ISA = qw( Exporter ); @@ -139,6 +140,24 @@ sub kiss_entry_put } +sub kiss_sql_get +{ + my ( $dbh, # Database handle + $table, # Table name + $s_beg, # Subject begin + $s_end, # Subject end + ) = @_; + + my ( $sql, $entries ); + + $sql = "SELECT * FROM $table WHERE S_BEG >= $s_beg AND S_END <= $s_end"; + + $entries = Maasha::SQL::query_hashref_list( $dbh, $sql ); + + return wantarray ? @{ $entries } : $entries; +} + + sub kiss2biopiece { my ( $entry, # KISS entry diff --git a/code_perl/Maasha/KISS/Track.pm b/code_perl/Maasha/KISS/Track.pm index 7a8dfff..f6639ea 100644 --- a/code_perl/Maasha/KISS/Track.pm +++ b/code_perl/Maasha/KISS/Track.pm @@ -74,7 +74,7 @@ sub track_feature if ( $w >= 1 ) { - $x = sprintf( "%.0f", $entry->{ 'S_BEG' } * $factor ); + $x = sprintf( "%.0f", ( $entry->{ 'S_BEG' } - $beg ) * $factor ); for ( $y_step = 0; $y_step < @ladder; $y_step++ ) { diff --git a/www/cgi-bin/index.cgi b/www/cgi-bin/index.cgi index 3e8461b..b1827d4 100755 --- a/www/cgi-bin/index.cgi +++ b/www/cgi-bin/index.cgi @@ -28,12 +28,24 @@ use lib "/Users/maasha/biopieces/code_perl/"; use CGI; use Data::Dumper; use Maasha::Common; +use Maasha::Filesys; use Maasha::XHTML; +use Maasha::Biopieces; +use Maasha::KISS::IO; +use Maasha::KISS::Track; +use Maasha::KISS::Draw; -my ( $cgi, $script, @html ); +my ( $cgi, $database, $user, $password, $dbh, $script, @html ); $cgi = new CGI; +$database = 'S_aur_COL'; +$user = Maasha::Biopieces::biopiecesrc( "MYSQL_USER" ); +$password = Maasha::Biopieces::biopiecesrc( "MYSQL_PASSWORD" ); + +$dbh = Maasha::SQL::connect( $database, $user, $password ); + + $script = Maasha::Common::get_scriptname(); push @html, Maasha::XHTML::html_header( @@ -42,7 +54,7 @@ push @html, Maasha::XHTML::html_header( # css_file => "test.css", author => "Martin A. Hansen, mail\@maasha.dk", description => "Biopieces bacterial genome browser - KISS", - keywords => [ qw( KISS Biopieces genome browser bacterium bacteria prokaryote prokaryotes ) ], + keywords => [ qw( KISS Biopieces biopiece genome browser viewer bacterium bacteria prokaryote prokaryotes ) ], no_cache => 1, ); @@ -50,7 +62,7 @@ push @html, Maasha::XHTML::h1( txt => "KISS Genome Browser", class => "center" ) push @html, Maasha::XHTML::form_beg( action => $script, method => "get", enctype => "multipart/form-data" ); push @html, sec_navigate( $cgi ); -push @html, sec_browse(); +push @html, sec_browse( $cgi, $dbh ); push @html, Maasha::XHTML::form_end; push @html, Maasha::XHTML::body_end; @@ -102,11 +114,39 @@ sub sec_navigate sub sec_browse { - my ( @html ); + my ( $cgi, # CGI object + $dbh, # Database handle + ) = @_; + + # Returns a list. + + my ( $table, $def_start, $def_end, $entries, $features, $svg, $file, $fh, @html ); + + $table = 'Solexa'; + $def_start = nav_def_start( $cgi ); + $def_end = nav_def_end( $cgi ); + + $entries = Maasha::KISS::IO::kiss_sql_get( $dbh, $table, $def_start, $def_end ); + + Maasha::KISS::Track::entries_sort( $entries ); + + $features = Maasha::KISS::Track::track_feature( 1200, 50, $def_start, $def_end, $entries ); + + $file = "fisk.svg"; + + $fh = Maasha::Filesys::file_write_open( $file ); + + $svg = Maasha::KISS::Draw::svg_init( 800, 1200 ); + + Maasha::KISS::Draw::svg_frame( 800, 1200, $svg ); + Maasha::KISS::Draw::svg_track_feature( 800, 1200, $svg, $features, 'track id', 'green' ); + Maasha::KISS::Draw::svg_print( $svg, $fh ); + + close $fh; push @html, Maasha::XHTML::object( type => "image/svg+xml", # data => "/Users/maasha/test.svg", - data => "test.svg", + data => $file, name => "owMain", width => "1200", height => "800" ); @@ -251,6 +291,7 @@ sub nav_def_end else { $def_end = 2809422; + $def_end = 1000; } return $def_end; @@ -259,6 +300,10 @@ sub nav_def_end # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< +END +{ + Maasha::SQL::disconnect( $dbh ) if $dbh; +} __END__