Class: Bio::DB::Exonerate::Vulgar
- Inherits:
-
Object
- Object
- Bio::DB::Exonerate::Vulgar
- Defined in:
- lib/bio/db/exonerate.rb
Instance Attribute Summary collapse
-
#label ⇒ Object
readonly
Returns the value of attribute label.
-
#query_end ⇒ Object
readonly
Returns the value of attribute query_end.
-
#query_length ⇒ Object
readonly
Returns the value of attribute query_length.
-
#query_start ⇒ Object
readonly
Returns the value of attribute query_start.
-
#record ⇒ Object
readonly
Returns the value of attribute record.
-
#snp_in_gap ⇒ Object
readonly
Returns the value of attribute snp_in_gap.
-
#target_end ⇒ Object
readonly
Returns the value of attribute target_end.
-
#target_length ⇒ Object
readonly
Returns the value of attribute target_length.
-
#target_start ⇒ Object
readonly
Returns the value of attribute target_start.
Instance Method Summary collapse
-
#initialize(label, ql, tl, target_start, target_multiply, query_start, query_multiply, record) ⇒ Vulgar
constructor
A new instance of Vulgar.
- #query_id ⇒ Object
- #query_region ⇒ Object
- #target_flanking_region_from_position(position, flanking_size) ⇒ Object
- #target_id ⇒ Object
- #target_position_from_query(position) ⇒ Object
- #target_region ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(label, ql, tl, target_start, target_multiply, query_start, query_multiply, record) ⇒ Vulgar
Returns a new instance of Vulgar.
231 232 233 234 235 236 237 238 239 240 241 |
# File 'lib/bio/db/exonerate.rb', line 231 def initialize(label, ql, tl, target_start, target_multiply, query_start, query_multiply, record) @label = label @query_length = ql @target_length = tl @query_start = query_start @query_end = query_start + (query_multiply * query_length) @target_start = target_start @target_end = target_start + (target_multiply * target_length) @record = record @snp_in_gap = false end |
Instance Attribute Details
#label ⇒ Object (readonly)
Returns the value of attribute label.
230 231 232 |
# File 'lib/bio/db/exonerate.rb', line 230 def label @label end |
#query_end ⇒ Object (readonly)
Returns the value of attribute query_end.
230 231 232 |
# File 'lib/bio/db/exonerate.rb', line 230 def query_end @query_end end |
#query_length ⇒ Object (readonly)
Returns the value of attribute query_length.
230 231 232 |
# File 'lib/bio/db/exonerate.rb', line 230 def query_length @query_length end |
#query_start ⇒ Object (readonly)
Returns the value of attribute query_start.
230 231 232 |
# File 'lib/bio/db/exonerate.rb', line 230 def query_start @query_start end |
#record ⇒ Object (readonly)
Returns the value of attribute record.
230 231 232 |
# File 'lib/bio/db/exonerate.rb', line 230 def record @record end |
#snp_in_gap ⇒ Object (readonly)
Returns the value of attribute snp_in_gap.
230 231 232 |
# File 'lib/bio/db/exonerate.rb', line 230 def snp_in_gap @snp_in_gap end |
#target_end ⇒ Object (readonly)
Returns the value of attribute target_end.
230 231 232 |
# File 'lib/bio/db/exonerate.rb', line 230 def target_end @target_end end |
#target_length ⇒ Object (readonly)
Returns the value of attribute target_length.
230 231 232 |
# File 'lib/bio/db/exonerate.rb', line 230 def target_length @target_length end |
#target_start ⇒ Object (readonly)
Returns the value of attribute target_start.
230 231 232 |
# File 'lib/bio/db/exonerate.rb', line 230 def target_start @target_start end |
Instance Method Details
#query_id ⇒ Object
249 250 251 |
# File 'lib/bio/db/exonerate.rb', line 249 def query_id record.query_id end |
#query_region ⇒ Object
298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 |
# File 'lib/bio/db/exonerate.rb', line 298 def query_region reg = Bio::DB::Fasta::Region.new() reg.entry = query_id reg.orientation = record.query_strand if record.query_strand == :forward reg.start = @query_start + 1 reg.end = @query_end elsif record.query_strand == :reverse reg.start = @query_end + 1 reg.end = @query_start else raise ExonerateException.new(), "Ivalid query orientation #{@query_strand}" end reg end |
#target_flanking_region_from_position(position, flanking_size) ⇒ Object
257 258 259 260 261 262 263 264 265 266 267 268 |
# File 'lib/bio/db/exonerate.rb', line 257 def target_flanking_region_from_position(position, flanking_size) reg = reg = Bio::DB::Fasta::Region.new() reg.entry = target_id target_snp_pos = target_position_from_query(position) return nil if snp_in_gap reg.orientation = record.target_strand reg.start = target_snp_pos - flanking_size reg.end = target_snp_pos + flanking_size raise ExonerateException.new "Target Query out of bounds!" unless position.between?(query_start, query_end) reg end |
#target_id ⇒ Object
253 254 255 |
# File 'lib/bio/db/exonerate.rb', line 253 def target_id record.target_id end |
#target_position_from_query(position) ⇒ Object
270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 |
# File 'lib/bio/db/exonerate.rb', line 270 def target_position_from_query(position) raise ExonerateException.new(), "Position: #{position} not in range (#{query_start}-#{query_end}) #{self.to_s} " unless position.between?(query_start, query_end) or position.between?(query_end, query_start) offset = 0 ret = 0 if record.query_strand == :forward offset = position - query_start elsif record.query_strand == :reverse offset = query_start - position else raise ExonerateException.new(), "The strand is not forward or reverse (#{record.query_strand}) ! #{self.inspect}" end if record.target_strand == :forward ret = target_start + offset elsif record.target_strand == :reverse ret = target_start - offset + 1 else raise ExonerateException.new(), "The strand is not forward or reverse! #{self.inspect}" end #THis is in case the position is on a gap. if @target_length == 0 and label == :G @snp_in_gap = true ret = target_start end raise ExonerateException.new(), "Return position #{ret} outside block (#{target_start}-#{target_end}, #{self.inspect})" unless ret.between?(target_start, target_end) or ret.between?(target_end, target_start) ret end |
#target_region ⇒ Object
314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 |
# File 'lib/bio/db/exonerate.rb', line 314 def target_region reg = Bio::DB::Fasta::Region.new() reg.entry = target_id reg.orientation = record.target_strand if record.target_strand == :forward reg.start = @target_start + 1 reg.end = @target_end elsif record.target_strand == :reverse reg.start = @target_end + 1 reg.end = @target_start else raise ExonerateException.new(), "Ivalid target orientation #{@target_strand}" end reg end |
#to_s ⇒ Object
243 244 245 246 247 |
# File 'lib/bio/db/exonerate.rb', line 243 def to_s out = String.new out << @label.to_s << "\t" << @query_length.to_s << "\t" << @target_length.to_s << "\t" << @query_start.to_s << "\t" << @query_end.to_s << "\t" << @target_start.to_s << "\t" << @target_end.to_s out end |