bio-0.5.2: A bioinformatics library

Safe Haskell | Safe-Inferred

Bio.Sequence.GeneOntology

Contents

- Basic data types
- Reading the OBO format
- Reading 'terms and ids'
- Reading UniProt associations
- Utility stuff

Description

GeneOntology - parse and index Gene Ontology Annotations In particular, the file 'gene_association.goa_uniprot' that contains links between GO terms and UniProt accessions.

- http://www.geneontology.org/ontology/gene_ontology.obo -- Contains the hierarchy including isA relationships.
- http://www.geneontology.org/GO.format.obo-1_2.shtml -- Describes the OBO format.
- ftp://ftp.ebi.ac.uk/pub/databases/GO/goa/UNIPROT/ -- Contains the GOA-UniProt mapping (and a README file).
- http://www.geneontology.org/ontology/GO.defs -- Contains GO definitions (not supported here yet).
- http://www.geneontology.org/doc/GO.terms_and_ids -- GO definitions, simpler and more schematically.

Synopsis

- newtype GoTerm = GO Int
- data GoDef = GoDef !GoTerm !ByteString !GoClass
- type GoHierarchy = [(GoDef, [GoTerm])]
- readObo :: FilePath -> IO GoHierarchy
- readTerms :: FilePath -> IO [GoDef]
- data Annotation = Ann !UniProtAcc !GoTerm !EvidenceCode
- type UniProtAcc = ByteString
- data GoClass
  - = Func
  - | Proc
  - | Comp
- data EvidenceCode
  - = IC
  - | IDA
  - | IEA
  - | IEP
  - | IGC
  - | IGI
  - | IMP
  - | IPI
  - | ISS
  - | NAS
  - | ND
  - | RCA
  - | TAS
  - | NR
- readGOA :: FilePath -> IO [Annotation]
- isCurated :: EvidenceCode -> Bool
- decomment :: ByteString -> [ByteString]

# Basic data types

newtype GoTerm

A GO term is a positive integer

Constructors

GO Int |

Instances

Eq GoTerm |
Ord GoTerm |
Read GoTerm |
Show GoTerm |

data GoDef

A GoDef maps a GoTerm to a description and a GoClass.

Constructors

GoDef !GoTerm !ByteString !GoClass |

Instances

Show GoDef |

# Reading the OBO format

type GoHierarchy = [(GoDef, [GoTerm])]

A list of Go definitions, with pointers to parent nodes. Read from the .obo file. The user may construct the explicit hierachy by storing these in a Map or similar

readObo :: FilePath -> IO GoHierarchy

Read the GO hierarchy from the obo file. Note that this is not quite a tree structure.

# Reading 'terms and ids'

readTerms :: FilePath -> IO [GoDef]

Read GO term definitions, from the GO.terms_and_ids file

# Reading UniProt associations

data Annotation

A GOA annotation, containing a UniProt identifier, a GoTerm and an evidence code.

Constructors

Ann !UniProtAcc !GoTerm !EvidenceCode |

Instances

Show Annotation |

type UniProtAcc = ByteString

A UniProt identifier (short string of capitals and numbers).

data GoClass

Constructors

Func |
Proc |
Comp |

Instances

Read GoClass |
Show GoClass |

data EvidenceCode

Evidence codes describe the type of support for an annotation http://www.geneontology.org/GO.evidence.shtml

Constructors

IC | Inferred by Curator
IDA | Inferred from Direct Assay
IEA | Inferred from Electronic Annotation
IEP | Inferred from Expression Pattern
IGC | Inferred from Genomic Context
IGI | Inferred from Genetic Interaction
IMP | Inferred from Mutant Phenotype
IPI | Inferred from Physical Interaction
ISS | Inferred from Sequence or Structural Similarity
NAS | Non-traceable Author Statement
ND | No biological Data available
RCA | Inferred from Reviewed Computational Analysis
TAS | Traceable Author Statement
NR | Not Recorded

Instances

Eq EvidenceCode |
Read EvidenceCode |
Show EvidenceCode |

readGOA :: FilePath -> IO [Annotation]

Read the goa_uniprot file (warning: this one is huge!)

isCurated :: EvidenceCode -> Bool

The vast majority of GOA data is IEA, while the most reliable information is manually curated. Filtering on this is useful to keep data set sizes manageable, too.

# Utility stuff

decomment :: ByteString -> [ByteString]