Hi everyone,
I need help with a code I’m writing.
Basically, I’ve already written code that retrieves, for each target UniProt ID in a list, all the associated diseases. From analyzing the results of this code (see the code below), I’ve noticed that some of the retrieved diseases are not “regular” diseases. In fact, some of the retrieved diseases are “lymphocyte count,” “blood protein measurement,” “body mass index,” and other related terms.
So, my question is: Is there a way to filter out these “not regular” diseases and only retrieve “real” diseases?
I have seen that those “not regular” diseases are not in the “disease” ontology tree if we look in the Ontology Lookup Service OLS, Ontology Lookup Service (OLS) (for example, lymphocyte count “EFO_0004587” is under “measurement”) , while other proper diseases (such as Alzheimer’s disease “MONDO_0004975” or rheumatoid arthritis “EFO_0000685”) are under the “disease” ontology tree.
Is this the right way to filter out “not regular” diseases? Can I do that using the Open Targets Platform API? Or do I have to somehow query OLS with the disease ID?
This is the code I’m using to fetch target associated diseases:
query retrieve_diseases_from_target_UniprotId($queryTerms:String!) {
mapIds(queryTerms: [$queryTerms]) {
mappings {
hits {
id
name
object {
... on Target {
id
approvedSymbol
approvedName
associatedDiseases(
page: { index: 0, size: 30000}
orderByScore: "score"
BFilter: ""
aggregationFilters: []
enableIndirect: false
){
count
rows {
disease {
id
name
}
score
}
}
}
}
}
}
}
}
Is there any flag I can use to only retrieve proper diseases?
Thank you so much
Vittorio