I have a list of Reactome pathway IDs. I want to find whether any of them are disease pathways and also retrieve associated disease names. Is it possible to retrieve the information using API or neo4j graph database query?

To do this, you can do a POST query with your pathway identifiers to the endpoint described here:

To know if a Pathway is a disease, look at the "isInDisease" property. The disease name is contained in the displayName of the diseases in the "disease" array of the Pathway models.

One query example would be

 
curl -X 'POST' \ 
 'https://reactome.org/ContentService/data/query/ids' \ 
 -H 'accept: */*' \ 
 -H 'Content-Type: text/plain' \ 
 -d 'R-HSA-9679506,R-HSA-8876384'> pathwaysDescription.json 

To do this for multiple ids using cypher, you can use this query:

 
MATCH (p:Pathway) 
WHERE p.stId in ["R-HSA-9679506","R-HSA-8876384"] 
OPTIONAL MATCH (p)-[:disease]->(d:Disease) 
RETURN p,d 

Using the optional match allows you to get both pathways associated with a disease and those which are not.

If you want to filter for only disease pathways, use the following:

 
MATCH (p:Pathway)-[:disease]->(d:Disease) 
WHERE p.stId in ["R-HSA-9679506","R-HSA-8876384"] 
RETURN p,d 

You just need to provide your list of stId (reactome identifiers) in the "where" list.

Finally, if you want to export a table instead of viewing it in the browser, use the following:

 
MATCH (p:Pathway) 
WHERE p.stId in ["R-HSA-9679506","R-HSA-8876384"] 
OPTIONAL MATCH (p)-[:disease]->(d:Disease) 
WITH p, collect(d) as diseases 
RETURN p.stId, p.displayName, p.isInDisease, [d in diseases | d.displayName] as diseaseNames, [d in diseases | d.databaseName + ":" + d.identifier] as diseaseIdentifiers 

Note that some pathways, like R-HSA-9608290 are associated with several diseases.

AltStyle によって変換されたページ (->オリジナル) /