]> git.donarmstrong.com Git - biopieces.git/blobdiff - code_perl/Maasha/GFF.pm
adding bzip2 support in ruby
[biopieces.git] / code_perl / Maasha / GFF.pm
index 67b062371c3eeb776704bada307c1334a04cae19..6201b09bb74683a8e5a5f57056d877b8a935b1e4 100644 (file)
@@ -91,6 +91,8 @@ sub gff_entry_get
 
         @fields = split /\t/, $line;
 
+        next if scalar @fields < 9;
+
         return wantarray ? @fields : \@fields;
     }
 }
@@ -140,11 +142,12 @@ sub gff2biopiece
     my ( %record, @atts, $att, $key, $val );
 
     %record = (
-        'Q_ID'   => $entry->[ seqid ],
+        'S_ID'   => $entry->[ seqid ],
         'SOURCE' => $entry->[ source ],
         'TYPE'   => $entry->[ type ],
-        'Q_BEG'  => $entry->[ start ],
-        'Q_END'  => $entry->[ end ],
+        'S_BEG'  => $entry->[ start ] - 1,
+        'S_END'  => $entry->[ end ]   - 1,
+        'S_LEN'  => $entry->[ end ]   - $entry->[ start ] + 1,
         'SCORE'  => $entry->[ score ],
         'STRAND' => $entry->[ strand ],
         'PHASE'  => $entry->[ phase ],
@@ -176,14 +179,19 @@ sub biopiece2gff
 
     my ( @entry, $key, $tag, @atts );
 
-    $entry[ seqid ]  = $record->{ 'Q_ID' };
-    $entry[ source ] = $record->{ 'SOURCE' };
-    $entry[ type ]   = $record->{ 'TYPE' };
-    $entry[ start ]  = $record->{ 'Q_BEG' };
-    $entry[ end ]    = $record->{ 'Q_END' };
+    $entry[ seqid ]  = $record->{ 'S_ID' };
+    $entry[ source ] = $record->{ 'SOURCE' } || $record->{ 'REC_TYPE' } || '.';
+    $entry[ type ]   = $record->{ 'TYPE' }   || '.';
+    $entry[ start ]  = $record->{ 'S_BEG' };
+    $entry[ end ]    = $record->{ 'S_END' };
     $entry[ score ]  = $record->{ 'SCORE' };
     $entry[ strand ] = $record->{ 'STRAND' };
-    $entry[ phase ]  = $record->{ 'PHASE' };
+    $entry[ phase ]  = $record->{ 'PHASE' } || '.';
+
+    if ( not exists $record->{ 'ATT_ID' } )
+    {
+        push @atts, "ID=$record->{ 'Q_ID' }" if exists $record->{ 'Q_ID' };
+    }
 
     foreach $key ( %{ $record } )
     {