      base-conv-update-graph
      {:mat (plmb/fnk [rating-mat]
              ; swap nils for zeros - most things need the 0s, but repness needs the nils"
-             (greedy
-               (map (fn [row] (map #(if (nil? %) 0 %) row))
-                 (get-matrix rating-mat))))
+             (mapv (fn [row] (map #(if (nil? %) 0 %) row))
+               (get-matrix rating-mat)))
 
       :pca (plmb/fnk [conv mat opts']
              (wrapped-pca mat (:n-comps opts')

                (:smoothed-k group-k-smoother)))

      :bid-to-pid (plmb/fnk [base-clusters]
                    (greedy
                      (map :members (sort-by :id base-clusters))))

      ;; returns {tid {
      ;;           :agree [0 4 2 0 6 0 0 1]

      :proj (plmb/fnk [rating-mat pca]
              (sparsity-aware-project-ptpts (get-matrix rating-mat) pca))

      :base-clusters
            (plmb/fnk [conv rating-mat proj in-conv opts']
              (let [proj-mat
                      (named-matrix (rownames rating-mat) ["x" "y"] proj)
                    in-conv-mat (rowname-subset proj-mat in-conv)]
                (sort-by :id
                  (kmeans in-conv-mat
                    (:base-k opts')
                    :last-clusters (:base-clusters conv)
                    :cluster-iters (:base-iters opts')))))

      :base-clusters-proj
            (plmb/fnk [base-clusters]
