cvxgrp / pymde

Minimum-distortion embedding with PyTorch
https://pymde.org
Apache License 2.0
526 stars 27 forks source link

Implement pymde in Scanpy #53

Open adamgayoso opened 2 years ago

adamgayoso commented 2 years ago

This is a super cool package! It would be great to see it directly used in Scanpy

I made an issue there describing a bit about the feature request. It seems pretty straightforward to implement given that you have recipe functions already. I'm not sure how much work it would be to directly use the neighbors graph created by scanpy.pp.neighbors (also uses Pynndescent)

https://github.com/theislab/scanpy/issues/2154

akshayka commented 2 years ago

That would be fantastic!

Would Scanpy need to reimplement PyMDE, or could it depend on it? I see that umap-learn is one of its dependencies: https://github.com/theislab/scanpy/blob/master/pyproject.toml#L75

adamgayoso commented 2 years ago

Hypothetically it could depend on it (maybe through lazy import and extras...) but the only thing is that scanpy disentangled umap neighbor computation with embedding learning, so somehow using a neighbors graph directly would need to be implemented on the pymde side I think.

akshayka commented 2 years ago

I see. I would be happy to put in the work needed to make this happen.