Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Input parameter X in Diffusor.transform #1

Closed
parashardhapola opened this issue Jun 6, 2021 · 1 comment
Closed

Input parameter X in Diffusor.transform #1

parashardhapola opened this issue Jun 6, 2021 · 1 comment
Assignees
Labels
question Further information is requested

Comments

@parashardhapola
Copy link

parashardhapola commented Jun 6, 2021

Hi @davisidarta,

Great work! I think this package will really help expand how we are using the KNN graph structures of single-cell datasets.

I was taking a closer into the Diffusor class and found that you don't actually use the parameter X in Diffusor.transform. Does this mean that the data can only be self-transformed? Or probably I'm missing something?

Best,
Parashar

@davisidarta
Copy link
Owner

Hi @parashardhapola ! Thank you for your interest in TopOMetry and for your kind words! :)

I think this package will really help expand how we are using the KNN graph structures of single-cell datasets.

So I hope! It stores graphs and decomposes them into new dimensionality reduced bases within the TopOGraph object. I'm doing this entirely on my own while on hospital rounds, so I'm sorry the fuzzy and cknn transformers are not so well documented, although you'll find extensive docstrings in the code.

I was taking a closer into the Diffusor class and found that you don't actually use the parameter X in Diffusor.transform. Does this mean that the data can only be self-transformed? Or probably I'm missing something?

That's a consequence of scikit-learn transformers used as a base, but I can actually change it to be optional. The transform() step basically calls an adaptive eigendecomposition of the kernel or the transition matrix, so it only needs these graphs to operate, and not the full data. As you've noticed, this means transformation requires a fitted affinity graph. Although Nystrom's out-of-sample extension is possible, it is not yet implemented, as I'm still considering possible extension methods using landmarks.

TopOMetry is in its very early days, and I'm considering adding new features that others would find useful. Would an extension of the graph-learning process to out-of-sample data be what you're thinking about, so as to do this iteratively in memory batches within Scarf?

@davisidarta davisidarta self-assigned this Jun 8, 2021
@davisidarta davisidarta added the question Further information is requested label Jun 8, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants