    #"(?i)strand" :strand
    #"(?i)genes?" :genes
    #"(?i)name" :name
-   #"(?i)id" :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

   :chromStart :float
   :chromEnd :float
   :position :position
   :genes :gene})

(def ^:private probemap-default-columns
  [:name :genes :chrom :chromStart :chromEnd :strand])

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

; This is a really weak attempt to infer types of position columns. We
; need a better vision.
(defn find-position-fields
  "Rewrite a list of column objects having a :header attribute,
  collating chrom position columns into position fields, having
