Class Bio::Genscan::Report
In: lib/bio/appl/genscan/report.rb
Parent: Object

Bio::Genscan::Report - Class for Genscan report output.

Parser for the Genscan report output.

Methods

new  

Classes and Modules

Class Bio::Genscan::Report::Exon
Class Bio::Genscan::Report::Gene

External Aliases

query_name -> sequence_name
query_name -> name
predictions -> prediction
predictions -> genes

Attributes

date_run  [R]  Returns
gccontent  [R]  Returns C+G content of the query sequence.
genscan_version  [R]  Returns Genscan version.
isochore  [R]  Returns
length  [R]  Returns Length of the query sequence.
matrix  [R]  Returns
predictions  [R]  Returns Array of Bio::Genscan::Report::Gene.
query_name  [R]  Returns Name of query sequence.
time  [R]  Returns

Public Class methods

Bio::Genscan::Report.new(str)

Parse a Genscan report output string.

[Source]

     # File lib/bio/appl/genscan/report.rb, line 67
 67:     def initialize(report)
 68:       @predictions = []
 69:       @genscan_version = nil
 70:       @date_run   = nil
 71:       @time       = nil
 72:       @query_name = nil
 73:       @length     = nil
 74:       @gccontent  = nil
 75:       @isochore   = nil
 76:       @matrix     = nil
 77: 
 78:       report.each_line("\n") do |line|
 79:         case line
 80:         when /^GENSCAN/
 81:           parse_headline(line)
 82:         when /^Sequence/
 83:           parse_sequence(line)
 84:         when /^Parameter/
 85:           parse_parameter(line)
 86:         when /^Predicted genes/
 87:           break
 88:         end
 89:       end
 90: 
 91:       # rests
 92:       i = report.index(/^Predicted gene/)
 93:       j = report.index(/^Predicted peptide sequence/)
 94: 
 95:       # genes/exons
 96:       genes_region = report[i...j]
 97:       genes_region.each_line("\n") do |line|
 98:         if /Init|Intr|Term|PlyA|Prom|Sngl/ =~ line
 99:           gn, en = line.strip.split(" +")[0].split(/\./).map {|i| i.to_i }
100:           add_exon(gn, en, line)
101:         end
102:       end
103: 
104:       # sequences (peptide|CDS)
105:       sequence_region = report[j...report.size]
106:       sequence_region.gsub!(/^Predicted .+?:/, '')
107:       sequence_region.gsub!(/^\s*$/, '')
108:       sequence_region.split(Bio::FastaFormat::RS).each do |ff|
109:         add_seq(Bio::FastaFormat.new(ff))
110:       end
111:     end

[Validate]