PyOMADB
PyOMADB is a python client to the OMA browser, using the REST API. As such, it requires a stable internet connection to operate. We also provide a similar wrapper for R (https://github.com/DessimozLab/omadb).
Documentation is available here. A notebook containing examples of how to use the package is available here.
New (version 2.1.0) - in order to facilitate the functional and evolutionary aspects of coronaviruses, the new Corona OMA Browser has been launched. Please see the Corona-OMA Example for more information.
Citation
If you use our package in your work, please consider citing:
Kaleb K, Warwick Vesztrocy A, Altenhoff A and Dessimoz C. Expanding the Orthologous Matrix (OMA) programmatic interfaces: REST API and the OmaDB packages for R and Python. F1000Research 2019, 8:42 (https://doi.org/10.12688/f1000research.17548.1)
Installation
The package requires Python 3 (>=3.6). The easiest way to install is using pip
, to install the package from PyPI.
pip install omadb
Documentation
Documentation is available here.
Example
As an example, if a user has the ID of their gene of interest, they can find the corresponding OMA entry as follows:
from omadb import Client
c = Client()
prot_id = 'P53_RAT'
r = c.proteins[prot_id] # Can also be called as c.proteins.info(prot_id)
This is then a Python dictionary containing information about this entry. Some information is lazily loaded, for example:
orth = r.orthologs # Will lazily load in the background.
Alternatively, if the user has the sequence but no ID, the closest entry in OMA can be identified as so:
seq = 'MKLVFLVLLFLGALGLCLAGRRRSVQWCAVSQPEATKCFQWQRNMRKVRGPPVSCIKRDSPIQCIQAIAENRADAVTLDGGFIYEAGLAPYKLRPVAAEVYGTERQPRTHYYAVAVVKKGGSFQLNELQGLKSCHTGLRRTAGWNVPIGTLRPFLNWTGPPEPIEAAVARFFSASCVPGADKGQFPNLCRLCAGTGENKCAFSSQEPYFSYSGAFKCLRDGAGDVAFIRESTVFEDLSDEAERDEYELLCPDNTRKPVDKFKDCHLARVPSHAVVARSVNGKEDAIWNLLRQAQEKFGKDKSPKFQLFGSPSGQKDLLFKDSAIGFSRVPPRIDSGLYLGSGYFTAIQNLRKSEEEVAARRARVVWCAVGEQELRKCNQWSGLSEGSVTCSSASTTEDCIALVLKGEADAMSLDGGYVYTAGKCGLVPVLAENYKSQQSSDPDPNCVDRPVEGYLAVAVVRRSDTSLTWNSVKGKKSCHTAVDRTAGWNIPMGLLFNQTGSCKFDEYFSQSCAPGSDPRSNLCALCIGDEQGENKCVPNSNERYYGYTGAFRCLAENAGDVAFVKDVTVLQNTDGNNNEAWAKDLKLADFALLCLDGKRKPVTEARSCHLAMAPNHAVVSRMDKVERLKQVLLHQQAKFGRNGSDCPDKFCLFQSETKNLLFNDNTECLARLHGKTTYEKYLGPQYVAGITNLKKCSTSPLLEACEFLRK'
r = c.proteins.search(seq)
For further examples that correspond to the R
versions given in the paper, see the Jupyter notebook, which is also available on mybinder.
Corona-OMA Example
In order to facilitate the functional and evolutionary aspects of coronaviruses, the new Corona OMA Browser has been launched.
The endpoint for the Corona OMA Browser is corona.omabrowser.org/api
and can be used in PyOMADB by importing CoronaClient
instead of Client
.
from omadb import CoronaClient
c = CoronaClient() # Connects to Corona OMA endpoint
prot_id = 'R1AB_SARS2' # Severe acute respiratory syndrome coronavirus 2
r = c.proteins[prot_id] # Can also be called as c.proteins.info(prot_id)
This is then a Python dictionary containing information about this entry. Some information is lazily loaded, for example:
orth = r.orthologs # Will lazily load in the background.
License
PyOMADB is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
PyOMADB is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with PyOMADB. If not, see http://www.gnu.org/licenses/.