class Bio::Genscan::Report
Bio::Genscan::Report
- Class for Genscan
report output.¶ ↑
Parser for the Genscan
report output.
Attributes
date_run[R]
Returns
gccontent[R]
Returns C+G content of the query sequence.
genes[R]
Returns Array of Bio::Genscan::Report::Gene
.
genscan_version[R]
Returns Genscan
version.
isochore[R]
Returns
length[R]
Returns Length of the query sequence.
matrix[R]
Returns
name[R]
Returns Name of query sequence.
prediction[R]
Returns Array of Bio::Genscan::Report::Gene
.
predictions[R]
Returns Array of Bio::Genscan::Report::Gene
.
query_name[R]
Returns Name of query sequence.
sequence_name[R]
Returns Name of query sequence.
time[R]
Returns
Public Class Methods
new(report)
click to toggle source
Parse a Genscan
report output string.
# File lib/bio/appl/genscan/report.rb 66 def initialize(report) 67 @predictions = [] 68 @genscan_version = nil 69 @date_run = nil 70 @time = nil 71 @query_name = nil 72 @length = nil 73 @gccontent = nil 74 @isochore = nil 75 @matrix = nil 76 77 report.each_line("\n") do |line| 78 case line 79 when /^GENSCAN/ 80 parse_headline(line) 81 when /^Sequence/ 82 parse_sequence(line) 83 when /^Parameter/ 84 parse_parameter(line) 85 when /^Predicted genes/ 86 break 87 end 88 end 89 90 # rests 91 i = report.index(/^Predicted gene/) 92 j = report.index(/^Predicted peptide sequence/) 93 94 # genes/exons 95 genes_region = report[i...j] 96 genes_region.each_line("\n") do |line| 97 if /Init|Intr|Term|PlyA|Prom|Sngl/ =~ line 98 gn, en = line.strip.split(" +")[0].split(/\./).map {|ii| ii.to_i } 99 add_exon(gn, en, line) 100 end 101 end 102 103 # sequences (peptide|CDS) 104 sequence_region = report[j...report.size] 105 sequence_region.gsub!(/^Predicted .+?:/, '') 106 sequence_region.gsub!(/^\s*$/, '') 107 sequence_region.split(Bio::FastaFormat::RS).each do |ff| 108 add_seq(Bio::FastaFormat.new(ff)) 109 end 110 end
Private Instance Methods
add_exon(gn, en, line)
click to toggle source
# File lib/bio/appl/genscan/report.rb 156 def add_exon(gn, en, line) 157 exon = Exon.parser(line) 158 case line 159 when /Prom/ 160 begin 161 @predictions[gn - 1].set_promoter(exon) 162 rescue NameError 163 add_gene(gn) 164 @predictions[gn - 1].set_promoter(exon) 165 end 166 when /PlyA/ 167 @predictions[gn - 1].set_polyA(exon) 168 else 169 begin 170 @predictions[gn - 1].exons[en - 1] = exon 171 rescue NameError 172 add_gene(gn) 173 @predictions[gn - 1].exons[en - 1] = exon 174 end 175 end 176 end
add_gene(gn)
click to toggle source
# File lib/bio/appl/genscan/report.rb 149 def add_gene(gn) 150 @predictions[gn - 1] = Gene.new(gn) 151 end
add_seq(seq)
click to toggle source
# File lib/bio/appl/genscan/report.rb 181 def add_seq(seq) 182 if /peptide_(\d+)/ =~ seq.definition 183 gn = $1.to_i 184 @predictions[gn - 1].set_aaseq(seq) 185 elsif /CDS_(\d+)/ =~ seq.definition 186 gn = $1.to_i 187 @predictions[gn - 1].set_naseq(seq) 188 end 189 end
parse_headline(line)
click to toggle source
Bio::Genscan::Report#parse_headline
# File lib/bio/appl/genscan/report.rb 114 def parse_headline(line) 115 tmp = line.chomp.split(/\t/) 116 @genscan_version = tmp[0].split(' ')[1] 117 @date_run = tmp[1].split(': ')[1] 118 @time = tmp[2].split(': ')[1] 119 end
parse_parameter(line)
click to toggle source
Bio::Genscan::Report#parse_parameter
# File lib/bio/appl/genscan/report.rb 138 def parse_parameter(line) 139 if /^Parameter matrix: (\w.+)$/ =~ line.chomp 140 @matrix = $1 141 else 142 raise "Error: [#{line}]" 143 end 144 end
parse_sequence(line)
click to toggle source
Bio::Genscan::Report#parse_sequence
# File lib/bio/appl/genscan/report.rb 124 def parse_sequence(line) 125 if /^Sequence (\S+) : (\d+) bp : (\d+[\.\d]+)% C\+G : Isochore (\d+.+?)$/ =~ line 126 @query_name = $1 127 @length = $2.to_i 128 @gccontent = $3.to_f 129 @isochore = $4 130 else 131 raise "Error: [#{line.inspect}]" 132 end 133 end