Fix http help lint
[factor/jcg.git] / extra / benchmark / reverse-complement / reverse-complement.factor
blob4147ffabdfa06657cd07c125cb56ac1ee1c111cc
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
6 ascii ;
7 IN: benchmark.reverse-complement
9 TR: trans-map ch>upper "ACGTUMRYKVHDB" "TGCAAKYRMBDHV" ;
11 : translate-seq ( seq -- str )
12     concat dup reverse-here dup trans-map-fast ;
14 : show-seq ( seq -- )
15     translate-seq 60 <groups> [ print ] each ;
17 : do-line ( seq line -- seq )
18     dup first ">;" memq?
19     [ over show-seq print dup delete-all ] [ over push ] if ;
21 HINTS: do-line vector string ;
23 : (reverse-complement) ( seq -- )
24     readln [ do-line (reverse-complement) ] [ show-seq ] if* ;
26 : reverse-complement ( infile outfile -- )
27     ascii [
28         ascii [
29             500000 <vector> (reverse-complement)
30         ] with-file-reader
31     ] with-file-writer ;
33 : reverse-complement-in ( -- path )
34     "reverse-complement-in.txt" temp-file ;
36 : reverse-complement-out ( -- path )
37     "reverse-complement-out.txt" temp-file ;
39 : reverse-complement-main ( -- )
40     reverse-complement-in
41     reverse-complement-out
42     reverse-complement ;
44 MAIN: reverse-complement-main