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.
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 forlocusandgeneclasses.
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sgd_rest-0.1.3.tar.gz.
File metadata
- Download URL: sgd_rest-0.1.3.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
717105a5ef000fc9dcce3de78d7d1be83235b9563ee449dea17ffc4856ce8224
|
|
| MD5 |
a750ca44f2f7bec0d75e4310cb986302
|
|
| BLAKE2b-256 |
90f13c268b35d69bc29cf86841b925c5d35f162330bba9551a5249c53f2371c0
|
File details
Details for the file sgd_rest-0.1.3-py3-none-any.whl.
File metadata
- Download URL: sgd_rest-0.1.3-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00e6b861498bf5962c1dce92ff0db6f9aa09315f59bdcc4a8cc4a38d5b17b13a
|
|
| MD5 |
09672d84fed6e00b27396b8905b19f34
|
|
| BLAKE2b-256 |
26d5796491f4c61779f9fa7c1591e1025981930e26dc069e2d32f2676de01838
|