lib/seqtrimnext/plugins/plugin_ab_adapters.rb in seqtrimnext-2.0.33 vs lib/seqtrimnext/plugins/plugin_ab_adapters.rb in seqtrimnext-2.0.35

- old
+ new

@@ -41,10 +41,22 @@ # puts blast_table_results.inspect return blast_table_results end + # filter hits that are far the extreme and do not have a valid length + def filter_hits(hits,end_pos) + hits.reverse_each do |hit| + if (hit.q_end < (end_pos-40)) && ((hit.q_end-hit.q_beg+1)<(@params.get_ab_adapter(hit.subject_id).length*0.80).to_i) + hits.delete(hit) + # puts "DELETE #{hit.inspect}" + # else + # puts "ACCEPTED #{hit.inspect}, >= #{(@params.get_ab_adapter(hit.subject_id).length*0.2).to_i}" + end + end + + end def exec_seq(seq,blast_query) if blast_query.query_id != seq.seq_name raise "Blast and seq names does not match, blast:#{blast_query.query_id} sn:#{seq.seq_name}" end @@ -60,12 +72,14 @@ #--------------------------------------------------------------------- # blast_table_results = blast.do_blast(seq.seq_fasta) #rise seq to adapterss executing over blast #BlastTableResult.new(res) - # puts blast.get_blast_cmd + # puts blast_query.inspect # puts blast_table_results.inspect + + filter_hits(blast_query.hits, seq.seq_fasta.length) adapters=[] # blast_table_results.querys.each do |query| # first round to save adapters without overlap merge_hits(blast_query.hits,adapters) # end @@ -74,9 +88,13 @@ adapters2=adapters # second round to save adapters without overlap adapters = [] merge_hits(adapters2,adapters) end until (adapters2.count == adapters.count) + # puts "MERGED" + # puts "="*50 + # adapters.each {|a| puts a.inspect} + max_to_end=@params.get_param('max_ab_to_end').to_i # type = 'ActionAbAdapter' actions=[] adapter_size=0