]> git.donarmstrong.com Git - biopieces.git/commitdiff
KISS upgrade
authormartinahansen <martinahansen@74ccb610-7750-0410-82ae-013aeee3265d>
Thu, 22 Oct 2009 07:10:50 +0000 (07:10 +0000)
committermartinahansen <martinahansen@74ccb610-7750-0410-82ae-013aeee3265d>
Thu, 22 Oct 2009 07:10:50 +0000 (07:10 +0000)
git-svn-id: http://biopieces.googlecode.com/svn/trunk@707 74ccb610-7750-0410-82ae-013aeee3265d

code_perl/Maasha/KISS/IO.pm
code_perl/Maasha/KISS/Track.pm
www/cgi-bin/index.cgi

index af36c803d5896cccf82d9a00290c6651bf7ab23d..7276f0a85c1a642ce43355a1f558465265e1edb0 100644 (file)
@@ -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
index 7a8dfffd81b4f81e72d01ed921b94a25301f075d..f6639ea3a93e8e58c1d80a82cfc072256b966d87 100644 (file)
@@ -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++ )
             {
index 3e8461b2eb0fdc264ae07cd875b1f0740d59571b..b1827d4f56a3b5ee1c0c74a38f0c172543fd8940 100755 (executable)
@@ -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__