(v1.7.0)=
### 1.7.0 {small}`2021-02-03`

#### Features

- Add new 10x Visium datasets to {func}`~scanpy.datasets.visium_sge` {pr}`1473` {smaller}`G Palla`
- Enable download of source image for 10x visium datasets in {func}`~scanpy.datasets.visium_sge` {pr}`1506` {smaller}`H Spitzer`
- Refactor of {func}`scanpy.pl.spatial`. Better support for plotting without an image, as well as directly providing images {pr}`1512` {smaller}`G Palla`
- Dict input for {func}`scanpy.queries.enrich` {pr}`1488` {smaller}`G Eraslan`
- {func}`~scanpy.get.rank_genes_groups_df` can now return fraction of cells in a group expressing a gene, and allows retrieving values for multiple groups at once {pr}`1388` {smaller}`G Eraslan`
- Color annotations for gene sets in {func}`~scanpy.pl.heatmap` are now matched to color for cluster {pr}`1511` {smaller}`L Sikkema`
- PCA plots can now annotate axes with variance explained {pr}`1470` {smaller}`bfurtwa`
- Plots with `groupby` arguments can now group by values in the index by passing the index's name (like `pd.DataFrame.groupby`). {pr}`1583` {smaller}`F Ramirez`
- Added `na_color` and `na_in_legend` keyword arguments to {func}`~scanpy.pl.embedding` plots. Allows specifying color for missing or filtered values in plots like {func}`~scanpy.pl.umap` or {func}`~scanpy.pl.spatial` {pr}`1356` {smaller}`I Virshup`
- {func}`~scanpy.pl.embedding` plots now support passing `dict` of `{cluster_name: cluster_color, ...}` for palette argument  {pr}`1392` {smaller}`I Virshup`

#### External tools (new)

- Add [Scanorama](https://github.com/brianhie/scanorama) integration to scanpy external API ({func}`~scanpy.external.pp.scanorama_integrate`, {cite:t}`Hie2019`) {pr}`1332` {smaller}`B Hie`
- Scrublet {cite:p}`Wolock2019` integration: {func}`~scanpy.pp.scrublet`, {func}`~scanpy.pp.scrublet_simulate_doublets`, and plotting method {func}`~scanpy.pl.scrublet_score_distribution` {pr}`1476` {smaller}`J Manning`
- {func}`~scanpy.external.pp.hashsolo` for HTO demultiplexing {cite:p}`Bernstein2020` {pr}`1432` {smaller}`NJ Bernstein`
- Added [scirpy](https://github.com/icbi-lab/scirpy) (sc-AIRR analysis) to ecosystem page {pr}`1453` {smaller}`G Sturm`
- Added [scvi-tools](https://scvi-tools.org) to ecosystem page {pr}`1421` {smaller}`A Gayoso`

#### External tools (changes)

- Updates for {func}`~scanpy.external.tl.palantir` and {func}`~scanpy.external.tl.palantir_results` {pr}`1245` {smaller}`A Mousa`
- Fixes to {func}`~scanpy.external.tl.harmony_timeseries` docs {pr}`1248` {smaller}`A Mousa`
- Support for `leiden` clustering by {func}`scanpy.external.tl.phenograph` {pr}`1080` {smaller}`A Mousa`
- Deprecate `scanpy.external.pp.scvi` {pr}`1554` {smaller}`G Xing`
- Updated default params of {func}`~scanpy.external.tl.sam` to work with larger data {pr}`1540` {smaller}`A Tarashansky`

#### Documentation

- {ref}`New contribution guide <contribution-guide>` {pr}`1544` {smaller}`I Virshup`
- `zsh` installation instructions {pr}`1444` {smaller}`P Angerer`

#### Performance

- Speed up {func}`~scanpy.read_10x_h5` {pr}`1402` {smaller}`P Weiler`
- Speed ups for {func}`~scanpy.get.obs_df` {pr}`1499` {smaller}`F Ramirez`

#### Bugfixes

- Consistent fold-change, fractions calculation for filter_rank_genes_groups {pr}`1391` {smaller}`S Rybakov`
- Fixed bug where `score_genes` would error if one gene was passed {pr}`1398` {smaller}`I Virshup`
- Fixed `log1p` inplace on integer dense arrays {pr}`1400` {smaller}`I Virshup`
- Fix docstring formatting for {func}`~scanpy.tl.rank_genes_groups` {pr}`1417` {smaller}`P Weiler`
- Removed `` PendingDeprecationWarning`s from use of `np.matrix `` {pr}`1424` {smaller}`P Weiler`
- Fixed indexing byg in `~scanpy.pp.highly_variable_genes` {pr}`1456` {smaller}`V Bergen`
- Fix default number of genes for marker_genes_overlap {pr}`1464` {smaller}`MD Luecken`
- Fixed passing `groupby` and `dendrogram_key` to {func}`~scanpy.tl.dendrogram` {pr}`1465` {smaller}`M Varma`
- Fixed download path of `pbmc3k_processed` {pr}`1472` {smaller}`D Strobl`
- Better error message when computing DE with a group of size 1 {pr}`1490` {smaller}`J Manning`
- Update cugraph API usage for v0.16 {pr}`1494` {smaller}`R Ilango`
- Fixed `marker_gene_overlap` default value for `top_n_markers` {pr}`1464` {smaller}`MD Luecken`
- Pass `random_state` to RAPIDs UMAP {pr}`1474` {smaller}`C Nolet`
- Fixed `anndata` version requirement for {func}`~anndata.concat` (re-exported from scanpy as `sc.concat`) {pr}`1491` {smaller}`I Virshup`
- Fixed the width of the progress bar when downloading data {pr}`1507` {smaller}`M Klein`
- Updated link for `moignard15` dataset {pr}`1542` {smaller}`I Virshup`
- Fixed bug where calling `set_figure_params` could block if IPython was installed, but not used. {pr}`1547` {smaller}`I Virshup`
- {func}`~scanpy.pl.violin` no longer fails if `.raw` not present {pr}`1548` {smaller}`I Virshup`
- {func}`~scanpy.pl.spatial` refactoring and better handling of spatial data {pr}`1512` {smaller}`G Palla`
- {func}`~scanpy.pp.pca` works with `chunked=True` again {pr}`1592` {smaller}`I Virshup`
- {func}`~scanpy.tl.ingest` now works with umap-learn 0.5.0 {pr}`1601` {smaller}`S Rybakov`
