new-leaf
] [
idx nodes nth :> n
- shift radix-bits + value key hashcode n (new-at) :> new-leaf :> n'
- n n' eq? [
- bitmap-node
- ] [
- bitmap
- n' idx nodes new-nth
- shift
- <bitmap-node>
- ] if
- new-leaf
- ]
+ shift radix-bits + value key hashcode n (new-at) :> new-leaf :> n'
+ n n' eq? [
+ bitmap-node
+ ] [
+ bitmap
+ n' idx nodes new-nth
+ shift
+ <bitmap-node>
+ ] if
+ new-leaf
] if ;
M:: bitmap-node (pluck-at) ( key hashcode bitmap-node -- node' )
: write-repeat-fasta ( n alu desc id -- )
write-description
- 0 :> k! :> alu
- [| len | k len alu make-repeat-fasta k! ] split-lines ; inline
+ [let
+ 0 :> k! :> alu
+ [| len | k len alu make-repeat-fasta k! ] split-lines
+ ] ; inline
: fasta ( n out -- )
homo-sapiens make-cumulative
IUB make-cumulative
- :> homo-sapiens-floats
- :> homo-sapiens-chars
- :> IUB-floats
- :> IUB-chars
- :> out
- :> n
- initial-seed :> seed
-
- out ascii [
- n 2 * ALU "Homo sapiens alu" "ONE" write-repeat-fasta
-
- initial-seed
- n 3 * homo-sapiens-chars homo-sapiens-floats "IUB ambiguity codes" "TWO" write-random-fasta
- n 5 * IUB-chars IUB-floats "Homo sapiens frequency" "THREE" write-random-fasta
- drop
- ] with-file-writer ;
+ [let
+ :> homo-sapiens-floats
+ :> homo-sapiens-chars
+ :> IUB-floats
+ :> IUB-chars
+ :> out
+ :> n
+ initial-seed :> seed
+
+ out ascii [
+ n 2 * ALU "Homo sapiens alu" "ONE" write-repeat-fasta
+
+ initial-seed
+ n 3 * homo-sapiens-chars homo-sapiens-floats
+ "IUB ambiguity codes" "TWO" write-random-fasta
+ n 5 * IUB-chars IUB-floats
+ "Homo sapiens frequency" "THREE" write-random-fasta
+ drop
+ ] with-file-writer
+ ] ;
: run-fasta ( -- ) 2500000 reverse-complement-in fasta ;
[ "$cmd" = ] [ "system" head? ] bi or ;
: check-collection ( collection -- fq-collection )
- mdb-instance :> instance
- instance name>> :> instance-name
- dup mdb-collection? [ name>> ] when
- "." split1 over instance-name =
- [ nip ] [ drop ] if
- [ ] [ reserved-namespace? ] bi
- [ instance (ensure-collection) ] unless
- [ instance-name ] dip "." glue ;
+ [let
+ mdb-instance :> instance
+ instance name>> :> instance-name
+ dup mdb-collection? [ name>> ] when
+ "." split1 over instance-name =
+ [ nip ] [ drop ] if
+ [ ] [ reserved-namespace? ] bi
+ [ instance (ensure-collection) ] unless
+ [ instance-name ] dip "." glue
+ ] ;
: fix-query-collection ( mdb-query -- mdb-query )
[ check-collection ] change-collection ; inline
! [ dump-to-file ] keep
write flush ; inline
-: build-query-object ( query -- selector )
+:: build-query-object ( query -- selector )
H{ } clone :> selector
- { [ orderby>> [ "orderby" selector set-at ] when* ]
+ query { [ orderby>> [ "orderby" selector set-at ] when* ]
[ explain>> [ "$explain" selector set-at ] when* ]
[ hint>> [ "$hint" selector set-at ] when* ]
[ query>> "query" selector set-at ]