{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE DeriveGeneric #-} module Bio.RealWorld.Reactome ( getPathways ) where import Data.Aeson import GHC.Generics (Generic) import qualified Data.Text as T import Network.HTTP.Simple base :: String base = "https://reactome.org/ContentService" data Obj = Obj { className :: Maybe T.Text , dbId :: Int , displayName :: T.Text , schemaClass :: Maybe T.Text , stId :: Maybe T.Text , stIdVersion :: Maybe T.Text } deriving (Show, Generic) instance ToJSON Obj instance FromJSON Obj -- | All Reactome top level pathways getPathways :: String -> IO [Obj] getPathways species = do req <- parseRequest url response <- httpJSON req return $ getResponseBody response where url = base ++ "/data/pathways/top/" ++ species {- pathwayAnalysis :: [B.ByteString] -- ^ A list of identifiers -> IO B.ByteString pathwayAnalysis ids = do initReq <- parseRequest base let request = urlEncodedBody [] initReq manager <- newManager tlsManagerSettings r <- fmap M.fromList $ runResourceT $ do response <- http request manager runConduit $ responseBody response .| linesUnboundedAsciiC .| (dropC 1 >> mapC ((\[a,b] -> (a,b)) . B.split '\t')) .| sinkList return $ map (flip M.lookup r) ids where params = -}