Skip to content
Eden Engine

PDB to UniProt Mapping: Chains, Residue Ranges and Coverage via SIFTS (PDBe)

pdbe/sifts-uniprot

Maps the chains of one Protein Data Bank entry (four-character PDB id) onto UniProt accessions using SIFTS: for each accession its identifier, and per chain segment the UniProt start and end, the PDB start and end residue numbers (author and sequential), sequence identity and coverage. Returned as the PDBe response, keyed by the PDB id then by UniProt accession. Protein Data Bank in Europe data (PDB archive data is CC0), served by Eden Engine; not an official PDBe product.

activeper callv1

Price

$0.0026 per call

You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $5.

Data source

Protein Data Bank in Europe (PDBe), EMBL-EBI

Data from the Protein Data Bank in Europe (PDBe), EMBL-EBI, SIFTS mappings. PDB archive data is CC0 1.0 (wwpdb.org/about/usage-policies); PDBe-added annotation is CC BY 4.0. If you use SIFTS, please cite Dana, Gutmanas et al., Nucleic Acids Research 47, D482 (2019). Served by Eden Engine; not an official PDBe product.

Use it

Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.

Connect once and your AI can find and run this tool, and any other it needs.

agent
// 1. search: find the tool
omnial_search({ query: "what you need" })

// 2. inspect: price and input schema
omnial_inspect({ tool: "pdbe/sifts-uniprot" })

// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "pdbe/sifts-uniprot" })

// 4. run: price the exact call first, then run it
omnial_execute({ tool: "pdbe/sifts-uniprot", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "pdbe/sifts-uniprot", input: { /* ... */ } })

// 5. settle: the call is charged when it finishes, nothing to do

Not connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.

Pricing

Every charge this tool can incur.

ChargePrice
Per call
$0.0026
Updated
Oct 20, 2026

Input and output schemas

Input schema
input_schema.json
{
  "type": "object",
  "required": [
    "pdb_id"
  ],
  "properties": {
    "pdb_id": {
      "type": "string",
      "pattern": "^[0-9][a-z0-9]{3}$",
      "description": "Four-character PDB id in lowercase: a digit followed by three lowercase letters or digits, for example 1cbs."
    }
  },
  "additionalProperties": false
}
Output schema
output_schema.json
{
  "type": "object",
  "description": "The PDBe response, keyed by the lowercase PDB id you asked for. The value has a UniProt object keyed by UniProt accession.",
  "minProperties": 1,
  "additionalProperties": {
    "type": "object",
    "properties": {
      "UniProt": {
        "type": "object",
        "description": "One record per UniProt accession the entry's chains map to.",
        "additionalProperties": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "UniProt entry name."
            },
            "mappings": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "end": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "start": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "unp_end": {
                    "type": "integer",
                    "description": "Last UniProt residue covered."
                  },
                  "chain_id": {
                    "type": "string"
                  },
                  "coverage": {
                    "type": "number"
                  },
                  "identity": {
                    "type": "number"
                  },
                  "entity_id": {
                    "type": "integer"
                  },
                  "unp_start": {
                    "type": "integer",
                    "description": "First UniProt residue covered."
                  },
                  "struct_asym_id": {
                    "type": "string"
                  }
                },
                "additionalProperties": true
              },
              "description": "One mapping per chain segment."
            },
            "identifier": {
              "type": "string",
              "description": "UniProt entry name, repeated."
            }
          },
          "additionalProperties": true
        }
      }
    },
    "additionalProperties": true
  }
}