Giter Site home page Giter Site logo

irahorecka / sgd-rest Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 0.0 134 KB

Saccharomyces Genome Database (SGD) REST API wrapper

License: MIT License

Makefile 5.29% Python 94.71%
api api-rest saccharomyces saccharomyces-cerevisiae sgd yeast saccharomyces-cerevisiae-database

sgd-rest's Introduction

sgd-rest


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

pypiv Python 3.7+ continuous-integration Licence

Installation

pip install sgd-rest

Quick start

Get GO (gene ontology) details for gene ARO1.

import sgd

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

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")

First, instantiate an 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.

sgd-rest's People

Contributors

irahorecka avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.