micans / mcl

MCL, the Markov Cluster algorithm, also known as Markov Clustering, is a method and program for clustering weighted or simple networks, a.k.a. graphs.
https://micans.org/mcl
Other
91 stars 12 forks source link

Future single cell applications #27

Closed Nusob888 closed 4 months ago

Nusob888 commented 9 months ago

Many thanks, I read your RCL preprint with great interest. If there are any plans to add more wrappers, could there be a wrapper for RCL implementation in scanpy too?

micans commented 9 months ago

Hello, I'm glad to hear of your interest. A scanpy implementation or wrapper will be a great way to increase accessibility of the RCL method. The table format shown on page 21 of the preprint (and output by the rcl implementation available in mcl-22-282) is a good candidate for use as an exchange format; it comprehensively encodes the hierarchical clustering that interpolates the resolution sizes. I do not have the time or experience right now to provide such a scanpy interface myself, unfortunately. A slight complicating factor is that dealing with hierarchies requires a lot more administration (and programming) than dealing with flat clusterings. I don't know if this infrastructure is already in place in scanpy. If it is, then the aforementioned exchange format should make the task relatively limited in scope.

Nusob888 commented 9 months ago

Thanks so much for the response. When I have downtime I could work on a wrapper.

I think just replicating what you did with the Leiden and Louvain clusters is what I had in mind. e.g. clustering iteratively at 12 resolutions and then leave the user to assess which resolution was most biologically meaningful.

Do you have any reproducibility code for the developing kidney dataset? I could probably work from that and create a stand alone module for now to test.

micans commented 9 months ago

The kidney data set itself is not publicly available. I've made an effort to retain the workflow scripts, so the components are largely there; what is lacking is a complete workflow example. At the time I worked with Seurat rather than Scanpy, and I did not polish or unify the scripts I used. However, several components exist and should help.

Perhaps these could get you started, any questions I'm happy to help.