]> git.donarmstrong.com Git - biopieces.git/blobdiff - code_perl/Maasha/UCSC.pm
added format to compute
[biopieces.git] / code_perl / Maasha / UCSC.pm
index e4c275ae720d3f32baf7288a050c21c3a8e93c4f..5c188fd1ffbaa800cf5dd42cb8238297b4c0728d 100644 (file)
@@ -28,6 +28,7 @@ package Maasha::UCSC;
 # >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
 
+use warnings;
 use strict;
 use vars qw ( @ISA @EXPORT );
 
@@ -683,192 +684,6 @@ CREATE TABLE $table (
 }
 
 
-# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> PSL format <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-
-
-sub psl_get_entry
-{
-    # Martin A. Hansen, August 2008.
-
-    # Reads PSL next entry from a PSL file and returns a record.
-
-    my ( $fh,   # file handle of PSL filefull path to PSL file
-       ) = @_;
-
-    # Returns hashref.
-
-    my ( $line, @fields, %record );
-
-    while ( $line = <$fh> )
-    {
-        chomp $line;
-
-        @fields = split "\t", $line;
-
-        if ( scalar @fields == 21 )
-        {
-            %record = (
-                REC_TYPE    => "PSL",
-                MATCHES     => $fields[ 0 ],
-                MISMATCHES  => $fields[ 1 ],
-                REPMATCHES  => $fields[ 2 ],
-                NCOUNT      => $fields[ 3 ],
-                QNUMINSERT  => $fields[ 4 ],
-                QBASEINSERT => $fields[ 5 ],
-                SNUMINSERT  => $fields[ 6 ],
-                SBASEINSERT => $fields[ 7 ],
-                STRAND      => $fields[ 8 ],
-                Q_ID        => $fields[ 9 ],
-                Q_LEN       => $fields[ 10 ],
-                Q_BEG       => $fields[ 11 ],
-                Q_END       => $fields[ 12 ] - 1,
-                S_ID        => $fields[ 13 ],
-                S_LEN       => $fields[ 14 ],
-                S_BEG       => $fields[ 15 ],
-                S_END       => $fields[ 16 ] - 1,
-                BLOCK_COUNT => $fields[ 17 ],
-                BLOCK_LENS  => $fields[ 18 ],
-                Q_BEGS      => $fields[ 19 ],
-                S_BEGS      => $fields[ 20 ],
-            );
-
-            $record{ "SCORE" } = $record{ "MATCHES" } + int( $record{ "REPMATCHES" } / 2 ) - $record{ "MISMATCHES" } - $record{ "QNUMINSERT" } - $record{ "SNUMINSERT" };
-            $record{ "Q_SPAN" } = $fields[ 12 ] - $fields[ 11 ];
-            $record{ "S_SPAN" } = $fields[ 16 ] - $fields[ 15 ];
-    
-            return wantarray ? %record : \%record;
-        }
-    }
-
-    return undef;
-}
-
-
-sub psl_get_entries
-{
-    # Martin A. Hansen, February 2008.
-
-    # Reads PSL entries and returns a list of records.
-
-    my ( $path,   # full path to PSL file
-       ) = @_;
-
-    # Returns hashref.
-
-    my ( $fh, @lines, @fields, $i, %record, @records );
-
-    $fh = Maasha::Common::read_open( $path );
-
-    @lines = <$fh>;
-
-    close $fh;
-
-    chomp @lines;
-
-    for ( $i = 5; $i < @lines; $i++ )
-    {
-        @fields = split "\t", $lines[ $i ];
-
-        Maasha::Common::error( qq(Bad PSL format in file "$path") ) if not @fields == 21;
-
-        undef %record;
-
-        %record = (
-            REC_TYPE    => "PSL",
-            MATCHES     => $fields[ 0 ],
-            MISMATCHES  => $fields[ 1 ],
-            REPMATCHES  => $fields[ 2 ],
-            NCOUNT      => $fields[ 3 ],
-            QNUMINSERT  => $fields[ 4 ],
-            QBASEINSERT => $fields[ 5 ],
-            SNUMINSERT  => $fields[ 6 ],
-            SBASEINSERT => $fields[ 7 ],
-            STRAND      => $fields[ 8 ],
-            Q_ID        => $fields[ 9 ],
-            Q_LEN       => $fields[ 10 ],
-            Q_BEG       => $fields[ 11 ],
-            Q_END       => $fields[ 12 ] - 1,
-            S_ID        => $fields[ 13 ],
-            S_LEN       => $fields[ 14 ],
-            S_BEG       => $fields[ 15 ],
-            S_END       => $fields[ 16 ] - 1,
-            BLOCK_COUNT => $fields[ 17 ],
-            BLOCK_LENS  => $fields[ 18 ],
-            Q_BEGS      => $fields[ 19 ],
-            S_BEGS      => $fields[ 20 ],
-        );
-
-        $record{ "SCORE" } = $record{ "MATCHES" } + int( $record{ "REPMATCHES" } / 2 ) - $record{ "MISMATCHES" } - $record{ "QNUMINSERT" } - $record{ "SNUMINSERT" };
-    
-        push @records, { %record };
-    }
-
-    return wantarray ? @records : \@records;
-}
-
-
-sub psl_put_header
-{
-    # Martin A. Hansen, September 2007.
-
-    # Write a PSL header to file.
-
-    my ( $fh,  # file handle  - OPTIONAL
-       ) = @_;
-
-    # Returns nothing.
-
-    $fh = \*STDOUT if not $fh;
-
-    print $fh qq(psLayout version 3
-match   mis-    rep.    N's     Q gap   Q gap   T gap   T gap   strand  Q               Q       Q       Q       T               T       T       T       block   blockSizes      qStart        match   match           count   bases   count   bases           name            size    start   end     name            size    start   end     count
---------------------------------------------------------------------------------------------------------------------------------------------------------------- 
-);
-}
-
-
-sub psl_put_entry
-{
-    # Martin A. Hansen, September 2007.
-
-    # Write a PSL entry to file.
-
-    my ( $record,       # hashref
-         $fh,           # file handle  -  OPTIONAL
-       ) = @_;
-
-    # Returns nothing.
-
-    $fh = \*STDOUT if not $fh;
-
-    my @output;
-
-    push @output, $record->{ "MATCHES" };
-    push @output, $record->{ "MISMATCHES" };
-    push @output, $record->{ "REPMATCHES" };
-    push @output, $record->{ "NCOUNT" };
-    push @output, $record->{ "QNUMINSERT" };
-    push @output, $record->{ "QBASEINSERT" };
-    push @output, $record->{ "SNUMINSERT" };
-    push @output, $record->{ "SBASEINSERT" };
-    push @output, $record->{ "STRAND" };
-    push @output, $record->{ "Q_ID" };
-    push @output, $record->{ "Q_LEN" };
-    push @output, $record->{ "Q_BEG" };
-    push @output, $record->{ "Q_END" } + 1;
-    push @output, $record->{ "S_ID" };
-    push @output, $record->{ "S_LEN" };
-    push @output, $record->{ "S_BEG" };
-    push @output, $record->{ "S_END" } + 1;
-    push @output, $record->{ "BLOCK_COUNT" };
-    push @output, $record->{ "BLOCK_LENS" };
-    push @output, $record->{ "Q_BEGS" };
-    push @output, $record->{ "S_BEGS" };
-
-    print $fh join( "\t", @output ), "\n";
-}
-
-
 sub psl_upload_to_ucsc
 {
     # Martin A. Hansen, September 2007.
@@ -1340,6 +1155,11 @@ sub phastcons_parse_entry
     # Given a PhastCons entry converts this to a
     # list of super blocks.
 
+#    $options->{ "min" }       ||= 10;
+#    $options->{ "dist" }      ||= 25;
+#    $options->{ "threshold" } ||= 0.8;
+#    $options->{ "gap" }       ||= 5;
+
     my ( $lines,   # list of lines
          $args,    # argument hash
        ) = @_;
@@ -1475,7 +1295,7 @@ sub phastcons_normalize
 
     # Normalizes a list of lists with PhastCons scores,
     # in such a way that each list contains the same number
-    # or PhastCons scores.
+    # of PhastCons scores.
 
     my ( $AoA,    # AoA with PhastCons scores
        ) = @_;
@@ -1539,7 +1359,7 @@ sub phastcons_list_inflate
         # splice @{ $list }, $pos, 0, "X";
     }
 
-    die qq(ERROR: bad inflate\n) if scalar @{ $list } != $len + $diff;
+    die qq(ERROR: Bad inflate\n) if scalar @{ $list } != $len + $diff;
 }
 
 
@@ -1569,7 +1389,7 @@ sub phastcons_list_deflate
         splice @{ $list }, $pos, 1;
     }
 
-    die qq(ERROR: bad deflate\n) if scalar @{ $list } != $len - $diff;
+    die qq(ERROR: Dad deflate\n) if scalar @{ $list } != $len - $diff;
 }
 
 
@@ -1762,9 +1582,13 @@ sub ucsc_get_user
 
     # Returns a string.
 
-    my ( $fh, $line, $user );
+    my ( $file, $fh, $line, $user );
 
-    $fh = Maasha::Common::read_open( "$ENV{ 'HOME' }/.hg.conf" );
+    $file = "$ENV{ 'HOME' }/.hg.conf";
+
+    return if not -f $file;
+
+    $fh = Maasha::Common::read_open( $file );
 
     while ( $line = <$fh> )
     {
@@ -1793,9 +1617,13 @@ sub ucsc_get_password
 
     # Returns a string.
 
-    my ( $fh, $line, $password );
+    my ( $file, $fh, $line, $password );
+
+    $file = "$ENV{ 'HOME' }/.hg.conf";
+
+    return if not -f $file;
 
-    $fh = Maasha::Common::read_open( "$ENV{ 'HOME' }/.hg.conf" );
+    $fh = Maasha::Common::read_open( $file );
 
     while ( $line = <$fh> )
     {