EntrezHTTP-1.0.0: src/Bio/EntrezHTTPData.hs
-- | Data structures for Entrez HTTP queries
module Bio.EntrezHTTPData where
-- | Input datastructure for EntrezHTTP. Program is the selected eutility (e.g efetch, esearch),
-- database is the selected Entrez database (nucleotide) and query the query string.
data EntrezHTTPQuery = EntrezHTTPQuery
{ program :: Maybe String
, database :: Maybe String
, query :: String
}
deriving (Show, Eq)
-- | Data structure for Entrez summary result
data EntrezSummary = EntrezSummary
{ documentSummaries :: [EntrezDocSum]}
deriving (Show, Eq)
data EntrezDocSum = EntrezDocSum
{ summaryId :: String
, summaryItems :: [SummaryItem]}
deriving (Show, Eq)
data SummaryItem = SummaryItem
{ itemName :: String
, itemType :: String
, itemContent :: String}
deriving (Show, Eq)
-- | Gene doc summary
data EntrezGeneSummary = EntrezGeneSummary
{ geneSummaries :: [EntrezGeneDocSummary]}
deriving (Show, Eq)
data EntrezGeneDocSummary = EntrezGeneDocSummary
{ geneId :: String
, geneName :: String
, geneStatus :: String
, geneCurrentID :: String
, geneGeneticSource :: String
, geneOtherAliases :: String
, geneGenomicInfo :: EntrezGenomicInfo}
deriving (Show, Eq)
data EntrezGenomicInfo = EntrezGenomicInfo
{ chrAccVer :: String
, chrStart :: Int
, chrStop :: Int
, exonCount :: Int
}
deriving (Show, Eq)
-- | Data structure for Entrez search result
data EntrezSearch = EntrezSearch
{ count :: Int
, retMax :: Int
, retStart :: Int
, searchIds :: [Int]
, translationStack :: [TranslationStack]
, queryTranslation :: String}
deriving (Show, Eq)
data TranslationStack = TranslationStack
{ termSets :: [TermSet]
, operation :: String}
deriving (Show, Eq)
data TermSet = TermSet
{ term :: String
, field :: String
, termCount :: Int
, explode :: String}
deriving (Show, Eq)