(v1.4.1)=
### 1.4.1 {small}`2019-04-26`

#### New functionality

- Scanpy has a command line interface again. Invoking it with `scanpy somecommand [args]` calls `scanpy-somecommand [args]`, except for builtin commands (currently `scanpy settings`)  {pr}`604` {smaller}`P Angerer`
- {func}`~scanpy.datasets.ebi_expression_atlas` allows convenient download of EBI expression atlas {smaller}`I Virshup`
- {func}`~scanpy.tl.marker_gene_overlap` computes overlaps of marker genes {smaller}`M Luecken`
- {func}`~scanpy.tl.filter_rank_genes_groups` filters out genes based on fold change and fraction of cells expressing genes {smaller}`F Ramirez`
- {func}`~scanpy.pp.normalize_total` replaces {func}`~scanpy.pp.normalize_per_cell`, is more efficient and provides a parameter to only normalize using a fraction of expressed genes {smaller}`S Rybakov`
- {func}`~scanpy.pp.downsample_counts` has been sped up, changed default value of `replace` parameter to `False`  {pr}`474` {smaller}`I Virshup`
- {func}`~scanpy.tl.embedding_density` computes densities on embeddings  {pr}`543` {smaller}`M Luecken`
- {func}`~scanpy.external.tl.palantir` interfaces Palantir {cite:p}`Setty2019`  {pr}`493` {smaller}`A Mousa`

#### Code design

- `.layers` support of scatter plots {smaller}`F Ramirez`
- fix double-logarithmization in compute of log fold change in {func}`~scanpy.tl.rank_genes_groups` {smaller}`A Muñoz-Rojas`
- fix return sections of docs {smaller}`P Angerer`
