# Top level module / namespace. module NpSearch # Adapted from GeneValidator's Query Class.. # A class to hold sequence data class Sequence DI_NP_CLV = 'KR|KK|RR'.freeze MONO_NP_CLV = '[KRH]..R|[KRH]....R|[KRH]......R'.freeze attr_reader :id attr_reader :defline attr_reader :signalp attr_reader :seq attr_reader :html_seq attr_reader :translated_frame attr_accessor :score attr_accessor :potential_cleaved_nps def initialize(entry, sp, frame = nil) @id = entry.entry_id @defline = entry.definition sp_cleavage_site_idx = sp[:ymax_pos].to_i - 1 @signalp = sp[:orf][0..(sp_cleavage_site_idx - 1)] @seq = sp[:orf][sp_cleavage_site_idx..-1] @html_seq = format_seq_for_html @translated_frame = frame @score = 0 @potential_cleaved_nps = nil end def format_seq_for_html seq = @seq.gsub(/C/, 'C') seq.gsub!(/#{DI_NP_CLV}/i, '\0') seq.gsub!(/#{MONO_NP_CLV}/i, '\0::NP_CLV::') # so that we can target 'R' seq.gsub!('R::NP_CLV::', 'R') seq.gsub!('G', 'G') "#{@signalp}#{seq}" end end end