// Drugs treating diseases connected to the same genes MATCH (g:Gene)<-[:ASSOCIATES]-(d1:Disease)<-[:TREATS]-(c:Compound), (g)<-[:ASSOCIATES]-(d2:Disease) WHERE NOT (c)-[:TREATS]->(d2) RETURN c.name AS Drug, d2.name AS CandidateDisease, count(g) AS SharedGenes ORDER BY SharedGenes DESC, Drug LIMIT 20;