Skip to content
Alan Cleary edited this page Apr 18, 2023 · 12 revisions

Genes

Takes a list of gene identifiers. Returns a list of gene objects that match the identifiers.

  • URL

    /v2/genes/

  • Method:

    POST

  • URL Params

    Required:

None

  • Data Params

    genes=[gene_id, ...]

  • Success Response:

    • Code: 200
      Content:
    {
      "genes": [{
        "chromosome": chromosome_id,
        "name": gene_id,
        "family": family_id,
        "fmin": Integer,
        "fmax": Integer,
        "strand": 0 | -1 | 1
      }, ...]
    }
  • Error Response:

    • Code: 400 BAD REQUEST
  • Sample Call:

      $.ajax({
        url: "/v2/genes/",
        dataType: "json",
        data: {
          genes: "[glyma.Glyma.06G088000, glyma.Glyma.06G089000]",
        },
        type: "POST",
        success: function (r) {
          console.log(r);
        }
      });

Chromosome

Takes a chromosome identifier. Returns the chromosome object that matches the given identifier.

  • URL

    /v2/chromosome/

  • Method:

    POST

  • URL Params

    Required:

None

  • Data Params

    chromosome=chromosome_id

  • Success Response:

    • Code: 200
      Content:
    {
      "chromosome": {
        "length": Integer,
        "genus": String,
        "species": String,
        "genes": [gene_id, ...],
        "families": [family_id, ...]
      }
    }
  • Error Response:

    • Code: 404 NOT FOUND

    OR

    • Code: 400 BAD REQUEST
  • Sample Call:

      $.ajax({
        url: "/v2/chromosome/",
        dataType: "json",
        data: {
          chromosome: "glyma.Chr06",
        },
        type: "POST",
        success: function (r) {
          console.log(r);
        }
      });

Search Micro-Synteny Tracks

Takes a query track, that is, an ordered list of gene family identifiers and search parameters: minimum number/percentage of matched families and maximum number/percentage of non-matched families between any two matched families. Returns all micro-synteny contexts (tracks) in the database that meet the given parameter constraints. The returned tracks' genes are in the order they occur on the their chromosome.

  • URL

    /v2/micro-synteny-search/

  • Method:

    POST

  • URL Params

    Required:

None

  • Data Params

    query=[family_id, ...]
    matched=Float
    intermediate=Float

  • Success Response:

    • Code: 200
      Content:
    {
      "tracks": [{
        "name": chromosome_id,
        "genus": String,
        "species": String,
        "genes": [gene_id, ...],
        "families": [family_id, ...]
      }, ...]
    }
  • Error Response:

    • Code: 400 BAD REQUEST
  • Sample Call:

      $.ajax({
        url: "/v2/micro-synteny-search/",
        dataType: "json",
        data: {
          query: ["phytozome_10_2.59177331", "phytozome_10_2.59249630", "phytozome_10_2.59166071"],
          matched: 0.6,
          intermediate: 3
        },
        type: "POST",
        success: function (r) {
          console.log(r);
        }
      });

Pairwise Blocks

Takes a reference chromosome and, optionally, a set of target chromosome identifiers. Returns the pairwise macro-synteny blocks of the aligned target chromosomes (or all chromosomes in the database) with positions relative to the reference chromosome.

  • URL

    /v2/pairwise-blocks/

  • Method:

    POST

  • URL Params

    Required:

None

  • Data Params

    families=[family_id, ...]
    matched=Integer
    intermediate=Integer
    mask=Integer
    [targets=[chromosome_id, ...]]

  • Success Response:

    • Code: 200
      Content:
    {
      "blocks": [{
        "chromosome": chromosome_id,
        "genus": String,
        "species": String,
        "blocks": [{
          "i": Integer  // gene index on reference chromosome
          "j": Integer  // gene index on reference chromosome
          "fmin": Integer,
          "fmax": Integer,
          "orientation": "-" | "+"
        }, ...]
      }, ...]
    }
  • Error Response:

    • Code: 400 BAD REQUEST
  • Sample Call:

      $.ajax({
        url: "/v2/pairwise-blocks/",
        dataType: "json",
        data: {
          families: ["phytozome_10_2.59177331", "phytozome_10_2.59249630", ...],
          matched: 10,
          intermediate: 2,
          mask: 100,
          targets: ["glyma.Chr06"],
        },
        type: "POST",
        success: function (r) {
          console.log(r);
        }
      });

Search

Takes a query string. Returns gene names and/or chromosome regions that are similar to the query.

  • URL

    /search/

  • Method:

    GET

  • URL Params

    Required:

q=String

  • Data Params

    None

  • Success Response:

    • Code: 200
      Content:
    {
      "genes": [gene_name, ...]
      "regions": [{
        "chromosome": String,
        "start": Integer,
        "stop": Integer
      }, ...]
    }
  • Error Response:

    • Code: 400 BAD REQUEST
  • Sample Call:

      $.ajax({
        url: "/search/",
        dataType: "json",
        data: {
          q: "Phvul.002G100400 phavu.Chr02:13142457-13496658",
        },
        type: "GET",
        success: function (r) {
          console.log(r);
        }
      });

Chromosome Region

Takes a chromosome name and an interval on the chromosome (start and stop locations). Returns the name of the gene at the center of the interval and the number of genes (neighbors) on either side of the gene within the interval.

  • URL

    /chromosome-region/

  • Method:

    GET

  • URL Params

    Required:

chromosome=String
start=Integer
stop=Integer

  • Data Params

    None

  • Success Response:

    • Code: 200
      Content:
    {
      "region": {
        "gene": String,
        "neighbors": Integer
      }
    }
  • Error Response:

    • Code: 400 BAD REQUEST
  • Sample Call:

      $.ajax({
        url: "/chromosome-region/",
        dataType: "json",
        data: {
          chromosome: "phavu.Chr02",
          start: 13142457,
          stop: 13496658,
        },
        type: "GET",
        success: function (r) {
          console.log(r);
        }
      });
Clone this wiki locally