Module: Bix::Blast

Defined in:
lib/bix/blast.rb

Defined Under Namespace

Classes: Hit, QueryHits

Class Method Summary collapse

Class Method Details

.get_all_query_hits(io, pref_min_aln_len = 0) ⇒ Object



66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/bix/blast.rb', line 66

def self.get_all_query_hits(io, pref_min_aln_len=0)
  hits_by_query = {}

  # Read all blast hits into memory, group them by query name
  for line in io
    next if line[0] == '#'
    h = Hit.new(line)
    hits_by_query[h.query] ||= []
    hits_by_query[h.query] << h
  end

  # Build vector of QueryHits objects
  query_hits = []

  for query, hits in hits_by_query
    query_hits << QueryHits.new(hits, pref_min_aln_len)
  end

  return query_hits
end