1 ! Copyright (C) 2006, 2008 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: io io.files io.files.temp io.streams.duplex kernel
4 sequences sequences.private strings vectors words memoize
5 splitting grouping hints tr continuations io.encodings.ascii
7 IN: benchmark.reverse-complement
9 TR: trans-map ch>upper "ACGTUMRYKVHDB" "TGCAAKYRMBDHV" ;
11 : translate-seq ( seq -- str )
12 concat reverse! dup trans-map-fast ;
15 translate-seq 60 group [ print ] each ;
17 : do-line ( seq line -- seq )
18 dup first ">;" member-eq?
19 [ over show-seq print dup delete-all ] [ suffix! ] if ;
21 HINTS: do-line vector string ;
23 : reverse-complement ( infile outfile -- )
32 : reverse-complement-in ( -- path )
33 "reverse-complement-in.txt" temp-file ;
35 : reverse-complement-out ( -- path )
36 "reverse-complement-out.txt" temp-file ;
38 : reverse-complement-benchmark ( -- )
40 reverse-complement-out
43 MAIN: reverse-complement-benchmark