Computational Drug Repurposing with Multiscale Interactomes

Jul 15, 2023·
Yassir Boulaamane
Yassir Boulaamane
· 4 min read

Repurposing starts from a molecule that already exists. The interactome is how you ask whether that molecule sits near a disease for a reason the label “approved for something else” does not contain.

The workflow in this note puts drugs, proteins, pathways, and one disease into a single graph, embeds the nodes, and ranks them by similarity to the disease. The ranking is a shortlist. The assay is still the test.

From a multiscale graph to a ranked shortlistDrugs, proteins, pathways, and a disease node form one graph. Node2Vec and a graph convolutional network embed the nodes. Cosine similarity to the disease ranks drugs and proteins. Filters and a cell assay come after the rank.One graph, then a distance to the diseaseDrugsDrugBank edgesProteinsInteractionsPathwaysMembershipDiseaseKnown proteinsNode2Vec, then a graph convolutional networkDiffusion loss pulls nodes toward the disease neighborhoodCosine similarity to the disease nodeA score for every drug and every proteinFilter, then a cell assayThe rank is not the experiment
Figure 1. Edges are not all the same kind of fact. A DrugBank binding edge, a protein-protein interaction, a pathway membership, and a disease association are four statements. The embedding treats the graph as one object, so those statements have to be ones you are willing to mix.

The graph

Nodes are drugs, proteins, pathways, and diseases. Edges are the relations you have a source for. Drug-protein links can come from DrugBank. Protein-protein links should be the high-confidence set you would defend, not every interaction a database has ever stored. Pathway edges are membership. Disease edges are the associations you add for the condition you care about: host-pathogen interactions in an infection, or reported α-synuclein partners if the disease is Parkinson’s. Those are examples of edge types. They are not results of this note.

Until the disease node is in the graph and tied to the proteins or pathways you claim are relevant, “proximity to the disease” is undefined. Add that node before any embedding.

What the embedding is optimizing

Node2Vec is the first representation. It walks the graph so that a node’s vector reflects both its immediate neighbors and a wider neighborhood. A graph convolutional network then adjusts those vectors. The loss used here is a diffusion loss: nodes that the diffusion treats as close to the disease are pulled together in the embedding.

Every drug, protein, and pathway ends as a vector. Candidates are ranked by cosine similarity to the disease vector. You get two lists from the same geometry. Drugs near the disease are direct repurposing candidates. Proteins near the disease are candidate targets, which still need a ligand.

Three ways to read the same ranking

Three ways to turn the ranking into a shortlistTarget-centric selection takes drugs closest to the disease. Protein-centric selection takes proteins closest to the disease and then looks up ligands. Polypharmacology selection prefers drugs close to several of those proteins at once.The rank is one list. The shortlist is a choice.Target-centricTake the drugs closest to the disease nodeProtein-centricTake the closest proteins, then their predicted bindersPolypharmacologyPrefer a drug close to several of those proteins
Figure 2. All three shortlists are views of the same embedding. Protein-centric selection needs a second resource, such as PolypharmDB, to turn a protein hit into a compound. That second lookup is not the cosine score.

Use more than one of these on purpose, and keep track of which route produced each name. A drug that appears on two of the lists is a more interesting candidate than a drug that appears on one. It is still a candidate.

Filters before the assay

Keep the list inside the chemical space you can actually test. In this workflow that means FDA-approved small molecules with drug-like properties, enough scaffold diversity that you are not ordering five near-duplicates, and no pile-up on a single target or a single mechanism. A filter that only sorts by the cosine score will hand you a chemically boring set.

The experiment

The cell assay has to match the disease you put in the graph. For an infection that may be an inhibition assay or a pseudovirus entry assay. For another phenotype it is the screen that reads that phenotype. A hit is then checked by an orthogonal measurement, such as qRT-PCR or a targeted inhibition assay. The orthogonal assay is there because a proximity score and a single phenotypic well can agree for the wrong reason.

Bottom line

The interactome gives you a geometry in which “near the disease” is a number. Node2Vec and the graph convolutional network are how this workflow builds that geometry. Cosine similarity is how it reads it. The three selection routes are three questions you can ask of the same vectors. None of them is a demonstrated new use. That demonstration is the assay, run on a shortlist you can explain in terms of the edges you chose to include.