Joss-reviews: [REVIEW]: xphyle: Extraordinarily simple file handling

Created on 4 May 2017  Â·  18Comments  Â·  Source: openjournals/joss-reviews

Submitting author: @jdidion (John Didion)
Repository: https://github.com/jdidion/xphyle
Version: 3.0.1
Editor: @pjotrp
Reviewer: @ctb
Archive: 10.5281/zenodo.808540

Status

status

Status badge code:

HTML: <a href="http://joss.theoj.org/papers/c17347eae04e7dcfea76715142465b67"><img src="http://joss.theoj.org/papers/c17347eae04e7dcfea76715142465b67/status.svg"></a>
Markdown: [![status](http://joss.theoj.org/papers/c17347eae04e7dcfea76715142465b67/status.svg)](http://joss.theoj.org/papers/c17347eae04e7dcfea76715142465b67)

Reviewers and authors:

Please avoid lengthy details of difficulties in the review thread. Instead, please create a new issue in the target repository and link to those issues (especially acceptance-blockers) in the review thread below. (For completists: if the target issue tracker is also on GitHub, linking the review thread in the issue or vice versa will create corresponding breadcrumb trails in the link target.)

Reviewer questions

Conflict of interest

  • [x] As the reviewer I confirm that there are no conflicts of interest for me to review this work (such as being a major contributor to the software).

General checks

  • [x] Repository: Is the source code for this software available at the repository url?
  • [x] License: Does the repository contain a plain-text LICENSE file with the contents of an OSI approved software license?
  • [x] Version: Does the release version given match the GitHub release (3.0.1)?
  • [x] Authorship: Has the submitting author (@jdidion) made major contributions to the software?

Functionality

  • [x] Installation: Does installation proceed as outlined in the documentation?
  • [x] Functionality: Have the functional claims of the software been confirmed?
  • [x] Performance: Have any performance claims of the software been confirmed?

Documentation

  • [x] A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • [x] Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.
  • [x] Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems).
  • [x] Functionality documentation: Is the core functionality of the software documented to a satisfactory level (e.g. API method documentation)?
  • [x] Automated tests: Are there automated tests or manual steps described so that the function of the software can be verified?
  • [x] Community guidelines: Are there clear guidelines for third parties wishing to 1) Contribute to the software 2) Report issues or problems with the software 3) Seek support

Software paper

  • [x] Authors: Does the paper.md file include a list of authors with their affiliations?
  • [x] A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • [x] References: Do all archival references that should have a DOI list one (e.g. papers, datasets, software)?
accepted published recommend-accept review

All 18 comments

Hello human, I'm @whedon. I'm here to help you with some common editorial tasks for JOSS. @ctb it looks like you're currently assigned as the reviewer for this paper :tada:.

:star: Important :star:

If you haven't already, you should seriously consider unsubscribing from GitHub notifications for this (https://github.com/openjournals/joss-reviews) repository. As as reviewer, you're probably currently watching this repository which means for GitHub's default behaviour you will receive notifications (emails) for all JOSS reviews 😿

To fix this do the following two things:

  1. Set yourself as 'Not watching' https://github.com/openjournals/joss-reviews:

watching

  1. You may also like to change your default settings for this watching repositories in your GitHub profile here: https://github.com/settings/notifications

notifications

For a list of things I can do to help you, just type:

@whedon commands

@jdidion to make life a bit easier for us, can you go through above check list and see if you match the important criteria? Thanks! After confirmation we'll start review.

@pjotrp Yes, it meets all the guidelines.

@ctb please review at your convenience :)

@ctb ping!

on it! slowly... but surely... https://github.com/jdidion/xphyle/issues/9

Is it still not working for you after upgrading to 3.0.2?

it is - just pointing out that I was doing something, albeit slowly...

Very nice - works well for me and I've already adopted the xopen idiom in my own projects! I'm sad that it's Python 3 and above only, as otherwise I'd be able to use it in existing projects.

I left a small pile of issues here but nothing particularly problematic.

The only thing I'm stuck with this whether and how to evaluate performance claims. @jdidion any suggestions on something to benchmark?

Thanks for the speedy review and the kind words! The Python 3 only decision is definitely a selfish one - there are big i/o differences from 2 to 3 that I don’t really want to hassle with. I’m happy to accept contributions from anyone that wants to take on the back port.

Regarding the benchmark - this should be straight-forward. I’ll just dummy up a couple of files (lorem ipsum, fastq), compress them, and then decompress with system-level decompression on versus off.

I’ll take care of this and the rest of the issues this week.

Thanks again,

John

On Jun 13, 2017, at 8:05 PM, C. Titus Brown notifications@github.com wrote:

Very nice - works well for me and I've already adopted the xopen idiom in my own projects! I'm sad that it's Python 3 and above only, as otherwise I'd be able to use it in existing projects.

I left a small pile of issues here https://github.com/jdidion/xphyle/issues/11 but nothing particularly problematic.

The only thing I'm stuck with this whether and how to evaluate performance claims. @jdidion https://github.com/jdidion any suggestions on something to benchmark?

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/openjournals/joss-reviews/issues/255#issuecomment-308282365, or mute the thread https://github.com/notifications/unsubscribe-auth/AAHrnsBS3l2R11JyA1YN-8ml1MOcSFCWks5sDyPUgaJpZM4NQc7I.

Added basic performance testing. I generate two sets of files - one using lorem ipsum, and one by randomly generating sequences in fastq format. I then three separate operations: reading the lines of the file using the python gzip package directly (use_system=None), using xopen with use_system option==False, and with use_system==True. Things run 4-5x faster using system-level compression (on my 2013 Macbook Pro).

Lorem ipsum:
    Timing of 10 Lorem Ipsum tests with total size 232,005,276 characters and
    use_system = None: 2.6 sec

    Timing of 10 Lorem Ipsum tests with total size 232,005,276 characters and
    use_system = True: 0.5 sec

    Timing of 10 Lorem Ipsum tests with total size 232,005,276 characters and
    use_system = False: 2.7 sec

Fastq
    Timing of 10 fastq tests with total size 672,053,460 characters and
    use_system = None: 29.3 sec

    Timing of 10 fastq tests with total size 672,053,460 characters and
    use_system = True: 6.5 sec

    Timing of 10 fastq tests with total size 672,053,460 characters and
    use_system = False: 20.2 sec

Hello @pjotrp I am done with the review - do you need something more formal than "it all looks good!" and all the boxes ticked?

works well, thanks! but pre-Python 3.6, 'random.choices' doesn't exist.

You might consider putting in CI for the earliest version of Python you
want to support ;)

Ah right, thanks. I couldn't find any backports for the random package, so I just copied and adapted the function from the python source (with attribution of course).

@ctb thank you so much for your review! @arfon we are good to R&R

@whedon set 10.5281/zenodo.808540 as archive

OK. 10.5281/zenodo.808540 is the archive.

@ctb many thanks for your review and to @pjotrp for editing this submission ✨

@jdidion - your paper is now accepted into JOSS and your DOI is http://dx.doi.org/10.21105/joss.00255 :zap: :rocket: :boom:

Was this page helpful?
0 / 5 - 0 ratings