Gene Ontology¶
Provides access to Gene Ontology and its gene annotations.
Class References¶
Usage¶
Load the ontology and print out some terms:
from orangecontrib.bioinformatics import go
ontology = go.Ontology()
term = ontology["GO:0097194"] # execution phase of apoptosis
# print a term
print(term)
# access fields by name
print(term.id, term.name)
# note the use of underscore due to a conflict with a python def keyword
print(term.def_)
Searching the annotation (part of code/go/gene_annotations.py
)
from orangecontrib.bioinformatics import go
ontology = go.Ontology()
# Load annotations for yeast.
annotations = go.Annotations("4932", ontology=ontology)
# keys are symbol names, values are Entrez IDs
genes = {'RRB1': '855161', 'OST4': '851366', 'VID27': '855509'}
res = annotations.get_enriched_terms(genes.values())
print(annotations.gene_annotations['855161'])
for a in annotations.gene_annotations['855161']:
print(ontology[a.go_id].name + " with evidence code " + a.evidence)
# Get all genes annotated to the same terms as RRB1
ids = set([a.go_id for a in annotations.gene_annotations['855161']])
for term_id in ids:
ants = annotations.get_annotations_by_go_id(term_id)
genes = set([a.gene_id for a in ants])
print(", ".join(genes) + " annotated to " + term_id + " " + ontology[term_id].name)
Term enrichment (part of code/go/enrichment.py
)
from orangecontrib.bioinformatics import go
ontology = go.Ontology()
annotations = go.Annotations("4932", ontology=ontology)
# keys are symbol names, values are Entrez IDs
genes_ids = {'Yta7p': '853186', 'RPN2': '854735', 'RPT2': '851557'}
res = annotations.get_enriched_terms(genes_ids.values())
print(res)
print("Enriched terms:")
for go_id, (genes, p_value, ref) in res.items():
if p_value < 0.05:
print(ontology[go_id].name + " with p-value: %.4f " % p_value + ", ".join(genes))
# And again for slims
annotations.ontology.set_slims_subset('goslim_yeast')
res = annotations.get_enriched_terms(genes_ids.values(), slims_only=True)
print("\n\nEnriched slim terms:")
for go_id, (genes, p_value, _) in res.items():
if p_value < 0.2:
print(ontology[go_id].name + " with p-value: %.4f " % p_value + ", ".join(genes))