scanpy.pl.paga#
- scanpy.pl.paga(adata, *, threshold=None, color=None, layout=None, layout_kwds=mappingproxy({}), init_pos=None, root=0, labels=None, single_component=False, solid_edges='connectivities', dashed_edges=None, transitions=None, fontsize=None, fontweight='bold', fontoutline=None, text_kwds=mappingproxy({}), node_size_scale=1.0, node_size_power=0.5, edge_width_scale=1.0, min_edge_width=None, max_edge_width=None, arrowsize=30, title=None, left_margin=0.01, random_state=0, pos=None, normalize_to_color=False, cmap=None, cax=None, colorbar=None, cb_kwds=mappingproxy({}), frameon=None, add_pos=True, export_to_gexf=False, use_raw=True, colors=None, groups=None, plot=True, show=None, save=None, ax=None)[source]#
Plot the PAGA graph through thresholding low-connectivity edges.
Compute a coarse-grained layout of the data. Reuse this by passing
init_pos='paga'
toumap()
ordraw_graph()
and obtain embeddings with more meaningful global topology [Wolf et al., 2019].This uses ForceAtlas2 or igraph’s layout algorithms for most layouts [Csárdi and Nepusz, 2006].
- Parameters:
- adata
AnnData
Annotated data matrix.
- threshold
float
|None
(default:None
) Do not draw edges for weights below this threshold. Set to 0 if you want all edges. Discarding low-connectivity edges helps in getting a much clearer picture of the graph.
- color
str
|Mapping
[str
|int
,Mapping
[Any
,float
]] |None
(default:None
) Gene name or
obs
annotation defining the node colors. Also plots the degree of the abstracted graph when passing {'degree_dashed'
,'degree_solid'
}.Can be also used to visualize pie chart at each node in the following form:
{<group name or index>: {<color>: <fraction>, ...}, ...}
. If the fractions do not sum to 1, a new category called'rest'
colored grey will be created.- labels
str
|Sequence
[str
] |Mapping
[str
,str
] |None
(default:None
) The node labels. If
None
, this defaults to the group labels stored in the categorical for whichpaga()
has been computed.- pos
ndarray
|Path
|str
|None
(default:None
) Two-column array-like storing the x and y coordinates for drawing. Otherwise, path to a
.gdf
file that has been exported from Gephi or a similar graph visualization software.- layout
Union
[Literal
['fr'
,'drl'
,'kk'
,'grid_fr'
,'lgl'
,'rt'
,'rt_circular'
,'fa'
],Literal
['eq_tree'
],None
] (default:None
) Plotting layout that computes positions.
'fa'
stands for “ForceAtlas2”,'fr'
stands for “Fruchterman-Reingold”,'rt'
stands for “Reingold-Tilford”,'eq_tree'
stands for “eqally spaced tree”. All but'fa'
and'eq_tree'
are igraph layouts. All other igraph layouts are also permitted. See also parameterpos
anddraw_graph()
.- layout_kwds
Mapping
[str
,Any
] (default:mappingproxy({})
) Keywords for the layout.
- init_pos
ndarray
|None
(default:None
) Two-column array storing the x and y coordinates for initializing the layout.
- random_state
int
|None
(default:0
) For layouts with random initialization like
'fr'
, change this to use different intial states for the optimization. IfNone
, the initial state is not reproducible.- root
int
|str
|Sequence
[int
] |None
(default:0
) If choosing a tree layout, this is the index of the root node or a list of root node indices. If this is a non-empty vector then the supplied node IDs are used as the roots of the trees (or a single tree if the graph is connected). If this is
None
or an empty list, the root vertices are automatically calculated based on topological sorting.- transitions
str
|None
(default:None
) Key for
.uns['paga']
that specifies the matrix that stores the arrows, for instance'transitions_confidence'
.- solid_edges
str
(default:'connectivities'
) Key for
.uns['paga']
that specifies the matrix that stores the edges to be drawn solid black.- dashed_edges
str
|None
(default:None
) Key for
.uns['paga']
that specifies the matrix that stores the edges to be drawn dashed grey. IfNone
, no dashed edges are drawn.- single_component
bool
(default:False
) Restrict to largest connected component.
- fontsize
int
|None
(default:None
) Font size for node labels.
- fontoutline
int
|None
(default:None
) Width of the white outline around fonts.
- text_kwds
Mapping
[str
,Any
] (default:mappingproxy({})
) Keywords for
text()
.- node_size_scale
float
(default:1.0
) Increase or decrease the size of the nodes.
- node_size_power
float
(default:0.5
) The power with which groups sizes influence the radius of the nodes.
- edge_width_scale
float
(default:1.0
) Edge with scale in units of
rcParams['lines.linewidth']
.- min_edge_width
float
|None
(default:None
) Min width of solid edges.
- max_edge_width
float
|None
(default:None
) Max width of solid and dashed edges.
- arrowsize
int
(default:30
) For directed graphs, choose the size of the arrow head head’s length and width. See :py:class:
matplotlib.patches.FancyArrowPatch
for attributemutation_scale
for more info.- export_to_gexf
bool
(default:False
) Export to gexf format to be read by graph visualization programs such as Gephi.
- normalize_to_color
bool
(default:False
) Whether to normalize categorical plots to
color
or the underlying grouping.- cmap
str
|Colormap
|None
(default:None
) The color map.
- cax
Axes
|None
(default:None
) A matplotlib axes object for a potential colorbar.
- cb_kwds
Mapping
[str
,Any
] (default:mappingproxy({})
) Keyword arguments for
Colorbar
, for instance,ticks
.- add_pos
bool
(default:True
) Add the positions to
adata.uns['paga']
.- title
str
|None
(default:None
) Provide a title.
- frameon
bool
|None
(default:None
) Draw a frame around the PAGA graph.
- plot
bool
(default:True
) If
False
, do not create the figure, simply compute the layout.- save
bool
|str
|None
(default:None
) If
True
or astr
, save the figure. A string is appended to the default filename. Infer the filetype if ending on {'.pdf'
,'.png'
,'.svg'
}.- ax
Axes
|None
(default:None
) A matplotlib axes object.
- adata
- Return type:
- Returns:
If
show==False
, one or moreAxes
objects. Adds'pos'
toadata.uns['paga']
ifadd_pos
isTrue
.
Examples
import scanpy as sc adata = sc.datasets.pbmc3k_processed() sc.tl.paga(adata, groups='louvain') sc.pl.paga(adata)
You can increase node and edge sizes by specifying additional arguments.
sc.pl.paga(adata, node_size_scale=10, edge_width_scale=2)
Notes
When initializing the positions, note that – for some reason – igraph mirrors coordinates along the x axis… that is, you should increase the
maxiter
parameter by 1 if the layout is flipped.See also