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)
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 [Wolf19].This uses ForceAtlas2 or igraph’s layout algorithms for most layouts [Csardi06].
- Parameters
- adata :
AnnData
AnnData
Annotated data matrix.
- threshold :
float
|None
Optional
[float
] (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
|None
Union
[str
,Mapping
[Union
[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
|None
Union
[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
|str
|Path
|None
Union
[ndarray
,str
,Path
,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 : {‘fa’, ‘fr’, ‘rt’, ‘rt_circular’, ‘drl’, ‘eq_tree’, Ellipsis} |
None
Optional
[Literal
[‘fa’, ‘fr’, ‘rt’, ‘rt_circular’, ‘drl’, ‘eq_tree’, Ellipsis]] (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
Mapping
[str
,Any
] (default:mappingproxy({})
) Keywords for the layout.
- init_pos :
ndarray
|None
Optional
[ndarray
] (default:None
) Two-column array storing the x and y coordinates for initializing the layout.
- random_state :
int
|None
Optional
[int
] (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
Union
[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
Optional
[str
] (default:None
) Key for
.uns['paga']
that specifies the matrix that stores the arrows, for instance'transitions_confidence'
.- solid_edges :
str
str
(default:'connectivities'
) Key for
.uns['paga']
that specifies the matrix that stores the edges to be drawn solid black.- dashed_edges :
str
|None
Optional
[str
] (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
bool
(default:False
) Restrict to largest connected component.
- fontsize :
int
|None
Optional
[int
] (default:None
) Font size for node labels.
- fontoutline :
int
|None
Optional
[int
] (default:None
) Width of the white outline around fonts.
- text_kwds :
Mapping
Mapping
[str
,Any
] (default:mappingproxy({})
) Keywords for
text()
.- node_size_scale :
float
float
(default:1.0
) Increase or decrease the size of the nodes.
- node_size_power :
float
float
(default:0.5
) The power with which groups sizes influence the radius of the nodes.
- edge_width_scale :
float
float
(default:1.0
) Edge with scale in units of
rcParams['lines.linewidth']
.- min_edge_width :
float
|None
Optional
[float
] (default:None
) Min width of solid edges.
- max_edge_width :
float
|None
Optional
[float
] (default:None
) Max width of solid and dashed edges.
- arrowsize :
int
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
bool
(default:False
) Export to gexf format to be read by graph visualization programs such as Gephi.
- normalize_to_color :
bool
bool
(default:False
) Whether to normalize categorical plots to
color
or the underlying grouping.- cmap :
str
|Colormap
|None
Union
[str
,Colormap
,None
] (default:None
) The color map.
- cax :
Axes
|None
Optional
[Axes
] (default:None
) A matplotlib axes object for a potential colorbar.
- cb_kwds :
Mapping
Mapping
[str
,Any
] (default:mappingproxy({})
) Keyword arguments for
Colorbar
, for instance,ticks
.- add_pos :
bool
bool
(default:True
) Add the positions to
adata.uns['paga']
.- title :
str
|None
Optional
[str
] (default:None
) Provide a title.
- frameon :
bool
|None
Optional
[bool
] (default:None
) Draw a frame around the PAGA graph.
- plot :
bool
bool
(default:True
) If
False
, do not create the figure, simply compute the layout.- save :
str
|bool
|None
Union
[str
,bool
,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
Optional
[Axes
] (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