Installation
Firstly, you must know that SHERLOCK is a package that lies on many different depencies whose versions are fixed. Hence, we strongly encourage all the users to use a Python virtual environment to install SHERLOCK to avoid versions collisions with your typical host installation.
Some of the SHERLOCK dependencies need numpy and Cython before being installed and therefore you should install them before trying the SHERLOCK installation. Take also into account that the dependencies brought by SHERLOCK also need additional operating system tools that need to be installed separately (C++ compiler, Fortran compiler, etc). So, be aware of counting with the next OS packages installed in your environment (e.g. for Python3.8 in a Linux distribution):
build-essential
libssl-dev
python3.8
python3-pip
libbz2-dev
libssl-dev
libreadline-dev
libffi-dev
libsqlite3-dev
tk-dev
libpng-dev
libfreetype6-dev
llvm-9
llvm-9-dev
gfortran
gcc
locales
python3-tk
python3.8-dev
In case you are running a non-Linux distribution you will need to guess your OS packages matching the ones we mention for Linux.
Therefore, once you have got the OS tools, the SHERLOCK package can be installed from the PyPi repositories (after installing numpy and Cython):
python3 -m pip install numpy
python3 -m pip install Cython
python3 -m pip install sherlockpipe
You can also use our Docker image from DockerHub or build it from our Dockerfile. Therefore, you can also use as a Singularity container meanwhile they support Docker.
Dependencies
All the needed dependencies should be included by your pip installation of SHERLOCK. If you are interested you can inspect the requirements list under setup.py.
Integration
SHERLOCK integrates with several third party services. Some of them are listed below:
TESS, Kepler and K2 databases through Lightkurve, ELEANOR.
MAST and Vizier catalogs through Lightkurve, transitleastsquares and Triceratops
Testing
SHERLOCK comes with a light automated tests suite that can be executed with:
tox
This suite tests several points from the pipeline for the supported Python versions:
The construction of the
SherlockPython object.The parameters setup of the
SherlockPython object.The provisioning of objects of interest files.
Load and filtering of objects of interest.
Different kind of short SHERLOCK executions.
In case you want to test the entire SHERLOCK functionality we encourage you to run some (or all) the manual examples. If so, please read the instructions provided there to execute them.