How the BioMed Reasoning API Traces Lisinopril to Cough
March 29, 2026 · 6 min read
Lisinopril-induced cough is one of the most well-documented adverse drug reactions in clinical medicine. Between 5% and 35% of patients taking ACE inhibitors report a dry, persistent cough. But why does blocking an enzyme involved in blood pressure regulation cause a respiratory symptom?
The BioMed Reasoning API answers this question by tracing a mechanistic causal chain across multiple biomedical databases, not by generating text from an LLM.
Step 1: Drug Normalization
When the query "Why does lisinopril cause cough?" enters the system, the question parser extracts two entities: the drug lisinopril and the symptom cough. The drug name is resolved against PubChem, returning CID:5362119 with molecular formula C21H31N3O5. Brand name variants like Zestril or Prinivil are mapped to the same canonical form via the normalization layer.
Step 2: Target Identification
ChEMBL returns the primary target: Angiotensin-converting enzyme (ACE), UniProt accession P12821, with an action type of INHIBITOR. The confidence score is 0.95, reflecting strong experimental evidence from bioactivity assays. This is not an LLM prediction — it is a curated pharmacological relationship from the European Bioinformatics Institute.
Step 3: Pathway Resolution
The system queries Reactome for pathways involving ACE. The critical finding is the bradykinin signaling pathway (R-HSA-9660821). ACE normally degrades bradykinin, a peptide involved in inflammation and vascular permeability. When ACE is inhibited by lisinopril, bradykinin accumulates.
Step 4: CTD Gene-Disease Evidence
The Comparative Toxicogenomics Database provides 17 curated chemical-gene interactions for lisinopril, including direct evidence linking ACE inhibition to respiratory effects. Multiple PubMed IDs (e.g., PMID:15947090) support this relationship with peer-reviewed literature.
Step 5: Adverse Event Confirmation
OpenFDA FAERS shows over 34,000 cough reports associated with lisinopril, making it one of the most frequently reported adverse events for this drug. This real-world pharmacovigilance data corroborates the mechanistic chain.
The Complete Causal Chain
The graph engine assembles these pieces into a verifiable chain:
Lisinopril → INHIBITS (ChEMBL, 95%) → ACE
ACE → PARTICIPATES_IN (Reactome, 88%) → Bradykinin signaling
Bradykinin signaling → ASSOCIATED_WITH (CTD/FAERS, 82%) → Cough
Overall chain confidence: 88%. Every link has a source database, an identifier, and a confidence score.
Why This Matters
An LLM could generate a plausible paragraph about lisinopril and cough. But it could not tell you which specific database confirmed the ACE-bradykinin relationship, how many FAERS reports exist, or what the confidence score is for each link in the chain. The BioMed Reasoning API provides all of this, because the reasoning is derived from the graph, not generated by a language model.
This is the difference between information retrieval and mechanistic reasoning. The system does not just know that lisinopril can cause cough — it knows why, and it can prove each step.