class PluginRemAditArtifacts

Inherit: Plugin

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_old/plugin_rem_adit_artifacts.rb, line 211
  def self.check_params(params)
    errors=[]
    
    
    
#    if !params.exists?('ta')
#      errors.push " The param <ta> doesn't exist"
#    end
    
#    if !params.exists?('poly_at_length')
#      errors.push " The param <poly_at_length> doesn't exist"
#    end
    

    
    return errors
  end

Public Instance Methods

exec_seq(seq,blast_query) click to toggle source
# File lib/seqtrimnext/plugins_old/plugin_rem_adit_artifacts.rb, line 17
def exec_seq(seq,blast_query)
     
  $LOG.debug "[#{self.class.to_s}, seq: #{seq.seq_name}]: removing artifacts into the sequence"    
  seq2 = seq.seq_fasta    
  first = 0
  last = seq2.size-1    
  old_first=first
  old_last=last
    

  while (seq2 =~ /^(GCGGGG|CCCCGC)/i)
    first += 6
    seq2.slice!(0..5)
  end
  
  
  while (seq2 =~ /(GCGGGG|CCCCGC)$/i)
    last -= 6
    seq2.slice!(seq2.size-1-5..seq2.size-1)
    
  end
 
  
  #is_forward, is_cDNA,
  #TrimExtremeNXs(first,last)
  is_forward = @params.get_param('is_forward')=='true'
  is_cDNA = @params.get_param('is_cDNA')=='true'
   
  previous_first,previous_last =0,0
  
  until ((previous_first == first) && (previous_last == last))
    previous_first,previous_last = first, last      
  
    if (is_cDNA)
      if (is_forward)
         
        nTs = 0
        nTs = $1.length if (seq2 =~ /^(T+)/i) 
        
        if (nTs > 3)
          seq2.slice!(0..nTs -1)            
          first += nTs #-1
         
        end
        
        nAs = 0
        nAs = $1.length if (seq2 =~ /(A+)$/i)
      
        if (nAs > 3)            
          seq2.slice!(seq2.size - nAs..seq2.size - 1)
          last -= nAs
          
        end
      else #si es backward
         
        nTs = 0
        nTs = $1.length if (seq2 =~ /(T+)$/i) 
        
        if (nTs > 3)            
          seq2.slice!(seq2.size-nTs..seq2.size-1)
          last -= nTs
          
        end
  
        nAs = 0
        nAs = $1.length if (seq2 =~ /^(A+)/i)
        
        if (nAs > 3)            
          seq2.slice!(0..nAs -1)
          first += nAs
        
        end
      end    
    end
  end 
  
    
  if (((first>=0) && (first>old_first)) || ((last>=0) && (last<old_last)))
    type='ActionRemAditArtifacts'           
    actions = []          
    # seq.add_action(first,last,type)
    a=seq.new_action(first,last,type) 
    actions.push a
    seq.add_actions(actions)    
  end
 
  
end
execute_old(seq) click to toggle source
# File lib/seqtrimnext/plugins_old/plugin_rem_adit_artifacts.rb, line 107
def execute_old(seq)
  seq2 = seq.seq_fasta   
  #seq2 = 'dGCGGGG'
  first = 0
  last = seq2.size-1    
  old_first=first
  old_last=last
    
  # puts '1 '+seq2
  # puts 'POS '+first.to_s
  # puts 'POS '+last.to_s
  while (seq2 =~ /^(GCGGGG|CCCCGC)/i)
    first += 6
    seq2.slice!(0..5)
   # puts '2 '+seq2
   # already = true
  end
  
  
  while (seq2 =~ /(GCGGGG|CCCCGC)$/i)
    last -= 6
    seq2.slice!(seq2.size-1-5..seq2.size-1)
    # puts '3 '+seq2
   # already = true
  end
 
  
  #is_forward, is_cDNA,
  #TrimExtremeNXs(first,last)
  is_forward = @params.get_param('is_forward')
  is_cDNA = @params.get_param('is_cDNA')
   # puts '4 '+seq2
   previous_first,previous_last =0,0
  
  until ((previous_first == first) && (previous_last == last))
    previous_first,previous_last = first, last
    # puts 'POS5-F '+first.to_s
    # puts 'POS5-L '+last.to_s
  
    if (is_cDNA)
      if (is_forward)
         # puts '5 '+seq2
        nTs = 0
        nTs = $1.length if (seq2 =~ /^(T+)/i) 
        if (nTs > 3)
          seq2.slice!(0..nTs -1)
           # puts '6 '+seq2
          first += nTs #-1
          # puts 'POS6-F '+first.to_s
        end
        nAs = 0
        nAs = $1.length if (seq2 =~ /(A+)$/i)
        # puts '6-7 '+seq2 + nAs.to_s
        if (nAs > 3)
          # puts '7 '+seq2
          seq2.slice!(seq2.size - nAs..seq2.size - 1)
          last -= nAs#seq2.size-nAs-2
          # puts 'POS7-L '+last.to_s
        end
      else #si es backward
         # puts '5b '+seq2
        nTs = 0
        nTs = $1.length if (seq2 =~ /(T+)$/i) 
        if (nTs > 3)
           # puts '6b '+seq2
          seq2.slice!(seq2.size-nTs..seq2.size-1)
          last -= nTs#seq2.size-nTs -2
          # puts 'POS6b-L '+last.to_s
        end
  
        nAs = 0
        nAs = $1.length if (seq2 =~ /^(A+)/i) 
        if (nAs > 3)
           # puts '7b '+seq2
          seq2.slice!(0..nAs -1)
          first += nAs#nAs -1
          # puts 'POS7b-f '+first.to_s
        end
      end    
    end
  end 
  
     #first -= 1 if (old_first!= first)
      #last += 1 if (old_last!= last)
  
  # puts 'POS7-8 '+first.to_s
  # puts 'POS7-8 '+last.to_s
    
  if (((first>=0) && (first>old_first)) || ((last>=0) && (last<old_last)))
    type='ActionRemAditArtifacts'
          
     # puts '8 '+seq2
    seq.add_action(first,last,type)    
  end
   # puts '9 '+seq2
  
end