    :chromStart :float
    :chromEnd :float
    :position :position
-   :genes :gene})
+   :genes :gene
+   :thickStart :category
+   :thickEnd :category
+   :blockCount :category
+   :blockSizes :category
+   :blockStarts :category})
 
 (def ^:private probemap-default-columns
   [:name :genes :chrom :chromStart :chromEnd :strand])

            (filter (comp not match-set) columns))
      columns)))

(defn find-position-fields
  "Rewrite a list of column objects having a :header attribute,
  collating chrom position columns into position fields, having

   #"(?i)strand" :strand
   #"(?i)genes?" :genes
   #"(?i)name" :name
   #"(?i)id" :name
   #"(?i)thickStart" :thickStart
   #"(?i)thickEnd" :thickEnd
   #"(?i)blockCount" :blockCount
   #"(?i)blockSizes" :blockSizes
   #"(?i)blockStarts" :blockStarts})

; XXX refactor this function pattern. It appears three times.
(defn probemap-file
