]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/benchmark/reverse-complement/reverse-complement.factor
factor: trim using lists
[factor.git] / extra / benchmark / reverse-complement / reverse-complement.factor
index 95035e6cd8dff2babc1a89aaf2310e7dde5511da..6b1e5bd194dcd2a3187fdc3db9c9ec16c15179dc 100644 (file)
@@ -1,9 +1,7 @@
 ! Copyright (C) 2006, 2008 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: io io.files io.files.temp io.streams.duplex kernel
-sequences sequences.private strings vectors words memoize
-splitting grouping hints tr continuations io.encodings.ascii
-ascii ;
+USING: ascii grouping hints io io.encodings.ascii io.files
+io.files.temp kernel sequences strings tr vectors ;
 IN: benchmark.reverse-complement
 
 TR: trans-map ch>upper "ACGTUMRYKVHDB" "TGCAAKYRMBDHV" ;
@@ -12,21 +10,20 @@ TR: trans-map ch>upper "ACGTUMRYKVHDB" "TGCAAKYRMBDHV" ;
     concat reverse! dup trans-map-fast ;
 
 : show-seq ( seq -- )
-    translate-seq 60 <groups> [ print ] each ;
+    translate-seq 60 group [ print ] each ;
 
 : do-line ( seq line -- seq )
     dup first ">;" member-eq?
-    [ over show-seq print dup delete-all ] [ over push ] if ;
+    [ over show-seq print dup delete-all ] [ suffix! ] if ;
 
 HINTS: do-line vector string ;
 
-: (reverse-complement) ( seq -- )
-    readln [ do-line (reverse-complement) ] [ show-seq ] if* ;
-
 : reverse-complement ( infile outfile -- )
     ascii [
         ascii [
-            500000 <vector> (reverse-complement)
+            500,000 <vector>
+            [ do-line ] each-line
+            show-seq
         ] with-file-reader
     ] with-file-writer ;
 
@@ -36,9 +33,9 @@ HINTS: do-line vector string ;
 : reverse-complement-out ( -- path )
     "reverse-complement-out.txt" temp-file ;
 
-: reverse-complement-main ( -- )
+: reverse-complement-benchmark ( -- )
     reverse-complement-in
     reverse-complement-out
     reverse-complement ;
 
-MAIN: reverse-complement-main
+MAIN: reverse-complement-benchmark