BiobaseHTTPTools-1.0.0: Biobase/AccessionToTaxId.hs
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE Arrows #-}
{-# LANGUAGE RecordWildCards #-}
module Main where
import System.Console.CmdArgs
import Biobase.Entrez.HTTP
import qualified Data.ByteString.Lazy.Char8 as B
import Data.List
import Data.Maybe
options :: Options
data Options = Options
{ accession :: String
} deriving (Show,Data,Typeable)
options = Options
{ accession = def &= name "a" &= help "NCBI accession number, e.g NC_000913"
} &= summary ("AccessionToTaxId ") &= help "Florian Eggenhofer - 2018" &= verbosity
accessionToTaxId :: String -> IO ()
accessionToTaxId _accession = do
let program = Just "esummary"
let database = Just "nucleotide"
let queryString = "id=" ++ _accession
let entrezQuery = EntrezHTTPQuery program database queryString
result <- entrezHTTP entrezQuery
let summary = head (readEntrezSummaries result)
let taxIdItem = find (\a -> itemName a == "TaxId") (summaryItems (head (documentSummaries summary)))
putStrLn (itemContent (fromJust taxIdItem))
main :: IO ()
main = do
Options{..} <- cmdArgs options
accessionToTaxId accession