Skip to main content

Saccharomyces Genome Database (SGD) REST API wrapper

Project description

sgd-rest


Saccharomyces Genome Database (SGD) REST API wrapper. Refer to the SGD REST page for information about API usage and terms of service.

Python 3.8+ pypiv Licence tests

Installation

pip install sgd-rest --upgrade

Quick start

Get GO (gene ontology) details for gene ARO1.

import sgd

aro1 = sgd.gene("ARO1")
aro1.go_details.json()

# >>> [{'id': 9761727, 'annotation_type': 'computational', 'date_created': '2024-10-14', 'qualifier': 'enables', 'locus': {'display_name': 'ARO1', 'link': '/locus/S000002534', 'id': 1284912, 'format_name': 'YDR127W'}, 'go': {'display_name': 'lyase activity', 'link': '/go/GO:0016829', 'go_id': 'GO:0016829', 'go_aspect': 'molecular function', 'id': 291052}, ...]

Background

Easily navigate the SGD REST API with Python.

Classes

Class Description Example
locus Query SGD REST using locus ID. locus("S000002534")
gene Query SGD REST using gene name. gene("ARO1")
phenotype Query SGD REST using phenotype name. phenotype("increased_chemical_compound_accumulation")
go Query SGD REST using GO ID. go("GO:0000001")

Instantiate the SGD class prior to working with subclasses:

import sgd

aro1 = sgd.gene("ARO1")

Subclasses

Use the endpoints attribute to display subclasses of a class:

import sgd

print(sgd.gene.endpoints)
Class Subclass Description
locus & gene details Gets basic information about a locus.
locus & gene go_details Gets GO (gene ontology) annotations and the references used to make them.
locus & gene interaction_details Gets interaction annotations and the references used to make them.
locus & gene literature_details Gets references which refer to a gene, organized by subject of relevance.
locus & gene neighbor_sequence_details Gets get sequences for neighboring loci in the strains for which they are available.
locus & gene phenotype_details Gets phenotype annotations and the references used to make them.
locus & gene posttranslational_details Gets posttranslational protein data.
locus & gene protein_domain_details Gets protein domains, their sources, and their positions relative to protein sequence.
locus & gene protein_experiment_details Gets metadata and data values for protein experiments.
locus & gene regulation_details Gets regulation annotations and the references used to make them.
locus & gene sequence_details Gets sequence for genomic, coding, protein, and +/- 1KB sequence.
phenotype details Gets basic information about a phenotype.
phenotype locus_details Gets a list of genes annotated to a phenotype with some information about the experiment and strain background.
go details Gets basic information about a GO term.
go locus_details Gets a list of genes annotated to a GO term.

Use a subclass to retrieve the endpoint's response. This library utilizes the requests library, returning a requests.models.Response instance. Use this instance to define how the REST API content should be processed.

For example, for gene ARO1, get GO details as JSON and literature details as text:

import sgd

aro1 = sgd.gene("ARO1")
aro1.go_details.json()
aro1.literature_details.text

Advanced

Just like a subclass returns a requests.models.Response instance, the user can pass keyword arguments directly to the requests.get method during class instantiation. For example, you can add a header to prevent server-side caching and parse the locus details response as text:

import sgd

go_0000001 = sgd.go("GO:0000001", headers={"Cache-Control": "no-cache", "Pragma": "no-cache"})
go_0000001.locus_details.text

Additional attributes

  • url: Gets the endpoint's URL. Available for all classes.
  • locus_id: Gets the endpoint's locus ID. Avaialble for locus and gene classes.
import sgd

tor2 = sgd.gene("TOR2")

# 1 
print(tor2.url)
# >>> 'https://www.yeastgenome.org/backend/locus/S000001686'

# 2
print(tor2.locus_id)
# >>> 'S000001686'

Exceptions

  • InvalidGene: An invalid gene was queried.
import sgd
from sgd.exceptions import InvalidGene

try:
    bad_gene = sgd.gene("BadGene")
except InvalidGene:
    print("Whoops, an invalid gene was queried.")

Contribute

Support

If you are having issues or would like to propose a new feature, please use the issues tracker.

License

This project is licensed under the MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sgd_rest-0.1.4.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sgd_rest-0.1.4-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file sgd_rest-0.1.4.tar.gz.

File metadata

  • Download URL: sgd_rest-0.1.4.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for sgd_rest-0.1.4.tar.gz
Algorithm Hash digest
SHA256 8d7a893fbc0f799a7e3c735c1f39fc48c69f837b010a6af113a7da66da756d17
MD5 c0cbf94e6c399863dcf4469c04d80ced
BLAKE2b-256 7a96281e7eae8ac3e04ddd1e072903587180a0ce1b6b35fd6554fd3d6abbca88

See more details on using hashes here.

File details

Details for the file sgd_rest-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: sgd_rest-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 6.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for sgd_rest-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 93508274b101bd5a5701b8d2e00922999c19c58aa863011b9a385c8c826b7f1f
MD5 795dda0c4f31715a50b5f16bf7e1e167
BLAKE2b-256 7298f63620280118e0519d987e233304d2fc69e22d4a8715efe45c57280321b1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page