Class: GeneValidator::Validations
- Inherits:
-
Object
- Object
- GeneValidator::Validations
- Extended by:
- Forwardable
- Defined in:
- lib/genevalidator/validation.rb
Overview
Class that initalises a separate Validate.new() instance for each query.
Instance Method Summary collapse
-
#get_info_on_query_sequence(input_file = , seq_type = ) ⇒ Object
get info about the query.
-
#initialize ⇒ Validations
constructor
A new instance of Validations.
- #parse_next_iteration(iterator, prediction) ⇒ Object
- #run_validations(iterator) ⇒ Object
Constructor Details
#initialize ⇒ Validations
Returns a new instance of Validations.
24 25 26 27 28 |
# File 'lib/genevalidator/validation.rb', line 24 def initialize @opt = opt @config = config @query_idx = query_idx end |
Instance Method Details
#get_info_on_query_sequence(input_file = , seq_type = ) ⇒ Object
get info about the query
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/genevalidator/validation.rb', line 60 def get_info_on_query_sequence(input_file = @opt[:input_fasta_file], seq_type = @config[:type]) start_offset = @query_idx[@config[:idx] + 1] - @query_idx[@config[:idx]] end_offset = @query_idx[@config[:idx]] query = IO.binread(input_file, start_offset, end_offset) parse_query = query.scan(/>([^\n]*)\n([A-Za-z\n]*)/)[0] prediction = Query.new prediction.definition = parse_query[0].gsub("\n", '') prediction.identifier = prediction.definition.gsub(/ .*/, '') prediction.type = seq_type prediction.raw_sequence = parse_query[1].gsub("\n", '') prediction.length_protein = prediction.raw_sequence.length prediction.length_protein /= 3 if seq_type == :nucleotide prediction end |
#parse_next_iteration(iterator, prediction) ⇒ Object
77 78 79 80 81 82 83 84 |
# File 'lib/genevalidator/validation.rb', line 77 def parse_next_iteration(iterator, prediction) iterator.next if @config[:idx] < @config[:start_idx] if @opt[:blast_xml_file] BlastUtils.parse_next(iterator) elsif @opt[:blast_tabular_file] iterator.parse_next(prediction.identifier) end end |
#run_validations(iterator) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/genevalidator/validation.rb', line 32 def run_validations(iterator) p = Pool.new(@opt[:num_threads]) if @opt[:num_threads] > 1 while @config[:idx] + 1 < @query_idx.length prediction = get_info_on_query_sequence @config[:idx] += 1 blast_hits = parse_next_iteration(iterator, prediction) if blast_hits.nil? @config[:idx] -= 1 break end if @opt[:num_threads] == 1 (Validate.new).validate(prediction, blast_hits, @config[:idx]) else p.schedule(prediction, blast_hits, @config[:idx]) do |pred, hits, idx| (Validate.new).validate(pred, hits, idx) end end end ensure p.shutdown if @opt[:num_threads] > 1 end |