Skip to main content
This guide builds a landscape of KRAS-directed programs: who is developing them, how far along each is, and which trials back them. The same pattern works for an indication or a modality.

Prerequisites

  • A Pav API key in PAV_API_KEY. See Quickstart.
  • Python 3.9+ and pip install requests.

Approach

  1. Search by meaning. q finds programs whose text describes the mechanism, including ones with no structured target.
  2. Add exact target matches. The target filter catches programs that state the target but word their description differently.
  3. Merge by program id, then filter. Relevance search returns weaker matches further down the list; keep only programs that name the target.
  4. Rank by phase and read the linked trials.
Running both searches matters: only about a quarter of programs publish a target (see Coverage and sources).

Script

landscape.py
Example output (September 2026)
A program is one drug in one indication, so a drug developed in several indications appears once per indication. Count distinct drug per company for an asset-level view.

Extend it

  • Nearest competitors of one asset. GET /v1/programs/{id}/similar-programs returns the programs most similar to a given program. Run it on the leading assets to catch programs your query terms missed.
  • Trial detail. Each program lists clinical_trials[] with nct_id, phase, status and sponsor. Fetch GET /v1/trials/{nct_id} for enrollment, dates and primary outcomes.
  • By indication. Replace the searches with q="obesity" plus indication=Obesity, and group by indication_terms[].term_id to merge phrasings such as “Obesity” and “Metabolic (Obesity)”.
  • Deals and patents around the landscape. Pass each company’s company_id to /v1/deals and /v1/patents.
With the MCP server, an agent can do the same from one prompt: “Build a landscape of KRAS inhibitors by phase with their lead indications and trial counts.”