Skip to content

Conversation

@Starlitnightly
Copy link
Collaborator

This pull request adds a new dimension reduction method, SUDE, to the codebase and integrates it into the existing pipeline for dimensionality reduction. The main changes include the addition of the full SUDE algorithm implementation and supporting functions, updating the API to expose SUDE, and modifying documentation to reflect the new option.

SUDE algorithm and supporting functions:

  • Added a complete implementation of the SUDE algorithm in sude.py, including landmark selection, embedding computation, and handling of large datasets.
  • Introduced supporting mathematical and utility functions for SUDE, including init_pca (PCA initialization), pca (PCA embedding), mds (MDS embedding), pps (landmark sampling), learning_s and learning_l (manifold learning for landmarks), opt_scale (optimal landmark scaling), clle (constrained locally linear embedding), and plotcluster2 (embedding visualization).

API and integration updates:

  • Exposed the sude function at the package level by updating the __init__.py file to import it.
  • Updated the main tools API to include run_sude as an available dimension reduction method.
  • Extended the documentation for the reduceDimension function to mention SUDE as a supported reduction method.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This pull request adds SUDE (Scalable Unsupervised Deep Embedding) as a new dimension reduction method to the Dynamo package. The implementation includes a complete SUDE algorithm with supporting mathematical functions and integrates it into the existing dimension reduction pipeline.

  • Added complete SUDE algorithm implementation with supporting functions for landmark selection, embedding computation, and large dataset handling
  • Integrated SUDE into the main dimension reduction API and exposed it at the package level
  • Added comprehensive test coverage for SUDE functionality including edge cases and parameter validation

Reviewed Changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tests/test_sude.py Comprehensive test suite covering SUDE functionality, parameter validation, and integration
dynamo/tools/utils_reduceDimension.py Updated to include SUDE as a supported reduction method in the main pipeline
dynamo/tools/dimension_reduction.py Added dedicated run_sude function and updated documentation to mention SUDE support
dynamo/tools/init.py Exposed run_sude function at the package level
dynamo/external/sude_py/*.py Complete SUDE algorithm implementation with supporting mathematical functions

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@aristoteleo aristoteleo deleted a comment from Copilot AI Sep 11, 2025
@codecov
Copy link

codecov bot commented Sep 11, 2025

Codecov Report

❌ Patch coverage is 4.86145% with 7691 lines in your changes missing coverage. Please review.
✅ Project coverage is 30.25%. Comparing base (9f82563) to head (5897f70).
⚠️ Report is 17 commits behind head on master.

Files with missing lines Patch % Lines
dynamo/external/celldancer/pseudo_time.py 0.00% 556 Missing ⚠️
dynamo/external/latentvelo/utils.py 0.00% 556 Missing ⚠️
dynamo/external/celldancer/velocity_estimation.py 0.00% 535 Missing ⚠️
dynamo/external/latentvelo/models/refine_model.py 0.00% 531 Missing ⚠️
...namo/external/latentvelo/models/annot_vae_model.py 0.00% 440 Missing ⚠️
dynamo/external/latentvelo/models/vae_model.py 0.00% 415 Missing ⚠️
dynamo/external/celldancer/utilities.py 0.00% 319 Missing ⚠️
...ynamo/external/latentvelo/models/atac_reg_model.py 0.00% 297 Missing ⚠️
dynamo/external/latentvelo/output_results.py 0.00% 270 Missing ⚠️
dynamo/external/celldancer/diffusion.py 0.00% 251 Missing ⚠️
... and 63 more
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #729      +/-   ##
==========================================
- Coverage   36.56%   30.25%   -6.31%     
==========================================
  Files         183      258      +75     
  Lines       35352    43407    +8055     
==========================================
+ Hits        12925    13131     +206     
- Misses      22427    30276    +7849     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

…s with detailed parameter descriptions and usage examples.
…fix CUDA tensor conversion issues

  - Replace sklearn NearestNeighbors with PyTorch-native KNN using torch.cdist for full GPU acceleration
  - Remove unnecessary CPU-GPU data transfers by keeping all computations on device
  - Fix TypeError: can't convert cuda:0 device type tensor to numpy by adding proper .cpu() calls
  - Update forward method to use torch.stack instead of numpy array conversion
  - Add device parameter ('cpu'/'gpu') to velocity() function for flexible device selection
  - Add GPU memory conflict warning when using multiprocessing with GPU
  - Improve tensor-to-scalar conversion with proper device handling
  - Renamed _non_para_kernel to _non_para_kernel_t4 for clarity
  - Added device selection for GPU/CPU in train_vae_nogcn function
  - Improved folder creation logic with warning for existing directories
…n CI workflows

  - Added `--exclude=dynamo/external,external` option to flake8 commands in both python-package.yml and python-plain-run-test.yml to prevent linting errors from external directories.
@Starlitnightly Starlitnightly merged commit 27eb07f into aristoteleo:master Nov 5, 2025
6 of 8 checks passed
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.

1 participant