class PluginLowComplexity
Public Class Methods
check_params(params)
click to toggle source
Returns an array with the errors due to parameters are missing
# File lib/seqtrimnext/plugins/plugin_low_complexity.rb, line 88 def self.check_params(params) errors=[] # # comment='Minimum percent of T bases in poly_a to be accepted' # default_value = 80 # params.check_param(errors,'poly_t_percent','Integer',default_value,comment) # return errors end
Public Instance Methods
do_blasts(seqs)
click to toggle source
do the dust masker instead of blast
# File lib/seqtrimnext/plugins/plugin_low_complexity.rb, line 17 def do_blasts(seqs) dust_masker=DustMasker.new() fastas=[] seqs.each do |seq| fastas.push ">"+seq.seq_name fastas.push seq.seq_fasta end # fastas=fastas.join("\n") found_dust = dust_masker.do_dust(fastas) # puts found_dust # puts blast_table_results.inspect return found_dust end
exec_seq(seq,blast_query)
click to toggle source
# File lib/seqtrimnext/plugins/plugin_low_complexity.rb, line 38 def exec_seq(seq,blast_query) dust_query=blast_query if dust_query.query_id != seq.seq_name raise "Blast and seq names does not match, blast:#{blast_query.query_id} sn:#{seq.seq_name}" end actions=[] # puts "Checking for dust: #{seq.seq_fasta}" # puts found_dust.to_json total_dust=0 if !dust_query.nil? # low_quals=seq.get_actions(ActionLowQuality) dust_query.dust.each do |dust| start=dust[0] stop=dust[1] dust_size=dust[1]-dust[0]+1 if (dust_size)>=MIN_DUST_SIZE # check if low complexity is inside a lowqual region if !seq.range_inside_action_type?(start,stop,ActionLowQuality) total_dust+=dust_size a = seq.new_action(start,stop,'ActionLowComplexity') # a.left_action=true actions.push a end # break end end end if !actions.empty? add_stats('low_complexity',total_dust) seq.add_file_tag(0, 'low_complexity', :both, 100) seq.add_actions(actions) end end