pmelsted / bifrost

Bifrost: Highly parallel construction and indexing of colored and compacted de Bruijn graphs
BSD 2-Clause "Simplified" License
204 stars 25 forks source link

Python interface to Bifrost #10

Closed winni2k closed 4 years ago

winni2k commented 4 years ago

Hi, I would like to add Bifrost as a CDBG storage format/engine for cortexpy. I will need a cpython interface for that. I see in https://github.com/pmelsted/bifrost/issues/3#issuecomment-562127927 that there might already be some work done on such an interface. Any chance I could get access to that work to avoid reinventing the wheel?

I would, of course, contribute any additions I make to that interface back to the original project.

Cheers, Winni

GuillaumeHolley commented 4 years ago

Hi there,

Sorry for the delay. This sounds like a really nice project :) I can give you access to what has been done so far for our Python interface (using pybind11). Full warning: the python code hasn't changed for the past 18 months while the C++ code of Bifrost has changed quite a bit since then. Let me know if you still want to have a look. Thanks for your interest!

Best, Guillaume

winni2k commented 4 years ago

That would be great! Do you have a repo or branch that I could pull?

I expect that my progress will be slow as I will be working on this part time, but perhaps I can push things along a bit.

GuillaumeHolley commented 4 years ago

Sorry again it took so long, I am myself working part time on this and I have been crazy busy those days. Anyway, I just send you an invite to contribute to pybifrost. For any questions or suggestions, you can contact me privately or maybe open an issue on the corresponding repo ;)

I am closing this issue.

Best, Guillaume

lrvdijk commented 4 years ago

Hi @GuillaumeHolley and @winni2k,

I'd be interested in the Python interface too, and we also have some resources the coming year to contribute to the project. Let me know how I can help!

GuillaumeHolley commented 4 years ago

Hi @lrvdijk

I just sent you an invite to our repo ;) All contributions are welcome. Thanks.

Guillaume

lrvdijk commented 4 years ago

Hi all (@GuillaumeHolley @winni2k),

I've started a new repository where I'm working on a Python interface with a NetworkX compatible API. It's in its very early stages, but some basic iteration and traversal functions are working.

https://github.com/broadinstitute/pyfrost

winni2k commented 4 years ago

That's amazing! I'll have a look @lrvdijk

GuillaumeHolley commented 4 years ago

Hi guys,

It is a wonderful work @lrvdijk, thank you! I will keep a close eye on this project and it goes without saying that if you need anything, you let me know.

GuillaumeHolley commented 4 years ago

Hey @lrvdijk and @winni2k,

I started writing a tutorial for the Bifrost C++ API which is available here. It is a work in progress, not much content for now but I intend to enhance it with a lot more in the coming weeks. I thought this might be helpful in your quest for a Python interface ;)

winni2k commented 4 years ago

Thanks for the heads-up!

lrvdijk commented 4 years ago

Nice, I've made quite a bit of progress on the Python interface, will put up some documentation soon

lrvdijk commented 4 years ago

A pre-pre-pre release of the Python interface can be here @winni2k @GuillaumeHolley : https://github.com/broadinstitute/pyfrost

GuillaumeHolley commented 4 years ago

Wow, amazing work @lrvdijk ! Unfortunately, I have little time to do Bifrost-related work at the moment but as soon as I have some time, I will give it a shot. Thanks!

GuillaumeHolley commented 4 years ago

Btw @lrvdijk, can I advertise your work "publicly" (i.e Twitter)?

lrvdijk commented 4 years ago

Thanks! Let's hold off for maybe a month before more broadly announcing it, in the coming weeks I'll use the library for some of my own research projects, and I'm sure I will encounter bugs and missing features.

Will update when I'm more comfortable announcing it haha!

winni2k commented 4 years ago

This looks great! I have some thoughts/suggestions. I'll post those on the pyfrost repo.