Class Bio::HMMER::Report::Hsp
In: lib/bio/appl/hmmer/report.rb
Parent: Object

Container class for HMMER search hsps.

Methods

External Aliases

accession -> target_id
score -> bit_score

Attributes

accession  [R] 
csline  [R]  CS Line
domain  [R] 
evalue  [R]  E-value
flatseq  [R] 
hmm_f  [R] 
hmm_ft  [R] 
hmm_t  [R] 
hmmseq  [R] 
midline  [R]  Alignment midline
query_frame  [R] 
rfline  [R]  RF Line
score  [R]  Score
seq_f  [R] 
seq_ft  [R] 
seq_t  [R] 
target_frame  [R] 

Public Class methods

Sets hsps.

[Source]

     # File lib/bio/appl/hmmer/report.rb, line 483
483:       def initialize(hsp_data, is_hmmsearch)
484:         @is_hmmsearch = is_hmmsearch
485: 
486:         @accession, @domain, seq_f, seq_t, @seq_ft, hmm_f, hmm_t, @hmm_ft,\
487:         score, evalue = hsp_data.split(' ')
488:         @seq_f = seq_f.to_i
489:         @seq_t = seq_t.to_i
490:         @hmm_f = hmm_f.to_i
491:         @hmm_t = hmm_t.to_i
492:         @score = score.to_f
493:         @evalue = evalue.to_f
494:         @hmmseq = ''
495:         @flatseq = ''
496:         @midline = ''
497:         @query_frame = 1
498:         @target_frame = 1
499:         # CS and RF lines are rarely used.
500:         @csline = nil
501:         @rfline = nil
502:       end

Public Instance methods

[Source]

     # File lib/bio/appl/hmmer/report.rb, line 550
550:       def query_from
551:         @is_hmmsearch ? @hmm_f   : @seq_f
552:       end

[Source]

     # File lib/bio/appl/hmmer/report.rb, line 530
530:       def query_seq
531:         @is_hmmsearch ? @hmmseq  : @flatseq
532:       end

[Source]

     # File lib/bio/appl/hmmer/report.rb, line 555
555:       def query_to
556:         @is_hmmsearch ? @hmm_t   : @seq_t
557:       end

[Source]

     # File lib/bio/appl/hmmer/report.rb, line 505
505:       def set_alignment(alignment)
506:         # First, split the input alignment into an array of
507:         # "alignment blocks." One block usually has three lines,
508:         # i.e. hmmseq, midline and flatseq. 
509:         # However, although infrequent, it can contain CS or RF lines.
510:         alignment.split(/ (?:\d+|-)\s*\n\n/).each do |blk|
511:           lines = blk.split(/\n/)   
512:           cstmp = (lines[0] =~ /^ {16}CS/) ? lines.shift : nil
513:           rftmp = (lines[0] =~ /^ {16}RF/) ? lines.shift : nil
514:           aln_width = lines[0][/\S+/].length
515:           @csline  = @csline.to_s + cstmp[19, aln_width] if cstmp
516:           @rfline  = @rfline.to_s + rftmp[19, aln_width] if rftmp
517:           @hmmseq  += lines[0][19, aln_width]
518:           @midline += lines[1][19, aln_width]
519:           @flatseq += lines[2][19, aln_width]
520:         end
521:         @csline  = @csline[3...-3] if @csline
522:         @rfline  = @rfline[3...-3] if @rfline
523:         @hmmseq  = @hmmseq[3...-3]
524:         @midline = @midline[3...-3]
525:         @flatseq = @flatseq[3...-3]
526:       end

[Source]

     # File lib/bio/appl/hmmer/report.rb, line 540
540:       def target_from
541:         @is_hmmsearch ? @seq_f   : @hmm_f
542:       end

[Source]

     # File lib/bio/appl/hmmer/report.rb, line 535
535:       def target_seq
536:         @is_hmmsearch ? @flatseq : @hmmseq
537:       end

[Source]

     # File lib/bio/appl/hmmer/report.rb, line 545
545:       def target_to
546:         @is_hmmsearch ? @seq_t   : @hmm_t
547:       end

[Validate]