- Notifications
You must be signed in to change notification settings - Fork 36
Description
Submitting Author: Name (@eliotwrobson)
Package Name: CyNetDiff
One-Line Description of Package: A performance-focused library implementing algorithms for simulating network diffusion processes, written in Cython.
Repository Link (if existing): https://github.com/eliotwrobson/CyNetDiff
Code of Conduct & Commitment to Maintain Package
- I agree to abide by pyOpenSci's Code of Conduct during the review process and in maintaining my package after should it be accepted.
- I have read and will commit to package maintenance after the review as per the pyOpenSci Policies Guidelines.
Description
- Include a brief paragraph describing what your package does:
Network diffusion processes aim to model the spread of information through social networks, represented using graphs. Experimental work involving these models usually involves simulating these processes many times over large graphs, which can be computationally very expensive. At the same time, being able to conduct experiments using a high-level language like Python is helpful to researchers, as this gives greater flexibility in developing research software. To address both of these concerns, CyNetDiff is a Cython module implementing the independent cascade and linear threshold models, two of the most popular network diffusion models. Development has been focused on performance, while still giving an intuitive, high-level interface to assist in research tasks.
Community Partnerships
We partner with communities to support peer review with an additional layer of
checks that satisfy community requirements. If your package fits into an
existing community please check below:
- Pangeo
- My package adheres to the Pangeo standards listed in the pyOpenSci peer review guidebook
Scope
-
Please indicate which category or categories.
Check out our package scope page to learn more about our
scope. (If you are unsure of which category you fit, we suggest you make a pre-submission inquiry):- Data retrieval
- Data extraction
- Data processing/munging
- Data deposition
- Data validation and testing
- Data visualization
- Workflow automation
- Citation management and bibliometrics
- Scientific software wrappers
- Database interoperability
Domain Specific & Community Partnerships
- [ ] Geospatial - [ ] Education - [ ] Pangeo - [ ] Unsure/Other (explain below)
- Explain how and why the package falls under these categories (briefly, 1-2 sentences). Please note any areas you are unsure of:
The package is designed to be a core tool used for data processing when conducting network diffusion experiments, as it allows for efficient simulation of the most computationally expensive component of this process.
- Who is the target audience and what are the scientific applications of this package?
This is aimed at researchers working in areas related to network diffusion and influence maximization, and specifically at optimizing the most computationally expensive part of this process. This should enable researchers to conduct experiments on larger graphs than would be possible with a pure-Python package. For a recent work doing experiments that fit the use cases of this package, see https://arxiv.org/abs/2207.08937
- Are there other Python packages that accomplish similar things? If so, how does yours differ?
There is a previous package filling a similar use case called ndlib: https://github.com/GiulioRossetti/ndlib
Our package differs as it was developed with a focus on performance, and with lesser emphasis on visualization
and flexibility (for example, we do not have a way of defining custom models). Using code compiled with Cython
allows our package to handle much larger graphs than are possible with a pure-Python package like ndlib.
- Any other questions or issues we should be aware of:
The package is still in the late stages of initial development, and we only just released our first version on PyPI, but I wanted to open this inquiry early to get feedback on the scope of the project. Are there rules about package maturity before getting a full review? I would like to submit fairly soon after getting the documentation set up. The documentation right now is very light, I'm happy to add more now if this will give helpful information for this inquiry.
Also, this is the first Cython package I've written, and getting some insight about best practices for the build system would be very helpful.
P.S. Have feedback/comments about our review process? Leave a comment here
Metadata
Metadata
Assignees
Labels
Type
Projects
Status