Utility functions for SAM references. | (ns cljam.io.sam.util.refs (:require [clojure.set :as cset])) |
Returns a reference sequence from the sam header. | (defn make-refs
[hdr]
(map
#(cset/rename-keys
%
{:SN :name, :LN :len, :AH :alt, :AS :assembly,
:M5 :md5, :SP :species, :UR :uri})
(:SQ hdr))) |
(defn- ref-id*
[refs name']
(some #(when (= name' (:name (second %))) (first %))
(map-indexed vector refs))) | |
Returns reference ID from the reference sequence and the specified reference name. If not found, returns nil. | (def ref-id (memoize ref-id*)) |
Returns a reference name from the reference ID. Returns nil if id is not mapped. | (defn ref-name
[refs ^long id]
(when (<= 0 id (dec (count refs)))
(:name (nth refs id)))) |
Returns the first reference which has the specified name. | (defn ref-by-name [refs name'] (some #(when (= (:name %) name') %) refs)) |