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.

Try the API Read the Docs


plex_api.py

# Resolve a compound name to a Plex ID
resolved = plex.resolve(["aspirin"])

→ chembl:CHEMBL25 (Aspirin, match: definitive)

# Search the knowledge graph for targets
results = plex.search(
    ids=["chembl:CHEMBL25"],
    instructions="Identify primary protein targets"
)

→ Found 847 relationships across 12 categories

  • PTGS2 (COX-2) rank: 0.97 evidence: 1,243
  • PTGS1 (COX-1) rank: 0.94 evidence: 987
  • NFKB1 (NF-κB) rank: 0.71 evidence: 312
  • IKBKB (IKK-β) rank: 0.58 evidence: 156

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

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.

# Resolve any biomedical entity
resolved = 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.

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.

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": [...]
}

Common workflow patterns

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

01 Target Identification from Chemical Structure

02 Disease Gene Signature Analysis

03 Biomarker Discovery from Expression Profiles

04 Cell Line Response Analysis

05 Cross-Species Validation


What’s in the graph

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

  • Chemistry & Compounds
  • Targets & Genes
  • Gene Expression & Perturbations
  • Pathways & Biology
  • Cell Lines & Cancer
  • Clinical & Safety
  • Literature & IP
  • Cheminformatics

Compound similarity & activity filtering

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

Fingerprint Types

Type Default Threshold Description
sim/chem 0.75 Standard fingerprints, general-purpose similarity
ecfp2 0.30 Extended connectivity, radius 2
ecfp4 0.30 Extended connectivity, radius 4 (most common)
ecfp6 0.30 Extended connectivity, radius 6
ecfp8 0.30 Extended connectivity, radius 8
pubchem 0.30 PubChem fingerprints
none Exact matches only, no similarity expansion

Similarity Methods

simMethod parameter
tanimoto
tversky
euclid-sub

Activity Filtering

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

# Any measurement type
activityFilter="* <= 100"

How to integrate

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


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.

Request API Access Talk to a Scientist