From: martinahansen Date: Wed, 2 May 2012 19:15:04 +0000 (+0000) Subject: finishing hmmer_seq X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=3310f5a500a9189a2d16212099379820520f2736;p=biopieces.git finishing hmmer_seq git-svn-id: http://biopieces.googlecode.com/svn/trunk@1815 74ccb610-7750-0410-82ae-013aeee3265d --- diff --git a/bp_bin/hmmer_seq b/bp_bin/hmmer_seq index 4cb9fa2..d1573c3 100755 --- a/bp_bin/hmmer_seq +++ b/bp_bin/hmmer_seq @@ -32,6 +32,35 @@ require 'pp' require 'maasha/biopieces' require 'maasha/fasta' +class Hash + def to_bp + record = self + bp = {} + bp[:REC_TYPE] = "HMMER" + bp[:S_ID] = record[:target_name] + bp[:S_AC] = record[:target_accession] + bp[:Q_ID] = record[:query_name] + bp[:Q_AC] = record[:query_accession] + bp[:E_VAL_SEQ] = record[:e_value_sequence] + bp[:SCORE_SEQ] = record[:score_sequence] + bp[:BIAS_SEQ] = record[:bias_sequence] + bp[:E_VAL_DOM] = record[:e_value_domain] + bp[:SCORE_DOM] = record[:score_domain] + bp[:BIAS_DOM] = record[:bias_domain] + bp[:EXP] = record[:exp] + bp[:REG] = record[:reg] + bp[:CLU] = record[:clu] + bp[:OV] = record[:ov] + bp[:ENV] = record[:env] + bp[:DOM] = record[:dom] + bp[:REP] = record[:rep] + bp[:INC] = record[:inc] + bp[:DESC] = record[:description_of_target] + + bp + end +end + class Hmmer def initialize(output_file, options) @output_file = output_file @@ -50,11 +79,46 @@ class Hmmer end def each + records = [] + File.open(@output_file, "r") do |ios| + + # target name accession query name accession E-value score bias E-value score bias exp reg + # clu ov env dom rep inc description of target ios.each_line do |line| - puts "line->#{line}" + next if line[0] == '#' + fields = line.chomp.split(" ") + + record = {} + record[:target_name] = fields[0] + record[:target_accession] = fields[1] + record[:query_name] = fields[2] + record[:query_accession] = fields[3] + record[:e_value_sequence] = fields[4].to_f + record[:score_sequence] = fields[5].to_f + record[:bias_sequence] = fields[6].to_f + record[:e_value_domain] = fields[7].to_f + record[:score_domain] = fields[8].to_f + record[:bias_domain] = fields[9].to_f + record[:exp] = fields[10].to_f + record[:reg] = fields[11].to_i + record[:clu] = fields[12].to_i + record[:ov] = fields[13].to_i + record[:env] = fields[14].to_i + record[:dom] = fields[15].to_i + record[:rep] = fields[16].to_i + record[:inc] = fields[17].to_i + record[:description_of_target] = fields[18] + + if block_given? + yield record + else + records << record + end end end + + return records if block_given? end private