module Bio.GenbankData where
import Bio.Core.Sequence
import qualified Data.ByteString.Lazy.Char8 as L
data Genbank = Genbank
{
locus :: L.ByteString,
genbankLength :: Int,
moleculeType :: L.ByteString,
circular :: L.ByteString,
division :: L.ByteString,
creationDate:: L.ByteString,
definition :: L.ByteString,
accession :: L.ByteString,
version :: L.ByteString,
geneIdentifier :: L.ByteString,
dblink :: L.ByteString,
keywords :: L.ByteString,
source :: L.ByteString,
organism :: L.ByteString,
references :: [Reference],
comment :: L.ByteString,
features :: [Feature],
contig :: Maybe String,
origin :: SeqData
}
deriving (Show, Eq)
data Feature = Feature {
featureType :: L.ByteString,
featureCoordinates :: CoordinateSet,
attributes :: [Attribute],
subFeatures :: [SubFeature]
}
deriving (Show, Eq)
data Attribute = Flag {
flagType :: L.ByteString
}
|
Field {
fieldType :: L.ByteString,
fieldValue :: L.ByteString
}
|
GOattribute {
gotype :: L.ByteString,
goid :: L.ByteString,
goname :: L.ByteString
}
deriving (Show, Eq)
data SubFeature = SubFeature
{
subFeatureType :: L.ByteString,
subFeatureCoordinates :: CoordinateSet,
subFeatureAttributes :: [Attribute],
subFeatureTranslation :: Maybe SeqData
}
deriving (Show, Eq)
data Reference = Reference
{
index :: Int,
baseFrom :: Maybe Int,
baseTo :: Maybe Int,
authors :: String,
title :: String,
journal :: String,
pubmedId :: Maybe String,
remark :: Maybe String
}
deriving (Show, Eq)
data Coordinates = Coordinates
{
coordinatesFrom :: Int,
coordinateFromEqualitySymbol :: Maybe Char,
coordinatesTo :: Int,
coordinateToEqualitySymbol :: Maybe Char,
complement :: Bool
}
deriving (Show, Eq)
data DbXRef = DbXRef
{
db :: L.ByteString,
ref :: L.ByteString
}
deriving (Show, Eq)
data CoordinateSet = CoordinateSet
{
setCoordinates :: [Coordinates],
setType :: Maybe String
}
deriving (Show, Eq)
data OriginSlice = OriginSlice
{
originIndex :: Int,
originSequence :: String
}
deriving (Show, Eq)
data GOterm = GOterm
{
goType :: String,
goId :: String,
goName :: String
}
deriving (Show, Eq)