For Developers

Build on the biomedical
knowledge graph.

Plex integrates biological & chemical databases. Billions of relationships. Three API calls to insight. Resolve entities, search the graph, and let AutoPlex run autonomous research campaigns.

Architecture

A unified biomedical knowledge graph

Plex integrates many databases into a single graph with billions of relationship edges. Every connection represents a discrete evidence point — traceable back to its source.

Graph-Based Ranking

Plex Rank 0–1

Results are ranked using centrality algorithms inspired by PageRank. The score (0–1) reflects the quantity and quality of supporting evidence. A rank of 1.0 means the strongest support in the graph. Results appearing across multiple independent categories carry the highest confidence.

Entity Categories

⬡ Compounds

Small molecules, peptides, chemical entities

◉ Targets

Genes, proteins, biological macromolecules

✠ Diseases

Disease classifications and ontologies

⇄ Pathways

Biological pathways and signaling cascades

≡ Gene Sets

Gene collections, signatures, complexes

∿ Expression Profiles

RNA/protein perturbation profiles

API

Three operations. Infinite insight.

Every Plex workflow combines these three primitives: resolve entities, search the graph, and let AutoPlex interpret the results.

01

Resolve

Convert names to Plex IDs

Turn gene symbols, compound names, SMILES strings, or disease terms into validated Plex IDs with match-quality indicators.

python
# Resolve any biomedical entityresolved = plex.resolve(["aspirin", "BRD4", "lung cancer"])
Response
[
  {
    "id": "unichem:161671",
    "category": "compound",
    "title": "Aspirin",
    "match_type": "resolved-definitive"
  },
  {
    "id": "entrezgene:23476",
    "category": "target",
    "title": "Bromodomain-containing protein 4",
    "gene_symbol": "BRD4"
  }
]
02

Search

Query the knowledge graph

Search billions of relationships with compound similarity, activity filtering, and natural language instructions interpreted by AutoPlex.

python
results = plex.search(
ids=["chembl:CHEMBL25"],
instructions="Identify primary targets",
simType="ecfp4",
simThreshold=0.4
)
Response
{
  "targets": [
    { "id": "entrezgene:5743", "title": "PTGS2",
      "rank": 0.97, "evidence": 1243 },
    { "id": "entrezgene:5742", "title": "PTGS1",
      "rank": 0.94, "evidence": 987 }
  ],
  "pathways": [...],
  "diseases": [...],
  "search_id": "a1b2c3d4-..."
}
03

AutoPlex

Let AI run the research

Describe a research objective. AutoPlex autonomously plans multi-step query strategies, executes them, interprets results, and delivers a complete report.

python
report = plex.search(
ids=compound_ids,
instructions="""
Characterize this compound:
- Primary targets with binding data
- Mechanism of action
- Safety signals from FAERS
- Clinical trial landscape
"""
)
Response
{
  "analysis": "Aspirin (acetylsalicylic acid)
    primarily inhibits PTGS2 (COX-2) and
    PTGS1 (COX-1) with IC50 values of...",
  "targets": [...],
  "moa": [...],
  "adverse_events": [...],
  "clinical_trials": [...],
  "evidence_links": [...]
}

Interactive Demo

Try it yourself

Explore pre-loaded examples showing real Plex API workflows. Click “Run” to see the results.

Convert a compound name into a validated Plex ID

demo.py
1from plex import resolve
2
3# Resolve a compound by name
4results = resolve(["aspirin"])
5
6for match in results:
7 print(f"{match['id']} {match['title']}")
8 print(f" category: {match['category']}")
9 print(f" match: {match['match_type']}")
Output
Click “Run” to see results
Get API AccessAll examples use real data from the Plex knowledge graph

Workflows

Common workflow patterns

Real-world patterns used by computational biologists and chemists to accelerate drug discovery with Plex.

Data

What’s in the graph

Plex integrates many databases spanning chemistry, genomics, transcriptomics, proteomics, clinical data, and scientific literature.

Cheminformatics

Compound similarity & activity filtering

Fine-tune structural similarity searches with multiple fingerprint types, similarity methods, and bioactivity filters.

Fingerprint Types

simType parameter

TypeDefault ThresholdDescription
sim / chem0.75Standard fingerprints, general-purpose similarity
ecfp20.30Extended connectivity, radius 2
ecfp40.30Extended connectivity, radius 4 (most common)
ecfp60.30Extended connectivity, radius 6
ecfp80.30Extended connectivity, radius 8
pubchem0.30PubChem fingerprints
noneExact matches only, no similarity expansion

Similarity Methods

simMethod parameter

tanimotoStandard Tanimoto coefficient (default). Symmetric comparison.
tverskyAsymmetric Tversky similarity. Useful for substructure-like queries.
euclid-subEuclidean distance with substructure component.

Activity Filtering

activityFilter parameter

# Filter by specific measurement type
activityFilter="IC50 <= 100"
activityFilter="Ki <= 50"

# Any measurement type
activityFilter="* <= 100"
Supported types:EC50ED50IC50ID50KbKdKiPotencyDC50

Integration

How to integrate

Use Plex from Python, REST, Jupyter notebooks, or as an MCP server for AI agent workflows.

from plex import resolve, search

# 1. Resolve entities
compounds = resolve(["JQ1"], category="compound")
compound_id = compounds[0]["id"]

# 2. Search the knowledge graph
results = search(
    ids=[compound_id],
    instructions="Identify bromodomain selectivity profile",
    simType="ecfp4",
    simThreshold=0.4
)

# 3. Analyze results
for target in results["targets"][:5]:
    print(f"{target['gene_symbol']:10s} rank={target['rank']:.2f}")

# Reuse search results with a new question
follow_up = search(
    searchId=results["search_id"],
    instructions="Focus on targets with IC50 < 100nM"
)

Get Started

Ready to build on the biomedical knowledge graph?

Request API access to start resolving entities, searching billions of relationships, and running autonomous research with AutoPlex. Enterprise features include proprietary data integration, custom deployments, and dedicated scientific support.

Proprietary data integration
Enterprise deployments
Scientific support team