Skip to content

Commit

Permalink
updated and cleaned up release notes
Browse files Browse the repository at this point in the history
  • Loading branch information
falexwolf committed Jul 11, 2018
1 parent a968194 commit 8904c2d
Show file tree
Hide file tree
Showing 2 changed files with 81 additions and 114 deletions.
193 changes: 80 additions & 113 deletions docs/release_notes.rst
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
.. note::

Also see the :ref:`release notes <anndata:index>` of :mod:`anndata`.
Also see the `release notes <https://anndata.readthedocs.io>`__ of :mod:`anndata`.

.. role:: small


On master :small:`July 3, 2018`
-------------------------------
On master :small:`July 11, 2018`
--------------------------------

- :func:`~scanpy.api.pp.dca` for imputation and preprocessing using an autoencoder [Eraslan18]_
- :func:`~scanpy.api.pl.heatmap` for pretty heatmaps, see `here <https://github.com/theislab/scanpy/pull/175>`__ - thanks to F Ramirez
- :func:`~scanpy.api.pl.violin` now produces very compact overview figures with many panels, see `here <https://github.com/theislab/scanpy/pull/175>`__ - thanks to F Ramirez
- :func:`~scanpy.api.pl.highest_expr_genes` for quality control, see `here <https://github.com/theislab/scanpy/pull/169>`__; plot genes with highest mean fraction of cells, similar to plotQC of *Scater* [McCarthy17]_ - thanks to F Ramirez
- :func:`~scanpy.api.pp.magic` for imputation using data diffusion [vanDijk18]_ :small:`thanks to S Gigante`
- :func:`~scanpy.api.pp.dca` for imputation and latent space construction using an autoencoder [Eraslan18]_
- :func:`~scanpy.api.pl.heatmap` for pretty heatmaps, see `here <https://github.com/theislab/scanpy/pull/175>`__ :small:`thanks to F Ramirez`
- :func:`~scanpy.api.pl.violin` now produces very compact overview figures with many panels, see `here <https://github.com/theislab/scanpy/pull/175>`__ :small:`thanks to F Ramirez`
- :func:`~scanpy.api.pl.highest_expr_genes` for quality control, see `here <https://github.com/theislab/scanpy/pull/169>`__; plot genes with highest mean fraction of cells, similar to plotQC of *Scater* [McCarthy17]_ :small:`thanks to F Ramirez`


Version 1.2 :small:`June 8, 2018`
Expand All @@ -23,15 +24,15 @@ Version 1.2 :small:`June 8, 2018`
Version 1.1 :small:`May 31, 2018`
---------------------------------

- :func:`~scanpy.api.set_figure_params` by default passes `vector_friendly=True` and allows you to produce reasonable pdfs by rasterizing large scatter plots
- :func:`~scanpy.api.tl.draw_graph` now defaults to the ForceAtlas2 layout [Jacomy14]_ [Chippada18]_, which is often more visually appealing and whose computation is much faster - thanks to S Wollock
- :func:`~scanpy.api.pl.scatter` also plots along variables axis - thanks to MD Luecken
- :func:`~scanpy.api.pp.pca` and :func:`~scanpy.api.pp.log1p` support chunk processing - thanks to S Rybakov
- :func:`~scanpy.api.pp.regress_out` is back to multiprocessing - thanks to F Ramirez
- :func:`~scanpy.api.read` reads compressed text files - thanks to G Eraslan
- :func:`~scanpy.api.queries.mitochondrial_genes` for querying mito genes - thanks to FG Brundu
- :func:`~scanpy.api.set_figure_params` by default passes `vector_friendly=True` and allows you to produce reasonablly sized pdfs by rasterizing large scatter plots
- :func:`~scanpy.api.tl.draw_graph` now defaults to the ForceAtlas2 layout [Jacomy14]_ [Chippada18]_, which is often more visually appealing and whose computation is much faster :small:`thanks to S Wollock`
- :func:`~scanpy.api.pl.scatter` also plots along variables axis :small:`thanks to MD Luecken`
- :func:`~scanpy.api.pp.pca` and :func:`~scanpy.api.pp.log1p` support chunk processing :small:`thanks to S Rybakov`
- :func:`~scanpy.api.pp.regress_out` is back to multiprocessing :small:`thanks to F Ramirez`
- :func:`~scanpy.api.read` reads compressed text files :small:`thanks to G Eraslan`
- :func:`~scanpy.api.queries.mitochondrial_genes` for querying mito genes :small:`thanks to FG Brundu`
- :func:`~scanpy.api.pp.mnn_correct` for batch correction [Haghverdi18]_ [Kang18]_
- :func:`~scanpy.api.tl.phate` for low-dimensional embedding [Moon17]_ - thanks to S Gigante
- :func:`~scanpy.api.tl.phate` for low-dimensional embedding [Moon17]_ :small:`thanks to S Gigante`
- :func:`~scanpy.api.tl.sandbag`, :func:`~scanpy.api.tl.cyclone` for scoring genes [Scialdone15]_ [Fechtner18]_


Expand All @@ -50,153 +51,119 @@ The API gained a preprocessing function :func:`~scanpy.api.pp.neighbors` and a
class :func:`~scanpy.api.Neighbors` to which all basic graph computations are
delegated.

.. warning::

Upgrading to 1.0 isn't fully backwards compatible - future upgrades will be.

- the graph-based tools :func:`~scanpy.api.tl.louvain`
:func:`~scanpy.api.tl.dpt` :func:`~scanpy.api.tl.draw_graph`
:func:`~scanpy.api.tl.umap` :func:`~scanpy.api.tl.diffmap`
:func:`~scanpy.api.tl.paga` now require prior computation of the graph:

.. code:: python
sc.pp.neighbors(adata, n_neighbors=5)
sc.tl.louvain(adata)
instead of previously:

.. code:: python
sc.tl.louvain(adata, n_neighbors=5)
- install `numba` via ``conda install numba``, which replaces cython

- the default connectivity measure (dpt will look different using default
settings) changed. setting `method='gauss'` in `sc.pp.neighbors` uses
gauss kernel connectivities and reproduces the previous behavior,
see, for instance this `example
<https://nbviewer.jupyter.org/github/theislab/scanpy_usage/blob/master/170502_paul15/paul15.ipynb>`__

- namings of returned annotation have changed for less bloated AnnData
objects, which means that some of the unstructured annotation of old
AnnData files is not recognized anymore

- replace occurances of `group_by` with `groupby` (consistency with
`pandas`)

- it is worth checking out the notebook examples to see changes, e.g., `here
<https://nbviewer.jupyter.org/github/theislab/scanpy_usage/blob/master/170505_seurat/seurat.ipynb>`__

- upgrading scikit-learn from 0.18 to 0.19 changed the implementation of PCA,
some results might therefore look slightly different
Upgrading to 1.0 isn't fully backwards compatible - future upgrades will be.

- the graph-based tools :func:`~scanpy.api.tl.louvain`
:func:`~scanpy.api.tl.dpt` :func:`~scanpy.api.tl.draw_graph`
:func:`~scanpy.api.tl.umap` :func:`~scanpy.api.tl.diffmap`
:func:`~scanpy.api.tl.paga` now require prior computation of the graph:
``sc.pp.neighbors(adata, n_neighbors=5); sc.tl.louvain(adata)`` instead of
previously ``sc.tl.louvain(adata, n_neighbors=5)``
- install `numba` via ``conda install numba``, which replaces cython
- the default connectivity measure (dpt will look different using default
settings) changed. setting `method='gauss'` in `sc.pp.neighbors` uses
gauss kernel connectivities and reproduces the previous behavior,
see, for instance this `example
<https://nbviewer.jupyter.org/github/theislab/scanpy_usage/blob/master/170502_paul15/paul15.ipynb>`__
- namings of returned annotation have changed for less bloated AnnData
objects, which means that some of the unstructured annotation of old
AnnData files is not recognized anymore
- replace occurances of `group_by` with `groupby` (consistency with
`pandas`)
- it is worth checking out the notebook examples to see changes, e.g., `here
<https://nbviewer.jupyter.org/github/theislab/scanpy_usage/blob/master/170505_seurat/seurat.ipynb>`__
- upgrading scikit-learn from 0.18 to 0.19 changed the implementation of PCA,
some results might therefore look slightly different

Further changes are

- UMAP [McInnes18]_ can serve as a first visualization of the data just as tSNE,
in contrast to tSNE, UMAP directly embeds the single-cell graph and is faster;
UMAP is now also used for measuring connectivities and computing neighbors,
see :func:`~scanpy.api.pp.neighbors`

- graph abstraction: AGA is renamed to PAGA: :func:`~scanpy.api.tl.paga`; now,
it only measures connectivities between partitions of the single-cell graph,
pseudotime and clustering need to be computed separately via
:func:`~scanpy.api.tl.louvain` and :func:`~scanpy.api.tl.dpt`, the
connectivity measure has been improved

- logistic regression for finding marker genes
:func:`~scanpy.api.tl.rank_genes_groups` with parameter `method='logreg'`

- :func:`~scanpy.api.tl.louvain` now provides a better implementation for
reclustering via `restrict_to`

- scanpy no longer modifies rcParams upon import, call
`settings.set_figure_params` to set the 'scanpy style'

- default cache directory is ``./cache/``, set `settings.cachedir` to change
this; nested directories in this are now avoided

- show edges in scatter plots based on graph visualization
:func:`~scanpy.api.tl.draw_graph` and :func:`~scanpy.api.umap` by passing
`edges=True`

- :func:`~scanpy.api.pp.downsample_counts` for downsampling counts - thanks to MD Luecken

- :func:`~scanpy.api.pp.downsample_counts` for downsampling counts :small:`thanks to MD Luecken`
- default 'louvain_groups' are now called 'louvain'

- 'X_diffmap' now contains the zero component, plotting remains unchanged


Version 0.4.4 :small:`February 26, 2018`
----------------------------------------

1. embed cells using :func:`~scanpy.api.tl.umap` [McInnes18]_: `examples <https://github.com/theislab/scanpy/pull/92>`__
2. score sets of genes, e.g. for cell cycle, using :func:`~scanpy.api.tl.score_genes` [Satija15]_: `notebook <https://nbviewer.jupyter.org/github/theislab/scanpy_usage/blob/master/180209_cell_cycle/cell_cycle.ipynb>`__


**February 9, 2018**: version 0.4.3

1. :func:`~scanpy.api.pl.clustermap`: heatmap from hierarchical clustering,
based on :func:`seaborn.clustermap` [Waskom16]_
2. only return `matplotlib.Axis` in plotting functions of ``sc.pl`` when `show=False`, otherwise `None`
- embed cells using :func:`~scanpy.api.tl.umap` [McInnes18]_: `examples <https://github.com/theislab/scanpy/pull/92>`__
- score sets of genes, e.g. for cell cycle, using :func:`~scanpy.api.tl.score_genes` [Satija15]_: `notebook <https://nbviewer.jupyter.org/github/theislab/scanpy_usage/blob/master/180209_cell_cycle/cell_cycle.ipynb>`__

... and through :mod:`anndata` v0.5.

1. inform about duplicates in :class:`~anndata.AnnData.var_names` and resolve them using :func:`~anndata.AnnData.var_names_make_unique`
2. by default, generate unique observation names in :func:`~anndata.AnnData.concatenate`
3. automatically remove unused categories after slicing
4. read/write `.loom` files using loompy 2
Version 0.4.3 :small:`February 9, 2018`
---------------------------------------

- :func:`~scanpy.api.pl.clustermap`: heatmap from hierarchical clustering,
based on :func:`seaborn.clustermap` [Waskom16]_
- only return `matplotlib.Axis` in plotting functions of ``sc.pl`` when `show=False`, otherwise `None`

**January 7, 2018**: version 0.4.2

1. amendments in `AGA <https://github.com/theislab/graph_abstraction>`__
and its plotting functions
Version 0.4.2 :small:`January 7, 2018`
--------------------------------------

- amendments in `PAGA <https://github.com/theislab/paga>`__ and its plotting
functions

**December 23, 2017**: version 0.4

Version 0.4 :small:`December 23, 2017`
--------------------------------------

1. export to `SPRING <https://github.com/AllonKleinLab/SPRING/>`__ [Weinreb17]_
for interactive visualization of data: `tutorial
<https://github.com/theislab/scanpy_usage/tree/master/171111_SPRING_export>`__,
`docs <https://scanpy.readthedocs.io/en/latest/api/index.html>`__
- export to `SPRING <https://github.com/AllonKleinLab/SPRING/>`__ [Weinreb17]_
for interactive visualization of data: `tutorial
<https://github.com/theislab/scanpy_usage/tree/master/171111_SPRING_export>`__,
`docs <https://scanpy.readthedocs.io/en/latest/api/index.html>`__

... and through :mod:`anndata` v0.4.

1. towards a common file format for exchanging :class:`~anndata.AnnData` with
packages such as Seurat and SCDE by reading and writing `.loom
<https://loompy.org>`__ files
2. :class:`~anndata.AnnData`
provides scalability beyond dataset sizes that fit into memory: see this
`blog post
<https://falexwolf.de/blog/171223_AnnData_indexing_views_HDF5-backing/>`__
3. :class:`~anndata.AnnData` has a :class:`~anndata.AnnData.raw` attribute
that simplifies storing the data matrix when you consider it "raw": see the
`clustering tutorial
<https://github.com/theislab/scanpy_usage/tree/master/170505_seurat>`__


**November 29, 2017**: version 0.3.2
Version 0.3.2 :small:`November 29, 2017`
----------------------------------------

1. finding marker genes via :func:`~scanpy.api.pl.rank_genes_groups_violin` improved: `example <https://github.com/theislab/scanpy/issues/51>`__
- finding marker genes via :func:`~scanpy.api.pl.rank_genes_groups_violin` improved: `example <https://github.com/theislab/scanpy/issues/51>`__


**November 16, 2017**: version 0.3
Version 0.3 :small:`November 16, 2017`
--------------------------------------

1. :class:`~anndata.AnnData` can be :meth:`~anndata.AnnData.concatenate` d.
2. :class:`~anndata.AnnData` is available as a `separate package <https://pypi.org/project/anndata/>`__
3. results of approximate graph abstraction (AGA) are `simplified <https://github.com/theislab/graph_abstraction>`__
- :class:`~anndata.AnnData` can be :meth:`~anndata.AnnData.concatenate` d.
- :class:`~anndata.AnnData` is available as a `separate package <https://pypi.org/project/anndata/>`__
- results of PAGA are `simplified <https://github.com/theislab/paga>`__

**October 25, 2017**: version 0.2.9

Initial release of `approximate graph abstraction (AGA) <https://github.com/theislab/graph_abstraction>`__.
Version 0.2.9 :small:`October 25, 2017`
---------------------------------------

Initial release of `partition-based graph abstraction (PAGA) <https://github.com/theislab/paga>`__.


**July 24, 2017**: version 0.2.1
Version 0.2.1 :small:`July 24, 2017`
---------------------------------------

Scanpy now includes preprocessing, visualization, clustering, pseudotime and trajectory inference, differential expression testing and simulation of gene regulatory networks. The implementation efficiently deals with datasets of more than one million cells.
Scanpy now includes preprocessing, visualization, clustering, pseudotime and
trajectory inference, differential expression testing and simulation of gene
regulatory networks. The implementation efficiently deals with datasets of more
than one million cells.


**May 1, 2017**: version 0.1
Version 0.1 :small:`May 1, 2017`
--------------------------------

Scanpy computationally outperforms the Cell Ranger R kit and allows reproducing most of Seurat's guided clustering tutorial.
Scanpy computationally outperforms the Cell Ranger R kit and allows reproducing
most of Seurat's guided clustering tutorial.
2 changes: 1 addition & 1 deletion scanpy/tools/phate.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ def phate(
`PHATE documentation <https://phate.readthedocs.io/>`__. For
tutorials, bug reports, and R/MATLAB implementations, visit the `PHATE
GitHub page <https://github.com/KrishnaswamyLab/PHATE/>`__. For help
using PHATE, visit <https://krishnaswamylab.org/get-help>.
using PHATE, go `here <https://krishnaswamylab.org/get-help>`__.
Parameters
----------
Expand Down

0 comments on commit 8904c2d

Please sign in to comment.