Skip to content

Conversation

@dependabot
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Oct 12, 2025

Bumps actions/checkout from 4 to 5.

Release notes

Sourced from actions/checkout's releases.

v5.0.0

What's Changed

⚠️ Minimum Compatible Runner Version

v2.327.1
Release Notes

Make sure your runner is updated to this version or newer to use this release.

Full Changelog: actions/checkout@v4...v5.0.0

v4.3.0

What's Changed

New Contributors

Full Changelog: actions/checkout@v4...v4.3.0

v4.2.2

What's Changed

Full Changelog: actions/checkout@v4.2.1...v4.2.2

v4.2.1

What's Changed

New Contributors

Full Changelog: actions/checkout@v4.2.0...v4.2.1

... (truncated)

Changelog

Sourced from actions/checkout's changelog.

Changelog

V5.0.0

V4.3.0

v4.2.2

v4.2.1

v4.2.0

v4.1.7

v4.1.6

v4.1.5

v4.1.4

v4.1.3

... (truncated)

Commits

Dependabot compatibility score

You can trigger a rebase of this PR by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.

cafferychen777 and others added 30 commits September 23, 2025 13:58
- Use velovi_adata (preprocessed data with Ms/Mu layers) for CellRank when VELOVI is used
- Ensure consistent data object usage throughout CellRank computation
- Add unified result transfer logic at the end of infer_spatial_trajectory_cellrank
- Store CellRank results back to velovi_adata for future use
- Remove redundant code that directly wrote to original adata

This fix resolves the 'Unable to find data in adata.layers[Ms]' error when using
CellRank with VELOVI-computed velocity by correctly using the preprocessed data
that contains the required Ms/Mu layers.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Added installation instructions for STalign in INSTALLATION.md. Updated RNAVelocityParameters to support method selection and moved VeloVI-specific parameters from TrajectoryParameters to RNAVelocityParameters. Updated dependencies in pyproject.toml: switched to 'glmpca' and enabled 'enrichmap' for Python >=3.10.
Core fixes:
- Add standard 'velocity' layer mapping from VELOVI's 'velocity_velovi' layer
- Use velovi_adata (preprocessed with Ms/Mu layers) for CellRank computation
- Ensure consistent data object usage throughout CellRank pipeline
- Add unified result transfer logic for all CellRank outputs
- Update velovi_adata with CellRank results for future use

Testing completed:
✅ VELOVI velocity computation works correctly
✅ CellRank + VELOVI integration fixed (was failing with Ms layer error)
✅ Palantir trajectory method works
✅ Standard scVelo + CellRank workflow preserved
✅ Two-layer architecture (velocity → trajectory) validated

This resolves the 'Unable to find data in adata.layers[velocity]' error when
using CellRank with VELOVI-computed velocity by correctly mapping VELOVI's
velocity data to the standard layer name expected by CellRank.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Expanded the Claude Code setup instructions to include step-by-step guidance for installing the CLI, locating the virtual environment Python path, adding the MCP server, and verifying installation. This improves clarity for new users.
CRITICAL FIX: Resolved MCP startup failure due to syntax error
- Changed compute_dpt_trajectory from sync to async function
- Added context parameter for proper logging
- Updated function call with await and context

This fixes the 'await outside async function' syntax error that was
preventing MCP server startup when DPT trajectory analysis was used.

Error was: SyntaxError: 'await' outside async function at line 531
Now fixed: async def compute_dpt_trajectory(adata, root_cells=None, context=None)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Replaces arbitrary fallback to fewer PCA components with detailed error reporting. Now provides actionable suggestions and dataset context when PCA fails, raising a RuntimeError instead of silently reducing components.
Changed n_neighbors in AnalysisParameters to a required field with a default of 15, following Scanpy and UMAP recommendations. Removed adaptive neighbor selection logic from preprocessing; now always uses the specified n_neighbors with validation against dataset size.
Introduces ResolVI preprocessing parameters to AnalysisParameters and implements advanced molecular reassignment correction in the preprocessing pipeline. Adds auto-detection of spatial coordinate keys, conditional normalization and PCA steps when ResolVI is used, and a robust preprocess_with_resolvi function with detailed validation and logging. This enables denoising and bias correction for high-resolution spatial transcriptomics data (e.g., Xenium, MERFISH) using ResolVI.
Introduces 'normalize_target_sum' and 'scale_max_value' parameters to AnalysisParameters for flexible normalization and scaling. Updates preprocessing logic to use these parameters, adds detailed logging of normalization configuration, and adapts fallback and clipping behavior accordingly. This improves transparency and user control over preprocessing steps for different spatial transcriptomics technologies.
Expanded the normalization parameter documentation in AnalysisParameters and enhanced the normalization logic in preprocess_data. Added explicit error handling and user feedback for unsupported methods ('sct', 'scvi'), improved checks for raw count data, and provided detailed guidance and warnings for each normalization option.
Adds a detailed diagnostic function for highly variable gene (HVG) selection failures, providing actionable feedback and suggestions. HVG selection and gene subsampling now raise errors with context-specific messages if selection fails, instead of silently falling back to all genes. This improves transparency and helps users identify and resolve data quality or parameter issues during preprocessing.
The clustering_resolution parameter is now required with a default of 1.0, matching scanpy's standard. Removed adaptive resolution logic based on dataset size from preprocessing, and updated documentation and descriptions to reflect this change.
Introduces new tools for saving, listing, exporting, and clearing visualizations from cache to disk. Updates .gitignore to exclude output and export image files while keeping README files. Implements file persistence functions in visualization.py and integrates them as MCP tools in server.py, enabling better management and publication-quality export of generated visualizations.
Introduces new utilities for exporting visualizations in publication-quality formats (PDF, SVG, high-DPI PNG) via export_for_publication and batch_export_all_figures tools. Adds figure caching and token optimization in image_utils to support efficient preview/resource handling and high-quality export. Updates visualization and error handling logic to support returning both preview images and high-quality resources, and integrates publication export into the server.
…lity methods

Removed registration quality evaluation and visualization methods from spatial_registration.py. Updated visualization.py, image_utils.py, and publication_export.py to set matplotlib to use the 'Agg' backend and disable interactive mode, preventing GUI popups on macOS.
Deleted the preprocess_velocity_data async function and its related imports and decorators. This function handled preprocessing for RNA velocity analysis but is no longer needed in the codebase.
Deleted several unused or redundant helper functions and decorators across multiple modules, including annotation, enrichment, integration, trajectory, visualization, data_adapter, error_handling, image_utils, publication_export, and tool_error_handling. This cleanup reduces codebase clutter and improves maintainability by removing legacy or unnecessary code.
Deleted chatspatial/http_server.py and removed the 'chatspatial-http' script entry from pyproject.toml. This eliminates the FastAPI-based HTTP server and its CLI, likely in favor of another deployment or interface approach.
Replaces 'integration_check' with 'batch_integration' for batch integration quality assessment in both data models and visualization logic. Refactors and improves the error handling decorator for visualization functions, providing clearer separation of scientific and technical errors. Removes deprecated code, including the legacy get_spatial_coordinates function and the unused CONFIDENCE_MIN constant. Also removes FastAPI and Uvicorn from dependencies in pyproject.toml.
Eliminated deprecated RNA velocity and CellPhoneDB compatibility parameters and logic, as well as legacy deconvolution visualization code. Updated preprocessing to use unified velocity parameter handling. These changes simplify the codebase and remove unused or obsolete backward compatibility logic.
Clarified the comment for the min_cells parameter in CellCommunicationParameters to specify its requirement for LIANA and moved it under 'Expression Filtering Parameters' for better organization.
Replaces the verbose gene_sets_used and genes_found fields with a compact gene_set_summaries structure in EnrichmentResult and related code. Updates server and enrichment tools to use the new optimized summaries, improving token efficiency and reducing payload size.
Enrichment analysis now strictly requires specific gene sets from a valid database or user input. Removed fallback to highly variable or top expressed genes to preserve scientific validity and prevent misleading results; detailed error messages and guidance are provided when gene set loading fails.
Eliminated the deprecated 'moran_genes' and 'getis_ord_genes' parameters from SpatialAnalysisParameters and related logic in spatial statistics tools. Now only the unified 'genes' parameter is used for specifying genes, simplifying the API and reducing code complexity.
Eliminated the to_dict methods from SpatialMetricResult and ClusterCorrelationResult classes, as well as the legacy gsea_results_dict output in perform_gsea. These changes remove backward compatibility code that is no longer needed.
Removes backward compatibility logic that inserted 'server' as the default command. Now, the main entry point directly calls the CLI handler, streamlining the startup process.
Refactors feature validation to require explicit gene selection for visualization, removing fallback to highly variable or default genes. Improves error messages for missing or excessive genes, and updates heatmap and violin plot logic to raise informative errors when required genes are not found or highly variable genes are missing. Simplifies function signatures and error handling for more predictable and user-guided behavior.
Replaces verbose, research-focused error handling with concise, actionable error messages for CellPhoneDB failures. Each error scenario now provides direct troubleshooting steps and alternative method suggestions, improving clarity and user experience.
Simplified gene coverage error messages in cell communication validation and removed fallback suggestions. Improved CellPhoneDB API error handling to raise explicit errors instead of masking failures. Refactored spatial validation to use the unified validation system directly, removing legacy wrapper functions. In trajectory analysis, removed legacy validation wrappers and now directly use the unified validation system with clearer error reporting. Bivariate Moran's I analysis now requires explicit gene pairs, removing arbitrary defaults. Updated L-R pair visualization to drop legacy pair inference logic. Added a backward compatibility audit report.
cafferychen777 and others added 22 commits October 27, 2025 18:27
Refactored the gene filtering and selection process to operate on sparse matrices before densification, significantly reducing memory usage for large datasets. Filtering for low-expression genes and highly variable genes is now performed on the sparse matrix, and only the selected genes are converted to a dense DataFrame for downstream processing.
Refactored _analyze_getis_ord, _analyze_bivariate_moran, and _analyze_local_moran to extract all relevant gene expression data in batch before looping. This significantly improves performance (20-150x speedup) by avoiding repeated AnnData slicing and sparse-to-dense conversions. Added context info messages to indicate batch extraction progress.
Removed the monkey patch for cell2location and scvi-tools compatibility, as cell2location>=0.1.4 includes the fix. Updated the dependency in pyproject.toml to require cell2location>=0.1.4 and improved installation guidance.
Standardizes import formatting in preprocessing.py and adds missing noqa directive for error handling import in visualization.py. Also makes a minor style fix in integration.py for consistency.
Adds comprehensive Cell2location parameterization, including official gene filtering, batch/covariate correction, learning rate, QC diagnostics, and runtime optimizations. RCTD now supports max_multi_types for multi mode and improved R integration. Server and model schemas updated to reflect new options and document advanced usage for Cell2location, RCTD, SPOTlight, CARD, and Tangram.
Replaces instructional matplotlib plots with raised exceptions for missing or invalid data in spatial domains and cell communication visualizations. This change ensures that errors fail honestly and provide actionable messages, improving clarity for users and maintaining consistency across visualization functions.
Adds user-facing warnings via the context object when UMAP or spatial coordinates are not available during batch integration visualization. This improves user feedback by clarifying why certain visualizations may be incomplete or missing.
PROBLEM:
When multiple deconvolution results exist (e.g., Cell2location + RCTD),
visualization code silently selected the first one without user awareness,
risking scientific reproducibility and accuracy.

CHANGES:

1. Enhanced get_deconvolution_proportions() function:
   - Now async with context parameter for user notifications
   - Detects multiple results and requires explicit specification
   - Auto-selects only when single result exists (with notification)
   - Improved error messages with clear solutions

2. Fixed create_spatial_multi_deconvolution() function:
   - Now uses params.deconv_method for result filtering
   - Checks for multiple results in both obsm and obs paths
   - Notifies user about auto-selected method

3. Updated all deconvolution visualization callers:
   - create_dominant_celltype_map()
   - create_diversity_map()
   - create_stacked_barplot()
   - create_scatterpie_plot()
   - create_umap_proportions()
   All now pass context parameter to get_deconvolution_proportions()

4. Updated VisualizationParameters.deconv_method description:
   - Clarified auto-selection behavior
   - Emphasized scientific reproducibility requirement

BEHAVIOR:
- ✅ Single result: Auto-select + notify (backward compatible)
- ✅ Multiple results + method specified: Use specified method
- ❌ Multiple results + no method: Fail with clear error (breaking change)

This ensures "fail honestly" principle and prevents unintended
visualization of wrong analysis results.

🤖 Generated with Claude Code (https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
CHANGES:
1. Removed BANKSY comments from spatial_domains.py (lines 54-55, 76)
2. Updated IMPLICIT_SELECTION_COMPREHENSIVE_AUDIT.md to use
   current available methods (STAGATE, Leiden) instead of BANKSY

REASON:
BANKSY method has been completely removed from ChatSpatial.
All references to it should be eliminated to avoid confusion.

Available spatial domain methods are:
- spagcn
- leiden
- louvain
- stagate
- graphst

🤖 Generated with Claude Code (https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Replace dead code (lines 3085-3087) with explicit error handling.
The PCA fallback was unreachable due to earlier validation that ensures
only spatial coordinates are used for spatial domain visualization.

Changes:
- Replace else branch with ValueError for unexpected coord_type
- Improves code clarity and prevents silent failures
- Part of spatial domains visualization cleanup (Priority 3)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Updated the instructions to specify that after quitting, users should re-enter Claude Code with the 'claude' command for changes to take effect.
Replaces references to old sample datasets and release links with updated files and URLs for version 0.3.0. Updates example commands and clarifies file paths to reflect the new dataset names and structure.
Replaced references to 'destvi_spatial_small.h5ad' and 'destvi_reference_small.h5ad' with 'card_spatial.h5ad' and 'card_reference_filtered.h5ad' in quick start, troubleshooting, and tutorial docs. Updated download links, example commands, and instructions to reflect the new sample datasets and analysis steps.
Added install_r_dependencies.R script for automated installation of R packages required by ChatSpatial's R-based methods. Updated INSTALLATION.md with detailed R setup and troubleshooting instructions. Enhanced README.md and quick-start guide to clarify natural language usage in Claude chat, provide conversational analysis examples, and highlight the MCP workflow.
Remove problematic silent fallbacks:
- Remove gene fallback to HVGs when all specified genes missing
- Remove scanpy-to-seaborn fallback (~170 lines)
- Fix feature validation to raise explicit errors

Unify gene validation logic:
- Extend get_validated_features with allow_empty and default_genes parameters
- Refactor heatmap gene validation (50 lines → 10 lines)
- Refactor violin gene validation (30 lines → 9 lines)
- Add gene name uniqueness checks across all functions
- Standardize error types to DataNotFoundError
- Add max_features limit for violin plots

Impact:
- Eliminates 70 lines of duplicated validation logic
- Improves error messages and user experience
- Ensures consistent behavior across all visualization functions
Introduces new subplot spacing parameters (subplot_wspace, subplot_hspace, colorbar_pad, colorbar_size) to VisualizationParameters for improved multi-panel plot layout. Refactors spatial and CNV visualization functions to use a unified plot_spatial_feature helper, ensuring consistent handling of categorical/continuous data, color mapping, and colorbar placement. Renames and standardizes internal helper functions for multi-gene, deconvolution, and spatial statistics visualizations to use a leading underscore and updates their usage throughout the codebase. Improves documentation and code clarity for spatial plotting utilities.
Expanded the lower bound for subplot_wspace from -0.1 to -0.3 to support more extreme compactness in multi-panel plots. Updated the description to clarify the use of negative values for overlapping spacing.
Updated the MCP protocol badge in README.md to v2025.03.26 and set the project version to 1.0.0 in both __init__.py and pyproject.toml, indicating a major release.
Changed the default spot size for spatial plots from 200 to 150 in both the data model and server documentation to better balance dense and sparse data. Refactored several visualization helper functions to use a leading underscore for consistency and encapsulation. Improved code formatting and added markerscale to legend in dominant celltype map.
Replaces mentions of the GASTON method with SPARK-X across benchmark tables, method recommendations, and learning path documentation. Updates configuration and troubleshooting sections to reflect the change, and removes GASTON-specific content from advanced and beginner learning paths. This aligns documentation with current supported methods and improves clarity for users.
Enhanced _create_gsea_barplot to better distinguish between GSEA and ORA results, dynamically set score columns and labels, and adjust color thresholds accordingly. Updated _create_cluster_communication_plot to support additional ligand-receptor pair formats and improved pair name construction. Minor import formatting improvements for clarity.
@dependabot dependabot bot force-pushed the dependabot/github_actions/actions/checkout-5 branch from 8e7abd7 to 7564ce1 Compare November 3, 2025 09:11
Problem:
- Test failed on macOS-latest with Python 3.11
- louvain package compilation failed with strict-prototypes error
- New macOS Clang compiler rejects deprecated C function declarations

Solution:
1. Changed dependency from 'igraph' to 'python-igraph'
   - python-igraph provides pre-compiled binaries
   - Avoids source compilation issues on macOS
2. Added CFLAGS in macOS workflow as backup safety measure
   - Allows deprecated function prototypes if needed
   - Prevents future compilation failures with C dependencies

This should fix the installation test on all platforms (Ubuntu, macOS, Windows)

Co-authored-by: Claude <noreply@anthropic.com>
@dependabot dependabot bot force-pushed the dependabot/github_actions/actions/checkout-5 branch from 7564ce1 to 1bdb066 Compare November 4, 2025 18:01
cafferychen777 and others added 3 commits November 4, 2025 20:39
Update CI workflow to handle louvain installation failures gracefully and verify automatic fallback to Leiden. Update INSTALLATION.md to document known louvain compilation issues on macOS/Windows and clarify that Leiden is the preferred and default clustering algorithm. Add comments in pyproject.toml to indicate Leiden is preferred over Louvain due to better performance and fewer compilation issues.
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot force-pushed the dependabot/github_actions/actions/checkout-5 branch from 1bdb066 to e4a4503 Compare November 5, 2025 02:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants