mirror of
https://github.com/SheffieldML/GPy.git
synced 2026-05-15 06:52:39 +02:00
[readme] updated
This commit is contained in:
parent
b585ca5a2c
commit
134144c4c7
6 changed files with 118 additions and 22 deletions
|
|
@ -65,8 +65,8 @@ deploy:
|
||||||
password:
|
password:
|
||||||
secure: "vMEOlP7DQhFJ7hQAKtKC5hrJXFl5BkUt4nXdosWWiw//Kg8E+PPLg88XPI2gqIosir9wwgtbSBBbbwCxkM6uxRNMpoNR8Ixyv9fmSXp4rLl7bbBY768W7IRXKIBjpuEy2brQjoT+CwDDSzUkckHvuUjJDNRvUv8ab4P/qYO1LG4="
|
secure: "vMEOlP7DQhFJ7hQAKtKC5hrJXFl5BkUt4nXdosWWiw//Kg8E+PPLg88XPI2gqIosir9wwgtbSBBbbwCxkM6uxRNMpoNR8Ixyv9fmSXp4rLl7bbBY768W7IRXKIBjpuEy2brQjoT+CwDDSzUkckHvuUjJDNRvUv8ab4P/qYO1LG4="
|
||||||
on:
|
on:
|
||||||
tags: true
|
#tags: true
|
||||||
branch: plot_density
|
branch: plot_density
|
||||||
server: https://testpypi.python.org/pypi
|
#server: https://testpypi.python.org/pypi
|
||||||
distributions: "bdist_wheel sdist"
|
distributions: "bdist_wheel sdist"
|
||||||
skip_cleanup: true
|
skip_cleanup: true
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
__version__ = "0.8.8dev1"
|
__version__ = "0.8.8dev0"
|
||||||
|
|
|
||||||
39
README.md
39
README.md
|
|
@ -9,21 +9,26 @@ The Gaussian processes framework in Python.
|
||||||
* [Unit tests (Travis-CI)](https://travis-ci.org/SheffieldML/GPy)
|
* [Unit tests (Travis-CI)](https://travis-ci.org/SheffieldML/GPy)
|
||||||
* [](http://opensource.org/licenses/BSD-3-Clause)
|
* [](http://opensource.org/licenses/BSD-3-Clause)
|
||||||
|
|
||||||
#### Continuous integration
|
## Continuous integration
|
||||||
|
|
||||||
| | Travis-CI | Codecov |
|
| | Travis-CI | Codecov |
|
||||||
| ---: | :--: | :---: |
|
| ---: | :--: | :---: |
|
||||||
| **master:** | [](https://travis-ci.org/SheffieldML/GPy) | [](http://codecov.io/github/SheffieldML/GPy?branch=master) |
|
| **master:** | [](https://travis-ci.org/SheffieldML/GPy) | [](http://codecov.io/github/SheffieldML/GPy?branch=master) |
|
||||||
| **devel:** | [](https://travis-ci.org/SheffieldML/GPy) | [](http://codecov.io/github/SheffieldML/GPy?branch=devel) |
|
| **devel:** | [](https://travis-ci.org/SheffieldML/GPy) | [](http://codecov.io/github/SheffieldML/GPy?branch=devel) |
|
||||||
|
|
||||||
### Supported Platforms:
|
## Supported Platforms:
|
||||||
|
|
||||||
|
[<img src="https://www.python.org/static/community_logos/python-logo-generic.svg" style="height: 40px;">](https://www.python.org/)
|
||||||
|
[<img src="https://upload.wikimedia.org/wikipedia/commons/5/5f/Windows_logo_-_2012.svg" style="height: 40px;">](http://www.microsoft.com/en-gb/windows)
|
||||||
|
[<img src="https://upload.wikimedia.org/wikipedia/commons/8/8e/OS_X-Logo.svg" style="height: 40px;">](http://www.apple.com/osx/)
|
||||||
|
[<img src="https://upload.wikimedia.org/wikipedia/commons/3/35/Tux.svg" style="height: 40px;">](https://en.wikipedia.org/wiki/List_of_Linux_distributions)
|
||||||
|
|
||||||
[<img src="https://www.python.org/static/community_logos/python-logo-generic.svg" height="40">](https://www.python.org/) [<img src="https://upload.wikimedia.org/wikipedia/commons/5/5f/Windows_logo_-_2012.svg" height="40">](http://www.microsoft.com/en-gb/windows) [<img src="https://upload.wikimedia.org/wikipedia/commons/8/8e/OS_X-Logo.svg" height="40">](http://www.apple.com/osx/) [<img src="https://upload.wikimedia.org/wikipedia/commons/3/35/Tux.svg" height="40">](https://en.wikipedia.org/wiki/List_of_Linux_distributions)
|
|
||||||
----
|
----
|
||||||
|
|
||||||
Python 2.7, 3.3 and higher
|
Python 2.7, 3.3 and higher
|
||||||
|
|
||||||
|
|
||||||
### Citation
|
## Citation
|
||||||
|
|
||||||
@Misc{gpy2014,
|
@Misc{gpy2014,
|
||||||
author = {{The GPy authors}},
|
author = {{The GPy authors}},
|
||||||
|
|
@ -36,7 +41,7 @@ Python 2.7, 3.3 and higher
|
||||||
|
|
||||||
We like to pronounce it 'g-pie'.
|
We like to pronounce it 'g-pie'.
|
||||||
|
|
||||||
### Getting started: installing with pip
|
## Getting started: installing with pip
|
||||||
|
|
||||||
We are now requiring the newest version (0.16) of
|
We are now requiring the newest version (0.16) of
|
||||||
[scipy](http://www.scipy.org/) and thus, we strongly recommend using
|
[scipy](http://www.scipy.org/) and thus, we strongly recommend using
|
||||||
|
|
@ -87,7 +92,7 @@ or using setuptools
|
||||||
|
|
||||||
python setup.py test
|
python setup.py test
|
||||||
|
|
||||||
### Ubuntu hackers
|
## Ubuntu hackers
|
||||||
|
|
||||||
> Note: Right now the Ubuntu package index does not include scipy 0.16.0, and thus, cannot
|
> Note: Right now the Ubuntu package index does not include scipy 0.16.0, and thus, cannot
|
||||||
> be used for GPy. We hope this gets fixed soon.
|
> be used for GPy. We hope this gets fixed soon.
|
||||||
|
|
@ -102,20 +107,20 @@ clone this git repository and add it to your path:
|
||||||
echo 'PYTHONPATH=$PYTHONPATH:~/SheffieldML' >> ~/.bashrc
|
echo 'PYTHONPATH=$PYTHONPATH:~/SheffieldML' >> ~/.bashrc
|
||||||
|
|
||||||
|
|
||||||
### Compiling documentation:
|
## Compiling documentation:
|
||||||
|
|
||||||
The documentation is stored in doc/ and is compiled with the Sphinx Python documentation generator, and is written in the reStructuredText format.
|
The documentation is stored in doc/ and is compiled with the Sphinx Python documentation generator, and is written in the reStructuredText format.
|
||||||
|
|
||||||
The Sphinx documentation is available here: http://sphinx-doc.org/latest/contents.html
|
The Sphinx documentation is available here: http://sphinx-doc.org/latest/contents.html
|
||||||
|
|
||||||
##### Installing dependencies:
|
**Installing dependencies:**
|
||||||
|
|
||||||
To compile the documentation, first ensure that Sphinx is installed. On Debian-based systems, this can be achieved as follows:
|
To compile the documentation, first ensure that Sphinx is installed. On Debian-based systems, this can be achieved as follows:
|
||||||
|
|
||||||
sudo apt-get install python-pip
|
sudo apt-get install python-pip
|
||||||
sudo pip install sphinx
|
sudo pip install sphinx
|
||||||
|
|
||||||
##### Compiling documentation:
|
**Compiling documentation:**
|
||||||
|
|
||||||
The documentation can be compiled as follows:
|
The documentation can be compiled as follows:
|
||||||
|
|
||||||
|
|
@ -127,7 +132,6 @@ The HTML files are then stored in doc/build/html
|
||||||
|
|
||||||
## Funding Acknowledgements
|
## Funding Acknowledgements
|
||||||
|
|
||||||
|
|
||||||
Current support for the GPy software is coming through the following projects.
|
Current support for the GPy software is coming through the following projects.
|
||||||
|
|
||||||
* [EU FP7-HEALTH Project Ref 305626](http://radiant-project.eu) "RADIANT: Rapid Development and Distribution of Statistical Tools for High-Throughput Sequencing Data"
|
* [EU FP7-HEALTH Project Ref 305626](http://radiant-project.eu) "RADIANT: Rapid Development and Distribution of Statistical Tools for High-Throughput Sequencing Data"
|
||||||
|
|
@ -139,7 +143,8 @@ Current support for the GPy software is coming through the following projects.
|
||||||
* [EU FP7-ICT Project Ref 612139](http://staffwww.dcs.shef.ac.uk/people/N.Lawrence/projects/wysiwyd/) "WYSIWYD: What You Say is What You Did"
|
* [EU FP7-ICT Project Ref 612139](http://staffwww.dcs.shef.ac.uk/people/N.Lawrence/projects/wysiwyd/) "WYSIWYD: What You Say is What You Did"
|
||||||
|
|
||||||
Previous support for the GPy software came from the following projects:
|
Previous support for the GPy software came from the following projects:
|
||||||
* [BBSRC Project No BB/K011197/1](http://staffwww.dcs.shef.ac.uk/people/N.Lawrence/projects/recombinant/) "Linking recombinant gene sequence to protein product manufacturability using CHO cell genomic resources"
|
|
||||||
* [EU FP7-KBBE Project Ref 289434](http://staffwww.dcs.shef.ac.uk/people/N.Lawrence/projects/biopredyn/) "From Data to Models: New Bioinformatics Methods and Tools for Data-Driven Predictive Dynamic Modelling in Biotechnological Applications"
|
- [BBSRC Project No BB/K011197/1](http://staffwww.dcs.shef.ac.uk/people/N.Lawrence/projects/recombinant/) "Linking recombinant gene sequence to protein product manufacturability using CHO cell genomic resources"
|
||||||
* [BBSRC Project No BB/H018123/2](http://staffwww.dcs.shef.ac.uk/people/N.Lawrence/projects/iterative/) "An iterative pipeline of computational modelling and experimental design for uncovering gene regulatory networks in vertebrates"
|
- [EU FP7-KBBE Project Ref 289434](http://staffwww.dcs.shef.ac.uk/people/N.Lawrence/projects/biopredyn/) "From Data to Models: New Bioinformatics Methods and Tools for Data-Driven Predictive Dynamic Modelling in Biotechnological Applications"
|
||||||
* [Erasysbio](http://staffwww.dcs.shef.ac.uk/people/N.Lawrence/projects/synergy/) "SYNERGY: Systems approach to gene regulation biology through nuclear receptors"
|
- [BBSRC Project No BB/H018123/2](http://staffwww.dcs.shef.ac.uk/people/N.Lawrence/projects/iterative/) "An iterative pipeline of computational modelling and experimental design for uncovering gene regulatory networks in vertebrates"
|
||||||
|
- [Erasysbio](http://staffwww.dcs.shef.ac.uk/people/N.Lawrence/projects/synergy/) "SYNERGY: Systems approach to gene regulation biology through nuclear receptors"
|
||||||
|
|
|
||||||
91
doc/source/tuto_plotting.rst
Normal file
91
doc/source/tuto_plotting.rst
Normal file
|
|
@ -0,0 +1,91 @@
|
||||||
|
********************
|
||||||
|
Defining a new plotting function in GPy
|
||||||
|
********************
|
||||||
|
|
||||||
|
GPy has a wrapper for different plotting backends.
|
||||||
|
There are some functions you can use for standard plotting.
|
||||||
|
Anything going beyond the scope of the
|
||||||
|
:py:class:`~GPy.plotting.abstract_plotting_library.AbstractPlottingLibrary` classes plot definitions
|
||||||
|
should be considered carefully and maybe is a special case for your plotting library only.
|
||||||
|
|
||||||
|
All plotting related code lives in :py:mod:`GPy.plotting` and beneath. No plotting related code needs to be
|
||||||
|
anywhere else in GPy.
|
||||||
|
|
||||||
|
As examples are always the easiest way to learn how to, we
|
||||||
|
will implement an example of a plotting function, which plots the covariance of a kernel.
|
||||||
|
|
||||||
|
Write your plotting function into a module under :py:mod:`GPy.plotting.gpy_plot` ``.<module_name>``
|
||||||
|
using the plotting routines provided in :py:func:`GPy.plotting.plotting_library`.
|
||||||
|
I like to ``from . import plotting_library as pl`` and the allways use ``pl().`` to access functionality of
|
||||||
|
the plotting library.
|
||||||
|
|
||||||
|
For the covariance plot we define the function in :py:mod:`GPy.plotting.kernel_plots`.
|
||||||
|
|
||||||
|
The first thing is to define the function parameters *and write the documentation for them*!
|
||||||
|
The first argument of the plotting function is always ``self`` for the class this plotting function
|
||||||
|
will be attached to (we will get to attaching the function to a class that in detail later on)::
|
||||||
|
|
||||||
|
def plot_covariance(kernel, x=None, label=None,
|
||||||
|
plot_limits=None, visible_dims=None, resolution=None,
|
||||||
|
projection=None, levels=20, **kwargs):
|
||||||
|
"""
|
||||||
|
Plot a kernel covariance w.r.t. another x.
|
||||||
|
|
||||||
|
:param array-like x: the value to use for the other kernel argument (kernels are a function of two variables!)
|
||||||
|
:param plot_limits: the range over which to plot the kernel
|
||||||
|
:type plot_limits: Either (xmin, xmax) for 1D or (xmin, xmax, ymin, ymax) / ((xmin, xmax), (ymin, ymax)) for 2D
|
||||||
|
:param array-like visible_dims: input dimensions (!) to use for x. Make sure to select 2 or less dimensions to plot.
|
||||||
|
:resolution: the resolution of the lines used in plotting. for 2D this defines the grid for kernel evaluation.
|
||||||
|
:param {2d|3d} projection: What projection shall we use to plot the kernel?
|
||||||
|
:param int levels: for 2D projection, how many levels for the contour plot to use?
|
||||||
|
:param kwargs: valid kwargs for your specific plotting library
|
||||||
|
"""
|
||||||
|
|
||||||
|
Having defined the outline of the function we can start implementing
|
||||||
|
the real plotting.
|
||||||
|
|
||||||
|
First, we will write the necessary logic behind getting the covariance function.
|
||||||
|
This involves getting an Xgrid to plot with and the second x to compare the covariance to::
|
||||||
|
|
||||||
|
from .plot_util import helper_for_plot_data
|
||||||
|
X = np.ones((2, kernel.input_dim)) * [-4, 4]
|
||||||
|
_, free_dims, Xgrid, xx, yy, _, _, resolution = helper_for_plot_data(kernel, X, plot_limits, visible_dims, None, resolution)
|
||||||
|
from numbers import Number
|
||||||
|
if x is None:
|
||||||
|
x = np.zeros((1, kernel.input_dim))
|
||||||
|
elif isinstance(x, Number):
|
||||||
|
x = np.ones((1, kernel.input_dim))*x
|
||||||
|
K = kernel.K(Xgrid, x)
|
||||||
|
|
||||||
|
``free_dims`` holds the free dimensions after selecting
|
||||||
|
from the visible_dims, ``Xgrid`` is the grid for the covariance,
|
||||||
|
``xx, yy`` are the grid positions for 2D plotting and ``x`` is the
|
||||||
|
``X2`` for the kernel and ``K`` holds the kernel covariance for
|
||||||
|
all positions between ``Xgrid`` and ``x``.
|
||||||
|
|
||||||
|
Then we need a canvas to plot on. Always push the keyword arguments
|
||||||
|
of the specifig library through :py:func:`GPy.plotting.abstract_plotting_library.AbstractPlottingLibrary.new_canvas`::
|
||||||
|
|
||||||
|
if projection == '3d':
|
||||||
|
zlabel = "k(X, {!s})" % (np.asanyarray(x).tolist())
|
||||||
|
xlabel = 'X[:,0]'
|
||||||
|
ylabel = 'X[:,1]'
|
||||||
|
else:
|
||||||
|
xlabel = 'X'
|
||||||
|
ylabel = "k(X, {!s})" % (np.asanyarray(x).tolist())
|
||||||
|
|
||||||
|
canvas, kwargs = pl().new_canvas(projection=projection, xlabel=xlabel, ylabel=ylabel, zlabel=zlabel, **kwargs)
|
||||||
|
|
||||||
|
Also very important is to use the defaults, which are defined for all plotting libraries implemented.
|
||||||
|
This is done by updating the ``kwargs`` from the defaults. There is a helper function
|
||||||
|
which takes care for existing keyword arguments. In this case we will just use the default for
|
||||||
|
plotting a mean function for the covariance plot as well. If you want to define your own defaults
|
||||||
|
add them to the defaults for each library and add it in here. See for example the defaults for
|
||||||
|
matplotlib in :py:mod:`GPy.plotting.matplot_dep.defaults`. There is also the default for the
|
||||||
|
meanplot_1d, which we are for the 1d plot::
|
||||||
|
|
||||||
|
from .plot_util import update_not_existing_kwargs
|
||||||
|
update_not_existing_kwargs(kwargs, pl().defaults.meanplot_1d) # @UndefinedVariable
|
||||||
|
|
||||||
|
The full definition of the plotting then looks like this::
|
||||||
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
[bumpversion]
|
[bumpversion]
|
||||||
current_version = 0.8.8dev1
|
current_version = 0.8.8dev0
|
||||||
tag = True
|
tag = True
|
||||||
commit = True
|
commit = True
|
||||||
|
|
||||||
|
|
|
||||||
2
setup.py
2
setup.py
|
|
@ -42,7 +42,7 @@ import numpy as np
|
||||||
import codecs
|
import codecs
|
||||||
|
|
||||||
def read(fname):
|
def read(fname):
|
||||||
with codecs.open(fname, 'r', 'utf-8') as f:
|
with codecs.open(fname, 'r', 'latin') as f:
|
||||||
return f.read()
|
return f.read()
|
||||||
|
|
||||||
def read_to_rst(fname):
|
def read_to_rst(fname):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue