uniprot-kb: UniProt-KB format parser

[ bio, bsd3, library ] [ Propose Tags ]

Specification implementation of https://web.expasy.org/docs/userman.html


[Skip to Readme]
Versions 0.1.0.0, 0.1.0.1, 0.1.1.0, 0.1.1.1, 0.1.1.2
Change log ChangeLog.md
Dependencies attoparsec (>=0.10 && <0.14), base (>=4.7 && <5), text (>=0.2 && <1.3) [details]
License BSD-3-Clause
Copyright Pavel Yakovlev
Author Pavel Yakovlev
Maintainer pavel@yakovlev.me
Category Bio
Home page https://github.com/biocad/uniprot-kb#readme
Bug tracker https://github.com/biocad/uniprot-kb/issues
Source repo head: git clone https://github.com/biocad/uniprot-kb
Uploaded by zmactep at Thu Apr 5 19:14:32 UTC 2018
Distributions NixOS:0.1.0.1, Stackage:0.1.1.2
Downloads 47 total (47 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2018-04-14 [all 1 reports]
Hackage Matrix CI

Modules

[Index]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for uniprot-kb-0.1.1.2

[back to package description]

uniprot-kb

Travis hackage hackage-deps

A well-typed UniProt file format parser.

Documentation

To build Haddock documentation run:

$ stack haddock

Usage example

You can use this simple code to parse any UniProt file:

import           Bio.Uniprot
import           Data.Attoparsec.Text (parseOnly)
import           Data.Text            (Text)
import qualified Data.Text.IO         as TIO
import           Text.Pretty.Simple   (pPrint)

main :: IO ()
main = do
    uniprot <- TIO.getContents
    case parseOnly parseRecord uniprot of
      Left err  -> putStrLn "Error on parse"
      Right obj -> pPrint obj

So you can parse any stdin Text of UniProt by using parseRecord function. The result will be presented by a Record datatype:

data Record = Record
  { id   :: ID
  , ac   :: AC
  , dt   :: DT
  , de   :: DE
  , gn   :: [GN]
  , os   :: OS
  , og   :: Maybe OG
  , oc   :: OC
  , ox   :: Maybe OX
  , oh   :: [OH]
  , refs :: [Reference]
  , cc   :: [CC]
  , dr   :: [DR]
  , pe   :: PE
  , kw   :: KW
  , ft   :: [FT]
  , sq   :: SQ
  } deriving (Show, Eq, Ord)

You can run this to test the implementation:

stack runhaskell uniprot.hs < example/LOLA2_DROME.dat