| |
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 ) )
|
|
| |