Installation ============ Dependencies ------------ C libraries ~~~~~~~~~~~ * `FFTW3 `_ * `LAPACK `_ Python ~~~~~~ * `numpy `_ * `scipy `_ * `matplotlib `_ * `pillow `_ * `tifffile `_ * `Shapely `_ * `randomcolor `_ * `PyWavelets `_ * `PyQt5 `_ * `h5py `_ * `astropy `_ Installing using wheels ----------------------- Wheels for 64 bit Windows are `here `_. Despite their names, these will not work with 32 bit Python as the C libraries are 64bit. `Christoph Gohlke `_ is one source for Windows wheels for this project's Python dependencies. .. highlight:: none An example 64 bit Windows / Python3 installation :: # Create a virtual environment: $ \path\to\Python3.X\python.exe -m venv pyenv\sa_python3 $ pyenv\sa_python3\Scripts\activate # Install dependencies, wheel files downloaded from Gohlke. $ pip install \path\to\wheels\xyz_amd64.whl $ ... $ pip install randomcolor $ pip install pyqt5 # Install the storm-analysis wheel. $ pip install \path\to\wheels\storm_analysis-X.X-py3-none-any.whl # (Optional) test the install. $ pip install pytest $ cd pyenv\sa_python3\Lib\site-packages\storm_analysis\test $ pytest .. note:: In this install the code in the storm_analysis project can be found in ``pyenv\sa_python3\Lib\site-packages\storm_analysis`` so if you would like to run something from the command line this is the place to look. Installing from source ---------------------- Virtual environments ~~~~~~~~~~~~~~~~~~~~ In order to isolate the storm-analysis from other Python projects, or if you are attempting to install this package on a computer where you do not have root access the use of Python virtual environments is highly recommended. Two good resources are: 1. `Guide to Python / Virtual Environments `_ 2. `PyQt5 / mailing list `_ .. note:: Link (2) above describes the best way to create the virtual environment on Windows in a way that they will work with PyQt5. Using setup.py ~~~~~~~~~~~~~~ The C libraries are built using `SCons `_. Basic installation :: $ git clone https://github.com/ZhuangLab/storm-analysis.git $ cd storm-analysis $ python setup.py build_c $ python setup.py install You may find that this does not work because ``build_c`` fails. This step is just a wrapper for SCons, so you may have better luck running the SCons by itself, then using ``python setup.py install`` to install the project. Linux / OS-X example :: $ cd storm-analysis $ scons $ python setup.py install Windows (mingw64) example :: $ cd storm-analysis $ scons $ python setup.py install `nuwen `_ is one source for mingw64. .. note:: The OS-X build assumes that the lapack and fftw libraries are installed in the standard homebrew location, /usr/local/. If this is not the case you may need to edit storm-analysis/SConstruct. .. note:: The OS-X build requires a fairly recent version of XCode, v8.1+? v8.3.3 is known to work. .. note:: For mingw64 on Windows builds, use the CMD environment provided by mingw64. Using `Anaconda `_ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (Optional) create an environment to keep your main Python installation clean :: $ conda create -n my_env python=X.Y $ conda activate my_env # or activate my_env under Windows Install dependencies (Linux / OS-X) :: $ conda config --add channels conda-forge $ conda install gcc numpy pytest pytest-runner tifffile scipy matplotlib h5py astropy pillow shapely randomcolor pywavelets scons .. note:: Anaconda gcc and XCode gcc may clash. If you have XCode installed you may have better luck not using gcc from Anaconda. Install dependencies (Windows) :: $ conda config --add channels conda-forge $ conda install numpy pytest pytest-runner m2w64-toolchain tifffile scipy h5py astropy matplotlib pillow shapely randomcolor pywavelets scons Get the ``storm-analysis`` source code using git :: $ git clone https://github.com/ZhuangLab/storm-analysis.git $ cd storm-analysis Install storm-analysis :: # Windows / mingw $ scons -Q compiler=mingw $ python setup.py install # Linux / OS-X $ scons $ python setup.py install Testing ~~~~~~~ Test the (source) installation (this will take a few minutes to run). Option 1 :: $ cd storm-analysis $ python setup.py test Option 2 :: $ cd storm-analysis $ pytest .. note:: Due to issues with creating pickle files that are compatible between Python2 and Python3 all of the tests that involve pickles (Spliner mostly) are skipped on Python2. Also ---- If you are modifying the code in the storm-analysis project you may find it more convenient to add a .pth file to your pythonX.Y/site-packages directory. Then you won't have to run ``python setup.py install`` after every change.