Commit d8571a7d authored by David Keitel's avatar David Keitel
Browse files

README: move to github

parent 4f7a96d4
......@@ -3,168 +3,13 @@
This is a python package providing an interface to perform F-statistic based
continuous gravitational wave (CW) searches.
For documentation, please use the [wiki](
This repository is now for archival purposes only,
active development has been moved to:
In the
we have a number of scripts demonstrating different use cases.
**===> <===**
## Installation
### python installation
This package works best with `python3.5+`,
with higher versions to be required soon.
While many systems come with a system wide python
installation, it can often be easier to manage a user-specific python
installation. This way one does not require root access to install or remove
modules. One method to do this, is to use the `conda` system, either through
the stripped down [miniconda](
installation, or the full-featured
[anaconda]( (these are essentially the
same, but the `anaconda` version installs a variety of useful packages such as
`numpy` and `scipy` by default).
The fastest/easiest method is to follow your OS instructions
[here]( which will install Miniconda.
For the rest of this tutorial, we will make use of `pip` to install modules (
not all packages can be installed with `conda` and for those using alternatives
to `conda`, `pip` is more universal).
This can be installed with
conda install pip
### install PyFstat the easy way
Currently, the easiest way to install PyFstat is to point pip to this git repository,
which will give you the latest master version:
pip install git+
or, if you have an ssh key installed in this gitlab instance:
pip install git+ssh://
(The release on Zenodo is outdated and might not even install depending on your python version.
New Zenodo and/or PyPi releases are on our to-do list.)
See further down for installing manually from a local git clone.
### Dependencies
PyFstat uses the following external python modules,
which should all be pulled in automatically if you use pip:
* [numpy](
* [matplotlib]( >= 1.4
* [scipy](
* [ptemcee](
* [corner](
* [dill](
* [peakutils](
* [pathos](
* [tqdm](
* [bashplotlib](
* [lalsuite](
* [pycuda](, required for the tCWFstatMapVersion=pycuda
option of the TransientGridSearch class.
(Note: 'pip install pycuda' requires a working nvcc compiler in your path.)
In case the automatic install doesn't properly pull in all dependencies,
to install all of these modules manually, you can also run
pip install -r /PATH/TO/THIS/DIRECTORY/requirements.txt
For a general introduction to installing modules, see
If you prefer to make your own LALSuite installation
[](from source),
make sure it is **swig-enabled** and contains at least the `lalpulsar` package.
A minimal confuration line to use would be e.g.:
./configure --prefix=${HOME}/lalsuite-install --disable-all-lal --enable-lalpulsar --enable-lalapps --enable-swig
### PyFstat installation from source
In a terminal, clone the directory:
git clone
The module and associated scripts can be installed system wide
(or to the currently active venv),
assuming you are in the source directory, via
python install
As a developer, alternatively
python develop
can be useful so you can directly see any changes you make in action.
Alternatively, add the source directory directly to your python path.
To check that the installation
was successful, run
python -c 'import pyfstat'
if no error message is output, then you have installed `pyfstat`. Note that
the module will be installed to whichever python executable you call it from.
### Ephemerides installation
PyFstat requires paths to earth and sun ephemerides files
in order to use the `lalpulsar.ComputeFstat` module and various `lalapps` tools.
If you have done `pip install lalsuite`,
you need to manually download at least these two files:
* [earth00-40-DE405.dat.gz](
* [sun00-40-DE405.dat.gz](
(Other ephemerides versions exist, but these should be sufficient for most applications.)
You then need to tell PyFstat where to find these files,
by either setting an environment variable $LALPULSAR_DATADIR
or by creating a `~/.pyfstat.conf` file as described further below.
If you are working with a virtual environment,
you should be able to get a full working ephemerides installation with these commands:
mkdir $VIRTUAL_ENV/share/lalpulsar
wget -P $VIRTUAL_ENV/share/lalpulsar
wget -P $VIRTUAL_ENV/share/lalpulsar
echo 'export LALPULSAR_DATADIR=$VIRTUAL_ENV/share/lalpulsar' >> ${VIRTUAL_ENV}/bin/activate
source path/to/venv/bin/activate
If instead you have built and installed lalsuite from source,
and set your path up properly through something like
`source $MYLALPATH/etc/`,
then the ephemerides path should be automatically picked up from
the $LALPULSAR_DATADIR environment variable.
Alternatively, you can place a file
`~/.pyfstat.conf` into your home directory which looks like
earth_ephem = '/home/<USER>/lalsuite-install/share/lalpulsar/earth00-19-DE421.dat.gz'
sun_ephem = '/home/<USER>/lalsuite-install/share/lalpulsar/sun00-19-DE421.dat.gz'
Paths set in this way will take precedence over the environment variable.
Finally, you can manually specify ephemerides files when initialising
each PyFstat search (as one of the arguments).
Please also refer to the github repository for installation and usage instructions
and to report issues.
### Contributors
......@@ -174,25 +19,29 @@ each PyFstat search (as one of the arguments).
* Karl Wette
* Sylvia Zhu
This project is open to development, please feel free to contact us
for advice or just jump in and submit a pull request.
## Citing this work
If you use `PyFstat` in a publication we would appreciate if you cite the
original paper introducing the code, the [ADS page can be found
here]( and the version
If you use `PyFstat` in a publication we would appreciate if you cite both the
original paper introducing the code
(the [ADS page can be found here](
and the DOI for the software itself.
The latest version released on Zenodo from this repository here was v1.3,
see the following Bibtex entry.
Or see the [new github repository](
for the latest information.
author = {{Ashton}, G. and {Keitel}, D.},
title = {{PyFstat-v1.2}},
month = may,
year = 2018,
doi = {10.5281/zenodo.1243931},
url = {},
note= {\url{}}
author = {Ashton, Gregory and
Keitel, David and
Prix, Reinhard},
title = {PyFstat-v1.3},
month = jan,
year = 2020,
publisher = {Zenodo},
version = {1.3},
doi = {10.5281/zenodo.3620861},
url = {}
note = {\url{}}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment