Skip to content

Phenopype: a phenotyping pipeline for Python #24

Closed
@mluerig

Description

@mluerig

Submitting Author: Moritz Lürig (@mluerig)
All current maintainers: Moritz Lürig (@mluerig)
Package Name: phenopype
One-Line Description of Package: a phenotyping pipeline for Python
Repository Link: https://github.com/phenopype/phenopype
Version submitted: 1.0.5
Editor: @jbencook
Reviewer 1: @agporto
Reviewer 2: @sdonoughe
Archive: DOI
JOSS DOI: N/A
Version accepted: 2.0.1
Date accepted (month/day/year): 05/13/2021

Edit: Bumped from 1.0.4 to 1.0.5 since submission.


Description

Phenopype is a high throughput phenotyping pipeline for Python to support biologists in extracting high dimensional phenotypic data from digital images. The program provides intuitive, high level computer vision functions for image preprocessing, segmentation, and feature extraction. Users can assemble their own function-stacks that can be stored in the human-readable yaml-format along with raw data and results, facilitating high throughput and full data reproducibility. Phenopype can be run from Python or from a Python Integrated Development Environment (IDE), like Spyder. Phenopype is designed to provide robust image analysis workflows that can be implemented with little or no Python experience.

Scope

  • Please indicate which category or categories this package falls under:
    • Data retrieval
    • Data extraction
    • Data munging
    • Data deposition
    • Reproducibility
    • Geospatial
    • Education
    • Data visualization*

* Please fill out a pre-submission inquiry before submitting a data visualization package. For more info, see this section of our guidebook.

  • Explain how the and why the package falls under these categories (briefly, 1-2 sentences). Please note any areas you are unsure of:

Phenopype is designed to extract phenotypic data (https://en.wikipedia.org/wiki/Phenotype) of plants, animals, and other organisms from images and videos. By processing images in Python, through reproducible code and human readable configuration files, phenotyping becomes higher throughput and more reproducible than established GUI programs like "ImageJ".

  • Who is the target audience and what are scientific applications of this package?

Phenopype is intended for ecologists and evolutionary biologists that work with phenotypic data. Phenotypic data are an essential component of ecological and evolutionary research (https://www.nature.com/articles/nrg2897).

  • Are there other Python packages that accomplish the same thing? If so, how does yours differ?

Only low level computer vision packages like OpenCV or scikit-image are out there that require a lot of configuring and a relatively deep understanding of computer vision and Python in general. Phenopype offers high level functions so that users can focus on the relevant analytic parts of image analysis.

  • Any other questions or issues we should be aware of?:

    • Full functionality is currently given for Windows and Linux builds. Under macOS, the high throughput workflow does not work due to two conflicting dependencies (watchdog and OpenCV)
    • Although phenopype attempts to minimize user interaction with images (e.g. setting ROIs or landmarks), this is a still a key component. I have done what I can to mimic user input for testing and CI, but I could not find a way to fake mouse movement and clicking, which is why the testing suite does not cover some of the lowlevel functions. Therefore, coverage is about 10% lower than what it could be with these interactions.
    • This is the presubmission inquiry: Phenopype: a phenotyping pipeline for Python #23
  • does not violate the Terms of Service of any service it interacts with.

  • has an OSI approved license

  • contains a README with instructions for installing the development version.

  • includes documentation with examples for all functions.

  • contains a vignette with examples of its essential functions and uses.

  • has a test suite.

  • has continuous integration, such as Travis CI, AppVeyor, CircleCI, and/or others.

Publication options

JOSS Checks
  • The package has an obvious research application according to JOSS's definition in their submission requirements. Be aware that completing the pyOpenSci review process does not guarantee acceptance to JOSS. Be sure to read their submission requirements (linked above) if you are interested in submitting to JOSS.
  • The package is not a "minor utility" as defined by JOSS's submission requirements: "Minor ‘utility’ packages, including ‘thin’ API clients, are not acceptable." pyOpenSci welcomes these packages under "Data Retrieval", but JOSS has slightly different criteria.
  • The package contains a paper.md matching JOSS's requirements with a high-level description in the package root or in inst/.
  • The package is deposited in a long-term repository with the DOI:

Note: Do not submit your package separately to JOSS

Are you OK with Reviewers Submitting Issues and/or pull requests to your Repo Directly?

This option will allow reviewers to open smaller issues that can then be linked to PR's rather than submitting a more dense text based review. It will also allow you to demonstrate addressing the issue via PR links.

  • Yes I am OK with reviewers submitting requested changes as issues to my repo. Reviewers will then link to the issues in their submitted review.

Code of conduct

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

Editor and Review Templates

Editor and review templates can be found here

note: original repo url: https://github.com/mleurig/phenopype

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    pyos-accepted

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions