git.iko.soy/typeable/attoparsec
on 0.12.1.6 help sign in
75 lines 2.9 kB history raw
1{-# LANGUAGE OverloadedStrings #-}
3module Genome
4 (
5 genome
6 ) where
8import Control.Applicative
9import Criterion.Main
10import Data.ByteString (ByteString)
11import qualified Data.ByteString.Char8 as B8
12import qualified Data.ByteString.Lazy.Char8 as L8
13import Data.Attoparsec.ByteString.Char8 as B
14import qualified Data.Attoparsec.ByteString.Lazy as BL
15import Data.Text (Text)
16import qualified Data.Text as T
17import qualified Data.Text.Lazy as TL
18import Data.Attoparsec.Text as T
19import qualified Data.Attoparsec.Text.Lazy as TL
20import Common (rechunkBS, rechunkT)
22genome :: Benchmark
23genome = bgroup "genome" [
24 bgroup "bytestring" [
25 bench "s" $ nf (map (B.parse searchBS)) (B8.tails geneB)
26 , bench "l" $ nf (map (BL.parse searchBS)) (L8.tails geneBL)
27 , bgroup "CI" [
28 bench "s" $ nf (map (B.parse searchBSCI)) (B8.tails geneB)
29 , bench "l" $ nf (map (BL.parse searchBSCI)) (L8.tails geneBL)
30 ]
31 ]
32 , bgroup "text" [
33 bench "s" $ nf (map (T.parse searchT)) (T.tails geneT)
34 , bench "l" $ nf (map (TL.parse searchT)) (TL.tails geneTL)
35 , bgroup "CI" [
36 bench "s" $ nf (map (T.parse searchTCI)) (T.tails geneT)
37 , bench "l" $ nf (map (TL.parse searchTCI)) (TL.tails geneTL)
38 ]
39 ]
40 ]
41 where geneB = B8.pack gene
42 geneBL = rechunkBS 4 geneB
43 geneT = T.pack gene
44 geneTL = rechunkT 4 geneT
46searchBS :: B.Parser ByteString
47searchBS = "caac" *> ("aaca" <|> "aact")
49searchBSCI :: B.Parser ByteString
50searchBSCI = B.stringCI "CAAC" *> (B.stringCI "AACA" <|> B.stringCI "AACT")
52searchT :: T.Parser Text
53searchT = "caac" *> ("aaca" <|> "aact")
55searchTCI :: T.Parser Text
56searchTCI = T.asciiCI "CAAC" *> (T.asciiCI "AACA" <|> T.asciiCI "AACT")
58-- Dictyostelium discoideum developmental protein DG1094 (gacT) gene,
59-- partial cds. http://www.ncbi.nlm.nih.gov/nuccore/AF081586.1
61gene :: String
62gene = "atcgatttagaaagatacaaagatagaaccatcaataataaacaagagaagagagcaagt\
63 \agagatattaataaagagattgaaagagagattgaaaagaagagattatcaccaagagaa\
64 \agattaaatttatttggtctttcttcctcatcttcatcagtgaattcaacattaacaaga\
65 \tctacagcaaatattatctctacaatagacggtagtggaggtagtaatcgtaatagtaaa\
66 \aattatggtaatggctcatcctcctcctcaaatagaagatatagtaatactattaatcaa\
67 \caattacaaatgcaattacaacaacttcaaatccaacaacaacaatatcaacaaactcaa\
68 \caatctcaaataccattacaatatcaacaacaacaacagcaacaacaacaacaaaccact\
69 \acaactacaactacatcaagtggtagtaatagattctcttcaaatagatataaaccagtt\
70 \gatcttacacaatcatcttcaaactttcgttattcacgtgaaatttatgatgatgattat\
71 \tattcaaataataatttaatgatgtttggtaatgagcaaccaaatcaaacaccaatttct\
72 \gtatcatcttcatctgcattcacacgtcaaagatctcaaagttgctttgaaccagagaat\
73 \cttgtattgctacaacaacaatatcaacaatatcaacaacaacaacaacaacaacaacaa\
74 \attccattccaagcaaatccacaatatagtaatgctgttattgaacaaaaattggatcaa\
75 \attagagataccattaataatttacatagagataaccgagtctctaga"