Skip to content
New issue

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

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

Already on GitHub? # to your account

Is it possible to calculate the Betti Numbers of the simplicial complex? #137

Open
karinsasaki opened this issue Feb 22, 2019 · 6 comments

Comments

@karinsasaki
Copy link
Contributor

karinsasaki commented Feb 22, 2019

I would like to be able to evaluate the choice of parameter values for the Kepler Mapper using the Betti Numbers rather than visually (looking at the simplicial complex plotted). This would be helpful in making a more informed choice on parameter values and, in addition, would lead to allowing calculations of persistence homology. I am wondering if at the moment it is possible to calculate Betti Numbers with Kepler Mapper?

@sauln
Copy link
Member

sauln commented Feb 22, 2019

It currently is not directly supported, but definitely should be. I’m working on an implementation of extended persistence in the scikit-tda/cechmate package that will hopefully be ready next week.

Do you know of any python libraries that support calculation of homology? We could probably put together an adapter.

@karinsasaki
Copy link
Contributor Author

karinsasaki commented Feb 25, 2019

I could not find the cechmate package in the scikit-tda GitHub page. I'll keep my eye on it for when you release it.

Regarding calculation of homology, I know of GUDHI and Dionysus (which doubtlessly you also know about), which calculate persistence homology.

Do you know of reasonable methodologies for calculating homology that are not necessarily yet a python library? (Something like this or perhaps I should go back to look in Hatcher, Munkres, Fulton, Armstrong...). Perhaps another idea to start with is to write a simple algorithm like that for kmapper - do you think this is a reasonable approach?

@sauln
Copy link
Member

sauln commented Feb 25, 2019

Here's the cechmate package: https://github.com/scikit-tda/cechmate
and it's documentation: https://cechmate.scikit-tda.org

The extended persistence implementation might be another week or two until it's released.

One option that @ctralie thought up would be to

you could do a custom filtration in cechmate with all simplices of a birth time 1 and all absent simplices infinity

This would be straight forward to construct following the example here: https://cechmate.scikit-tda.org/notebooks/BasicUsage.html#Custom-filtration

Adding a constructor for this to Kepler Mapper would be great. If you wanted to work on it and submit a PR, I would gladly help where I can.

@karinsasaki
Copy link
Contributor Author

Thank you for the links!

Ok, let me have a look at these suggestions in detail and I'll comeback to you soon.

@holmbuar
Copy link
Contributor

Hello @sauln, is the extended persistence implementation alive? My understanding is that the simplicial complex built by Kepler-Mapper is the dictionary from the mapper.map function?

@sauln
Copy link
Member

sauln commented Nov 22, 2019

The work can be found in the cechmate package. You should be able to pass in the result of the mapper.map function to the Cechmate.from_kmapper constructor:
https://github.com/scikit-tda/cechmate/blob/93d02200322f966417901f31cb761dafd07cf1a9/cechmate/filtrations/extended.py#L49

I haven't fully tested this implementation, so use at your own risk. If you find problems however, feedback would be appreciated.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants