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 [faq] 0.1.0.0, 0.1.0.1, 0.1.1.0, 0.1.1.1, 0.1.1.2, 0.1.2.0
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
Revised Revision 4 made by zmactep at Tue Apr 16 10:28:19 UTC 2019
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 26 12:53:39 UTC 2018
Distributions LTSHaskell:0.1.2.0, NixOS:0.1.2.0, Stackage:0.1.2.0
Downloads 805 total (63 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2018-04-29 [all 1 reports]

Modules

[Index]

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees


Readme for uniprot-kb-0.1.2.0

[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