pyOpenSci / software-submission

Submit your package for review by pyOpenSci here! If you have questions please post them here: https://pyopensci.discourse.group/
90 stars 35 forks source link

Presubmission inquiry: PixAnalyzer python package #141

Closed HMYamano closed 8 months ago

HMYamano commented 9 months ago

Submitting Author: Hayato M Yamanouchi(@HMYamano)
Package Name: PixAnalyzer One-Line Description of Package: PixAnalyzer is a tool for quantifying the motion of objects by calculating pixel changes which cannot be quantified by tracking or object recognition. Repository Link (if existing): https://github.com/HMYamano/PixAnalyzer


Code of Conduct & Commitment to Maintain Package

Description

"PixAnalyzer" is a tool designed to quantify the changes in deformation and movement of an object by measuring the changes in pixel count in an image. Historically, it was challenging to quantify phenomena such as the deformation of an object's overall shape due to difficulties associated with tracking. To address this, we developed a GUI-based software inspired by the method used in P. Solari et al., 2017 that analyzed the deformation of the Drosophila crop. In our analysis, by setting a specific brightness threshold, only the deformation of the target object is captured. Furthermore, the software provides a graph depicting the pixel change for each frame and exports this data in Excel format.

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:

Scope

Scope

Domain Specific & Community Partnerships

- [ ] Geospatial
- [ ] Education
- [ ] Pangeo
- [x] Unsure/Other (explain below)

P.S. Have feedback/comments about our review process? Leave a comment here

NickleDave commented 8 months ago

Hi @HMYamano, welcome to pyOpenSci and thank you for making this presubmission inquiry.

Yes, pixAnalyzer is in scope. We have decided that it falls under scope as a re-implementation of a previous work, as you state above.

Please go ahead and make a submission.
Once you confirm to me that you plan to do so, I will close this issue.

However, you should pay very close attention to our requirements. Your package must meet all the requirements listed here when you submit, or we will not be able to proceed with the review: https://www.pyopensci.org/software-peer-review/how-to/author-guide.html#does-your-package-meet-packaging-requirements In particular, you must have:

  • [ ] Documentation The package has sufficient online documentation to allow us to evaluate package function and scope without installing the package. This includes:
    • [ ] User-facing documentation that overviews how to install and start using the package.
    • [ ] Short tutorials that help a user understand how to use the package and what it can do for them.
    • [ ] API documentation (documentation for your code's functions, classes, methods and attributes): this includes clearly written docstrings with variables defined using a standard docstring format.

What you have in your README is a good start, but it is not enough to meet those requirements. You will need an external site, e.g. on ReadTheDocs or GitHub pages. Please see our packaging guide here for more info: https://www.pyopensci.org/python-package-guide/documentation/write-user-documentation/intro.html

It is not required, but I would strongly suggest you move away from using a legacy setup.py file, and instead use a modern pyproject.toml file to declare your package's metadata, including the dependencies. Please see here for more info: https://www.pyopensci.org/python-package-guide/package-structure-code/intro.html

It is not clear to me right now whether I would be able to pip install your package and have the required dependencies installed, because you have not declared them in your setup.py file. I see that you have a requirements.txt file and an environment.yml file, but ideally you do not want to require your users to use those files. See this post if what I'm saying isn't familiar: https://caremad.io/posts/2013/07/setup-vs-requirement/

We are able to review packages that can only be installed with conda, e.g. because they rely on libraries that would otherwise be native dependencies. But in your case it may be possible that you can have a pure Python package--I can't tell until you declare your dependencies, e.g. in a pyproject.toml file.

Please let me know if what I'm saying makes sense.

We are happy to help you improve your package with a review, but we will need it to meet these basic requirements. You can also feel free to ask questions in our forum (https://pyopensci.discourse.group/) if you need help with any of the specific items I outlined above or that are in the requirements that I linked.

NickleDave commented 8 months ago


I want to submit it to PyOpenSci and Journal of Open Source Software. What should I prepare additionally for submitting?

If you submit and we go through a full review, and your package is accepted into the pyOpenSci ecoystem, then your package would be fast-tracked through the submission process at JOSS, as described here: https://www.pyopensci.org/software-peer-review/partners/joss.html#you-can-improve-your-package-with-a-review-at-pyopensci-and-still-publish-in-joss You would then need to prepare a JOSS submission as described here: https://joss.readthedocs.io/en/latest/submitting.html

However, you should know that not every package that is in scope for pyOpenSci is automatically in scope for JOSS. Their review criteria are here, and include a certain amount of development time and lines of code: https://joss.readthedocs.io/en/latest/review_criteria.html. I am not sure if pixAnalyzer would meet those criteria.

HMYamano commented 8 months ago

Thank you for your answer message. I will prepare for submission to PyOpenSci.

NickleDave commented 8 months ago

Great, thank you @HMYamano! Looking forward to your submission!