    :mutation-probability 0.09
    :crossover-probability 0.81
    :tournament-size 10
-   :node-selection-method :size-tournament
-   :node-selection-tournament-size 2
+   :node-selection-method :uniform
    :report-simplifications 0
    :final-report-simplifications 1000
    :use-rmse true

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Define instructions and fitness cases

;; I want x0 through x240 to be instructions that, when executed, push
;; the float from that column onto the float stack.
(doseq [[numb symb] (map #(vector % (symbol (str "x" %))) (range 241))]
  (eval `(define-registered ~symb (fn [state#] (push-item (stack-ref :auxiliary ~numb state#) :float state#)))))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Main call

;;;; The parameters used in the paper mentioned at the top are:
;:population-size 500
;:max-generations 100
;:mutation-probability 0.09
;:crossover-probability 0.81
;;:replication-rate 0.1 ;implicit
;:tournament-size 10
;:node-selection-method :uniform
;;:max-depth 17 ;tree GP param
;;:max-dept-of-mutation-code 6 ;tree GP param

(def argmap
  {:error-function (partial bioavailability-error-function :train)
   :atom-generators bioavailability-atom-generators
