                              (map #(fs/join base %)))]
     (into {}
           (map (fn[exp-dir ibc]
-                 [ibc (get-exp-file-specs exp-illumina-xref exp-dir ibc ftype)])
+                 [ibc (get-exp-file-specs
+                       eid exp-illumina-xref exp-dir ibc ftype)])
                exp-sample-dirs
                ibcs))))
 


(defn get-exp-sample-info [csv]
  (let [recs (->> csv slurp csv/read-csv)
        x (coll/drop-until
           (fn[v] (#{"tnseq", "rnaseq", "trmseq" "wgseq"} (first v)))
           recs)
        recs (if (seq x) x (cons ["rnaseq" "noexp" "noexp"] recs))
        exp-rec [(coll/takev 3 (first recs))]] ; ensure 3 fields
    (loop [S (rest recs)
           I [exp-rec]]
      (if (not (seq S))
        (apply concat I)
        (let [s (coll/drop-until (fn[v] (str/digits? (first v))) S)
              i (coll/take-until (fn[v] (not (str/digits? (first v)))) s)
              ;; ensure 3 fields for NCBI xref
              i (if (= 1 (count I)) (map #(coll/takev 3 %) i) i)]
          (recur (coll/drop-until (fn[v] (not (str/digits? (first v)))) s)
                 (conj I i)))))))


      ((fn[m]
         (assoc m :ncbi-sample-xref
                (->> (m :exp-sample-info)
                     :ncbi-xref
                     (mapcat (fn[x] [(-> x rest vec) (-> x rest reverse vec)]))
                     (into {})))))
      ((fn[m]
         (assoc m :exp-illumina-xref
                (->> (m :exp-sample-info)
                     :bc-xref
                     (group-by (fn[[_ _ ibc]] ibc))))))
      ((fn[m]
         (assoc m :barcodes
