Installation

entrezpy can be installed or included into your own pipeline using two approaches: PyPi or Append to sys.path.

Requirements

  • Python version >= 3.6

  • Python Standard Library :

    The standard library should be installed with Python. Just in case, these modules from the Python Standard Library are required:

    • base64
    • io
    • json
    • logging
    • math
    • os
    • queue
    • random
    • socket
    • sys
    • threading
    • time
    • urllib
    • uuid
    • xml.etree.ElementTree

Test your Python version

Test if we have at least Python 3.6 :

$ python
>>> import sys
>>> sys.version_info
>>> sys.version_info(major=3, minor=6, micro=6, releaselevel='final', serial=0)
                         ^        ^

PyPi

Install entrezpy via PyPi and check:

$ pip install entrezpy --user

Test if we can import entrezpy:

$ python
>>> import entrezpy

Append to sys.path

Add entrezpy to your pipeline via sys.path. This requires to clone the source code adjusting sys.path.

Assuming following directory structure where entrezpy was cloned into include:

$ git clone https://gitlab.com/ncbipy/entrezpy.git project_root/include

project_root
|
|-- src
|   `-- pipeline.py
`-- include
    `-- entrezpy
        `-- src
            `-- entrezpy
                `-- efetch

Importing the module efetcher in pipeline.py by adjust sys.path in project_root/src/pipeline.py

sys.path.insert(1, os.path.join(sys.path[0], '../include/entrezpy/src'))
import entrezpy.efetch.efetcher

ef = entrezpy.efetch.efetcher.Efetcher('toolname', 'email')

Test entrezpy

Run the examples in the git repository in entrezpy/examples, e.g:

$ ./path/to/entrezpy/examples/entrezpy-example.elink.py --email you@email

To adjust the examples for testing an installation via PyPi, remove the sys.path line in the examples prior to invoking them, e.g.

for i in entrezpy/examples/*.py; do                 \
  fname=$(basename $i | sed 's/\.py/\.adjust.py/'); \
  sed '/sys.path.insert/d' $i > $fname;             \
  chmod +x $fname;                                  \
done;

The examples print the results onto the standard output and additional information onto standard error. Currently, we propose to run the examples and redirecting standard error to a file. For example, testing efetch, run examples/entrezpy-example.efetch.py as follows:

./examples/entrezpy-example.efetch.py --email you@email 2> efetch.stderr

efetch.stderr can be monitored as follows:

tail -f efetch.stderr