Python REST API for Entrez E-Utilities: stateless, easy to use, reliable.
Project description
Python REST API for Entrez E-Utilities, aiming to be easy to use and reliable.
Previously published entrezpy implements stateful API extensions (queries with history) which is error-prone and led me (and others) to obtain misleading results.
This implementation: - avoids the problem altogether by not using such stateful API, - makes common tasks easy thanks to simple Pythonic API, - is typed and integrates well with mypy, - tested on Windows, Mac and Linux across Python 3.6, 3.7, and 3.8, - is limited in scope, allowing to focus on the reliability of the core code.
Stats: Beta
from easy_entrez import EntrezAPI
entrez_api = EntrezAPI(
'your-tool-name',
'e@mail.com',
# optional
return_type='json'
)
# find up to 10 000 results for cancer in human
result = entrez_api.search('cancer AND human[organism]', max_results=10_000)
# data will be populated with JSON or XML (depending on the `return_type` value)
result.data
See more in the Demo notebook and documentation.
Installation
Requires Python 3.6+. Install with:
pip install easy-entrez
If you wish to enable (optional, tqdm-based) progress bars use:
pip install easy-entrez[with_progress_bars]
Alternatives:
You might want to try:
biopython.Entrez - biopython is a heavy dependency, but probably good choice if you already use it
pubmedpy - provides interesting utilities for parsing the responses
entrez - appears to have a comparable scope but quite different API
I have tried and do not recommend:
entrezpy - in addition to the history problems, watch out for documentation issues and basically no reaction to pull requests.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.