@@ -0,0 +1,45 @@
1+{-# LANGUAGE OverloadedStrings #-}
2+
3+module Genome
4+ (
5+ genome
6+ ) where
7+
8+import Control.Applicative
9+import Criterion.Main
10+import Data.ByteString (ByteString)
11+import qualified Data.ByteString.Char8 as B8
12+import qualified Data.ByteString.Lazy.Char8 as L8
13+import Data.Attoparsec.ByteString.Char8
14+import qualified Data.Attoparsec.ByteString.Lazy as L
15+import Common (rechunkBS)
16+
17+genome :: Benchmark
18+genome = bgroup "genome" [
19+ bench "search/B" $ nf (map (parse searchBS)) (B8.tails geneB)
20+ , bench "search/BL" $ nf (map (L.parse searchBS)) (L8.tails geneBL)
21+ ]
22+ where geneB = B8.pack gene
23+ geneBL = rechunkBS 4 geneB
24+
25+searchBS :: Parser ByteString
26+searchBS = "caac" *> ("aaca" <|> "aact")
27+
28+-- Dictyostelium discoideum developmental protein DG1094 (gacT) gene,
29+-- partial cds. http://www.ncbi.nlm.nih.gov/nuccore/AF081586.1
30+
31+gene :: String
32+gene = "atcgatttagaaagatacaaagatagaaccatcaataataaacaagagaagagagcaagt\
33+ \agagatattaataaagagattgaaagagagattgaaaagaagagattatcaccaagagaa\
34+ \agattaaatttatttggtctttcttcctcatcttcatcagtgaattcaacattaacaaga\
35+ \tctacagcaaatattatctctacaatagacggtagtggaggtagtaatcgtaatagtaaa\
36+ \aattatggtaatggctcatcctcctcctcaaatagaagatatagtaatactattaatcaa\
37+ \caattacaaatgcaattacaacaacttcaaatccaacaacaacaatatcaacaaactcaa\
38+ \caatctcaaataccattacaatatcaacaacaacaacagcaacaacaacaacaaaccact\
39+ \acaactacaactacatcaagtggtagtaatagattctcttcaaatagatataaaccagtt\
40+ \gatcttacacaatcatcttcaaactttcgttattcacgtgaaatttatgatgatgattat\
41+ \tattcaaataataatttaatgatgtttggtaatgagcaaccaaatcaaacaccaatttct\
42+ \gtatcatcttcatctgcattcacacgtcaaagatctcaaagttgctttgaaccagagaat\
43+ \cttgtattgctacaacaacaatatcaacaatatcaacaacaacaacaacaacaacaacaa\
44+ \attccattccaagcaaatccacaatatagtaatgctgttattgaacaaaaattggatcaa\
45+ \attagagataccattaataatttacatagagataaccgagtctctaga"