Skip to main content
Glama

pl_pca

Visualize PCA components in scatter plots to analyze single-cell RNA sequencing data, with customizable figure size, color mapping, and annotations for easy interpretation.

Instructions

Scatter plot in PCA coordinates. default figure for PCA plot

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
add_outlineNoAdd outline to scatter plot points.
annotate_var_explainedNoAnnotate the explained variance.
arrowsNoShow arrows.
colorNoKeys for annotations of observations/cells or variables/genes.
color_mapNoColor map to use for continuous variables.
componentsNoFor instance, ['1,2', '2,3']. To plot all available components use components='all'.
dimensionsNo0-indexed dimensions of the embedding to plot as integers. E.g. [(0, 1), (1, 2)].
edgesNoShow edges between nodes.
edges_colorNoColor of edges.grey
edges_widthNoWidth of edges.
figsizeNoFigure size. Format is (width, height).
frameonNoDraw a frame around the scatter plot.
gene_symbolsNoColumn name in .var DataFrame that stores gene symbols.
groupsNoRestrict to a few categories in categorical observation annotation.
layerNoName of the AnnData object layer that wants to be plotted.
legend_fontoutlineNoLine width of the legend font outline in pt.
legend_fontsizeNoNumeric size in pt or string describing the size.
legend_fontweightNoLegend font weight. A numeric value in range 0-1000 or a string.bold
legend_locNoLocation of legend, either 'on data', 'right margin' or a valid keyword for the loc parameter.right margin
markerNoMatplotlib marker style for points..
ncolsNoNumber of columns for multiple plots.
neighbors_keyNoWhere to look for neighbors connectivities.
paletteNoColors to use for plotting categorical annotation groups.
projectionNoProjection of plot.2d
sizeNoPoint size. If None, is automatically computed.
sort_orderNoFor continuous annotations used as color parameter, plot data points with higher values on top of others.
use_rawNoUse .raw attribute of adata for coloring with gene expression.
vcenterNoThe value representing the center of the color scale.
vmaxNoThe value representing the upper limit of the color scale.
vminNoThe value representing the lower limit of the color scale.

Implementation Reference

  • The run_pl_func function is the handler that executes the 'pl_pca' tool. It looks up sc.pl.pca from the pl_func dictionary based on the tool name, processes arguments, calls the plotting function on the active AnnData, saves the figure, logs the operation, and returns the figure path.
    def run_pl_func(ads, func, arguments): """ Execute a Scanpy plotting function with the given arguments. Parameters ---------- adata : AnnData Annotated data matrix. func : str Name of the plotting function to execute. arguments : dict Arguments to pass to the plotting function. Returns ------- The result of the plotting function. """ adata = ads.adata_dic[ads.active] if func not in pl_func: raise ValueError(f"Unsupported function: {func}") run_func = pl_func[func] parameters = inspect.signature(run_func).parameters kwargs = {k: arguments.get(k) for k in parameters if k in arguments} if "title" not in parameters: kwargs.pop("title", False) kwargs.pop("return_fig", True) kwargs["show"] = False kwargs["save"] = ".png" try: fig = run_func(adata, **kwargs) fig_path = set_fig_path(func, **kwargs) add_op_log(adata, run_func, kwargs) return fig_path except Exception as e: raise e return fig_path
  • PCAModel defines the input schema for the pl_pca tool, inheriting from BaseEmbeddingModel which provides common embedding plot parameters like color, components, use_raw, etc., with an additional annotate_var_explained field.
    class PCAModel(BaseEmbeddingModel): """Input schema for the PCA plotting tool.""" annotate_var_explained: bool = Field( default=False, description="Annotate the explained variance." )
  • Creation of the pl_pca_tool object using mcp.types.Tool, specifying name, description, and input schema from PCAModel.
    pl_pca_tool = types.Tool( name="pl_pca", description="Scatter plot in PCA coordinates. default figure for PCA plot", inputSchema=PCAModel.model_json_schema(), )
  • Inclusion of pl_pca_tool in the pl_tools dictionary, which collects all plotting tools for further registration in the MCP server.
    "pl_pca": pl_pca_tool,
  • pl_func dictionary maps tool names like 'pl_pca' to the corresponding scanpy plotting functions (sc.pl.pca), used by the handler to dispatch execution.
    pl_func = { "pl_pca": sc.pl.pca, "pl_embedding": sc.pl.embedding, # Add the new embedding function "diffmap": sc.pl.diffmap, "pl_violin": sc.pl.violin, "pl_stacked_violin": sc.pl.stacked_violin, "pl_heatmap": sc.pl.heatmap, "pl_dotplot": sc.pl.dotplot, "pl_matrixplot": sc.pl.matrixplot, "pl_tracksplot": sc.pl.tracksplot, "pl_scatter": sc.pl.scatter, "embedding_density": sc.pl.embedding_density, "rank_genes_groups": sc.pl.rank_genes_groups, "pl_rank_genes_groups_dotplot": sc.pl.rank_genes_groups_dotplot, # Add function mapping "pl_clustermap": sc.pl.clustermap, "pl_highly_variable_genes": sc.pl.highly_variable_genes, "pl_pca_variance_ratio": sc.pl.pca_variance_ratio, }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/huang-sh/scmcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server