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