Hi,
I have some questions about pyomadb. I am trying to get all the 1:1 orthologs of one protein through pyomadb.
from omadb import Client
C=Client()
orthologs_response = C.entries.orthologues("TNR4_HUMAN",rel_type="1:1")
My API query returns 81 orthologs, but when I check the same protein on the OMA website, it only lists 68.
This pattern is consistent across other proteins I've tested. I'm concerned I might be missing a crucial parameter in my API command. Could you help me identify what might be causing this discrepancy?
1 answer
Hi,
sorry for the confusion about the difference between the OMA API call and the website. Please let me clarify this.
With the API, you load the list of orthologous genes based on the verified pairs (the result of the mutually closest gene pairs) by the OMA algorithm, filtered down to the 1:1 orthologs.
On the website, since around 2024, we started presenting the relation type based on the hog-derived pairwise orthologs. These are the pairs of genes that are orthologous after building the Hierarchical Orthologous Groups from the set of all verified pairs. There can be additional pairs, but also fewer. You can check which pairs are affected by comparing the ticks in the Pair vs HOG column.
If you want to obtain the hog-derived orthologous pairs via the API, you can do so by calling
pairs = C.entries.hog_derived_orthologs("TNR4_HUMAN")
pairs_1_to_1 = [pair for pair in pairs if pair['rel_type'] == "1:1"]
print(len(pairs))
Cheers Adrian
Log in to answer this question.
Compare the results from API with one from OMA site. It must be including some entries for which the relation type is not visibly set to
1:1.https://omabrowser.org/api/protein/TNR4_HUMAN/orthologs/?format=json appears to get 84.
The following URL gives me 81 results. https://omabrowser.org/oma/omagroup/1075414/members/