args = []
args << "scan_for_matches"
args << "-c" if comp
- args << "-p" if type == 'protein'
+ args << "-p" if type == :protein
args << "-n #{max_mis}" if max_mis
args << "-m #{max_hit}" if max_hit
args << @pat_file
def results_parse
results = Hash.new { |h, k| h[k] = [] }
- Fasta.open(@out_file, mode='r') do |ios|
+ Fasta.open(@out_file, 'r') do |ios|
ios.each do |entry|
if entry.seq_name =~ /([^:]+):\[(\d+),(\d+)\]/
id = $1.to_i
Biopieces.open(options[:stream_in], tmp_file) do |input, output|
Fasta.open(in_file, mode="w") do |fasta_io|
input.each_record do |record|
- if record.has_key? :SEQ_NAME
+ if record[:SEQ_NAME]
seq_name_hash[seq_name_count] = record[:SEQ_NAME]
record[:SEQ_NAME] = seq_name_count
seq_name_count += 1
Biopieces.open(tmp_file, options[:stream_out]) do |input, output|
input.each_record do |record|
- if record.has_key? :SEQ_NAME
+ if record[:SEQ_NAME]
key = record[:SEQ_NAME].to_i
record[:SEQ_NAME] = seq_name_hash[key]
if options[:inline]
- if results.has_key? key
+ if results[key]
results[key].each do |result|
record[:PATTERN] = options[:pattern]
record[:MATCH] = result.match