Class: GeneValidator::OutputFiles
- Inherits:
-
Object
- Object
- GeneValidator::OutputFiles
- Extended by:
- Forwardable
- Defined in:
- lib/genevalidator/output_files.rb
Overview
A Class for creating output files
Instance Method Summary collapse
-
#initialize ⇒ OutputFiles
constructor
A new instance of OutputFiles.
- #print_best_fasta ⇒ Object
- #write_csv ⇒ Object
- #write_html(overall_eval) ⇒ Object
- #write_json ⇒ Object
- #write_summary ⇒ Object
Constructor Details
#initialize ⇒ OutputFiles
Returns a new instance of OutputFiles.
15 16 17 18 19 20 21 |
# File 'lib/genevalidator/output_files.rb', line 15 def initialize() @config = config @opt = opt @dirs = dirs @overview = overview @json_data = @config[:json_output] end |
Instance Method Details
#print_best_fasta ⇒ Object
64 65 66 67 68 69 70 |
# File 'lib/genevalidator/output_files.rb', line 64 def print_best_fasta return unless @opt[:select_single_best] top_data = @json_data.max_by { |e| [e[:overall_score], e[:no_hits]] } query = GeneValidator.extract_input_fasta_sequence(top_data[:idx]) File.open(@dirs[:fasta_file], 'w') { |f| f.write(query) } puts query end |
#write_csv ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/genevalidator/output_files.rb', line 41 def write_csv return unless @opt[:output_formats].include? 'csv' File.open(@dirs[:csv_file], 'a') do |file| file.puts csv_header.join(',') @json_data.each do |data| short_def = data[:definition].split(' ')[0] line = [data[:idx], data[:overall_score], short_def, data[:nr_hits]] line += data[:validations].values.map { |e| e[:print] } .each { |e| e.gsub!(' ', ' ') } line.map { |e| e.gsub!(',', ' -') if e.is_a? String } file.puts line.join(',') end end end |
#write_html(overall_eval) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/genevalidator/output_files.rb', line 23 def write_html(overall_eval) return unless @opt[:output_formats].include? 'html' @all_html_fnames = all_html_filenames @json_data.each_slice(@config[:output_max]).with_index do |data, i| @json_data_section = data template_file = File.join(@dirs[:aux_dir], 'gv_results.slim') template_contents = File.open(template_file, 'r').read html_output = Slim::Template.new { template_contents }.render(self) File.open(@all_html_fnames[i], 'w') { |f| f.write(html_output) } end create_overview_json_file(overall_eval) end |
#write_json ⇒ Object
36 37 38 39 |
# File 'lib/genevalidator/output_files.rb', line 36 def write_json return unless @opt[:output_formats].include? 'json' File.open(@dirs[:json_file], 'w') { |f| f.write(@json_data.to_json) } end |
#write_summary ⇒ Object
56 57 58 59 60 61 62 |
# File 'lib/genevalidator/output_files.rb', line 56 def write_summary return unless @opt[:output_formats].include? 'summary' data = generate_summary_data File.open(@dirs[:summary_file], 'w') do |f| f.write data.map(&:to_csv).join end end |