scverse / scverse/scanpy

Avoid argument explosion in plotting functions

Open
#956 6 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
2.6k
Forks
779
Avg merge
1d 4h
Merged PRs (30d)
27

Description

  • Additional function parameters / changed functionality / changed defaults?
  • New analysis tool: A simple analysis tool you have been using and are missing in sc.tools?
  • New plotting function: A kind of plot you would like to seein sc.pl?
  • External tools: Do you know an existing package that should go into sc.external.*?
  • Other?

To reduce the number of arguments that are passed to plotting functions and to agrupate them by type I was considering the following example syntax:

sc.pl.umap(adata, color='clusters').scatter_outline(width=0.1)
                                   .legend(loc='on data',  outline=1)
                                   .add_edges(color='black', width=0.1)

or

sc.pl.dotplot(adata, ['gene1', 'gene2'], groupby='clusters')
                     .add_dendrogram(width=0.4,color='grey')
                     .swap_axes()
                     .dot_size_legend(title='fraction', location='left')

Any comments?
(I am not sure how to implement something like this)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the plotting entry points named in the issue, sc.pl.umap and sc.pl.dotplot, and how their current arguments are organized. The issue provides example chained APIs but no files, tests, implementation plan, or precise acceptance criteria; done would require an agreed design and corresponding plotting-function changes.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data-visualization
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.