-- | Encoding of tabular NCBI BLAST+ output module Biobase.BLAST.Types where import Prelude hiding (takeWhile) import Data.Attoparsec.ByteString.Char8 hiding (isSpace) import qualified Data.Attoparsec.ByteString.Lazy as L import qualified Data.ByteString.Char8 as C import qualified Data.ByteString.Builder as S import qualified Data.ByteString.Lazy.Char8 as B import qualified Data.Vector as V import System.Directory import Data.Char import Control.Monad import Debug.Trace import Text.Printf data BlastTabularResult = BlastTabularResult { blastProgram :: !BlastProgram, blastQueryId :: !B.ByteString, -- blastQueryName :: !B.ByteString, blastDatabase :: !B.ByteString, blastHitNumber :: !Int, hitLines :: !(V.Vector BlastTabularHit) } deriving (Show, Eq) data BlastProgram = BlastX | BlastP | BlastN deriving (Show, Eq) data BlastTabularHit = BlastTabularHit { queryId :: !B.ByteString, subjectId :: !B.ByteString, seqIdentity :: !Double, alignmentLength :: !Int, misMatches :: !Int, gapOpenScore :: !Int, queryStart :: !Int, queryEnd :: !Int, hitSeqStart :: !Int, hitSeqEnd :: !Int, eValue :: !Double, bitScore :: !Double, subjectFrame :: !Int, querySeq :: !B.ByteString, subjectSeq :: !B.ByteString } deriving (Show, Eq)