def iterate(lines, &block)
      first_line = lines.next rescue return
      if fasta? first_line
        fasta_iterator(first_line, lines, &block)
      else
        normal_iterator(first_line, lines, &block)
      end
    end
def iterate(lines, &block)
      first_line = lines.next rescue return
      if fasta? first_line
        fasta_iterator(first_line, lines, &block)
      else
        normal_iterator(first_line, lines, &block)
      end
    end
Splits the input lines into slices, based on the batch_size of the current
 command. Executes the given block for each of the batches.

 Supports both normal input and input in the fasta format.

 @input [Iterator] lines An iterator containing the input lines

 @input [lambda] block The code to execute on the slices