-
Notifications
You must be signed in to change notification settings - Fork 2
General Sampling and Volume Computation in Dingo
Dingo is a Python library for sampling from convex polytopes and mainly focuses on problems and domains coming from metabolic network analysis. Its current user interface is not very user-friendly for general polytope sampling and volume computation tasks. Additionally, some functions—both in Dingo and its underlying library, volesti
—are not fully exposed or properly bound to Python, making it harder for users to leverage the full functionality of the library.
Our goal is improve the usability and the interface of Dingo. This project aims to:
- Expose Python functions that are currently hidden or poorly bound, including those from
volesti
. - Simplify the process of defining polytopes and running sampling or volume computation algorithms.
- Enhance the documentation and provide examples to help users get started easily.
-
Expose Hidden or Unbound Python Functions:
- Identify and bind the Python functions from
volesti
that are not currently accessible (e.g. volume of V-polytopes). - Refactor the code to expose these functions to users in a straightforward and accessible way.
- Ensure that all core functionalities related to polytope sampling and volume computation are easy to use.
- Identify and bind the Python functions from
-
Simplify the Sampling and Volume Computation Workflow:
- Provide user-friendly wrapper functions for common tasks such as defining polytopes, running sampling algorithms, and computing volumes.
- Ensure that users can execute complex computations without needing to interact with the internal code.
-
Enhance Documentation and Provide Examples:
- Update the documentation to reflect the new, more accessible user interface.
- Provide clear tutorials and example scripts that demonstrate how to define polytopes, run sampling algorithms, and compute volumes.
- Ensure that the documentation is beginner-friendly and provides users with step-by-step guides.
- A more accessible user interface for polytope sampling and volume computation in Dingo, with previously hidden or unbound functions now fully exposed.
- Simplified workflows for common tasks, making it easier for users to get started with polytope sampling and volume computation.
- Comprehensive documentation with practical examples that demonstrate the functionality of the library.
Difficulty: Medium
Large (350 hours)
- Python (for working with existing code and improving bindings).
-
Familiarity with C++ and Python bindings/Cython (to address missing bindings from
volesti
). - Understanding of convex geometry (optional, for understanding the sampling and volume computation tasks).
- Experience with Python testing and documentation (to ensure clarity and usability).
-
Haris Zafeiropoulos <haris.zafr at gmail.com> is post-doctoral researcher at KU Leuven in the Lab of Microbial Systems Biology, focusing on microbial interactions through data integration and reverse ecology approaches. He has participated in GSoC as both a student and a mentor with the GeomScale group, contributing to the
dingo
library (2021–2025). -
Vissarion Fisikopoulos <vissarion.fisikopoulos at gmail.com> is an international expert in mathematical software, computational geometry, and optimization, and has previous GSOC mentoring experience with Boost C++ libraries (2016-2020) and the R-project (2017-2019).
By the end of this project, Dingo will be significantly more accessible and user-friendly, allowing users to perform polytope sampling and volume computation tasks with ease—without needing to dive into the intricacies of the codebase.