Giter VIP home page Giter VIP logo

Comments (34)

krother avatar krother commented on July 20, 2024 1

Yes, I have seen a lot improving, and in my opinion the review process has worked well. I just checked the examples in the documentation and ticked the two remaining boxes in 'Documentation'. I agree with your suggestion to move forward to accept.

from joss-reviews.

arfon avatar arfon commented on July 20, 2024

/ cc @openjournals/joss-reviewers - would anyone be willing to review this submission?

If you would like to review this submission then please comment on this thread so that others know you're doing a review (so as not to duplicate effort). Something as simple as :hand: I am reviewing this will suffice.

Reviewer instructions

  • Please work through the checklist at the start of this issue.
  • If you need any further guidance/clarification take a look at the reviewer guidelines here http://joss.theoj.org/about#reviewer_guidelines
  • Please make a publication recommendation at the end of your review

Any questions, please ask for help by commenting on this issue! 🚀

from joss-reviews.

krother avatar krother commented on July 20, 2024

I am reviewing this

from joss-reviews.

krother avatar krother commented on July 20, 2024

This is how software papers I like to read should look like!
I have a number of small suggestions:

  • 1st par: "experimental data" could be fleshed out in 2-3 words for the biologist reader (is it SNPs, microarray data, NGS, Y2H or manually counted individuals?)
  • 2nd par: "can be found in ___ guix-bioinformatics", please insert 'the article', 'the package', 'the lab fridge labeled'.. whichever is aproppriate ;-)
  • last par: "Python" is spelled with a capital 'P'
  • REST API looks like a very good idea.

from joss-reviews.

pjotrp avatar pjotrp commented on July 20, 2024

Thanks @krother for reviewing this very complex project! We'll clarify the text.

Also @agarie promised to review. Do we need a second reviewer?

from joss-reviews.

krother avatar krother commented on July 20, 2024

Not necessarily. I think a few of the points above (contribution, mini-summary) could be spelled out in the README.

Apart from that, I'm looking forward to see the software in action. At the moment, I'm trying to install guix (binary tarball is 404, Github issue pending).

from joss-reviews.

pjotrp avatar pjotrp commented on July 20, 2024

We can support you on the #genenetwork IRC channel (irc.freenode.net - there is a web interface) if you like. Guix binary reproducible installs can be a bit daunting the first time because there are quite a few newish concepts.

from joss-reviews.

agarie avatar agarie commented on July 20, 2024

Ooops, sorry for not posting before, I'm reviewing this.

  • You could add a CONTRIBUTING.md file, as explained in Setting guidelines for repository contributors. Specifically, what are your requirements re: testing and documentation?
  • How do I run the tests?
  • As @krother said, these points could be added to the README.
  • I think you could move that huge IRC log to another file inside doc/ and leave some highlights or brief quotes in the installation docs.

I read the installation instructions on doc/README.org, but I'm on a MacBook right now. I'll try to install GN2 on my linux desktop at home tonight and report back my impressions and suggestions about the process.

from joss-reviews.

pjotrp avatar pjotrp commented on July 20, 2024

@krother I have addressed these in the following commits:

1st par: "experimental data" could be fleshed out in 2-3 words for the biologist reader (is it SNPs, microarray data, NGS, Y2H or manually counted individuals?)

genenetwork/genenetwork2@e241d27

2nd par: "can be found in ___ guix-bioinformatics", please insert 'the article', 'the package', 'the lab fridge labeled'.. whichever is aproppriate ;-)

genenetwork/genenetwork2@9669b09

last par: "Python" is spelled with a capital 'P'

genenetwork/genenetwork2@3788a3a

REST API looks like a very good idea.

Yes, the code is being developed in this repo: https://github.com/genenetwork/gn_server

from joss-reviews.

pjotrp avatar pjotrp commented on July 20, 2024

@krother, @agarie I think I addressed most JOSS requirements by updating the README with:
genenetwork/genenetwork2@e3fc8d1

That includes a statement of work, contact and how to contribute. We do not prescribe guidelines for coding standards etc. Maybe that will come in the future.

Note: the testing framework is new and still limited in scope and @Brainiarc7 is working on that. We want to achieve full coverage in the coming month(s).

Note: the user level documentation is mostly from GN1 days. We need to update them for GN2, this is a slow work in process. Meanwhile the GN1 docs are still usable.

Note: Example use of GN can be found in the many publications by users mentioning GN on pubmed and Google Scholar. We never had a publication on the software itself that did justice to the work of the contributing developers.

from joss-reviews.

krother avatar krother commented on July 20, 2024

I find the README.md much more informative now. Thanks!

from joss-reviews.

pjotrp avatar pjotrp commented on July 20, 2024

@krother and @agarie: when it comes to installation, GN2 installation reflects that it is a rather complex product with a huge number of dependencies. It includes a recent R with packages. It includes Python with packages. It includes C++ modules. It will include OpenCL dependencies soon. Even so, GNU Guix provides a reliable byte-identical installation path with source and binary deployment.

If GN2 was part of the GNU Guix project proper it would simply be one command:

guix package -i genenetwork2

and all software would be installed on any Linux.

Unfortunately genenetwork2 will never make it into GNU Guix. This is because some software components are dated (one python package had the last update in the 90s!) and we include large data files.

Guix, however, allows you to pull in your own packages using a GUIX_PACKAGE_PATH, so we created a git repo for that named https://github.com/genenetwork/guix-bioinformatics/tree/gn-latest (the gn-latest branch is the one we deploy).

Additionally, to ascertain byte-identical deployment we also have to fixate the GNU Guix package tree itself. This is done in yet another git repository named https://github.com/genenetwork/guix/tree/gn-latest (again the gn-latest branch).

To run these trees, after instaling GNU Guix itself, some environment variables need to be set properly
and the test database has to be added to whatever mysql daemon is running.

This is all described in the installation docs as a step-by-step instruction, but I am just giving the overview here to explain why it is non-trivial at this point. Even so it is a formal deployment path and we and others have successfully installed GN2 and are happily developing against it. We include the IRC log to show it is doable - I would like to keep it there until we have a single install command. To achieve the latter we are working with the GNU Guix project to make installation easier.

I am not sure the reviewers want to go through the full installation (the website also runs online), but if you do, please tell me where you are stuck and we will resolve it. It is also an opportunity for me to improve the docs ;). One thing you may gain in this process: GNU Guix is a great way of deploying bioinformatics software!

To make things easier we could deploy GN2 inside a Docker container, but we don't think that is the right way of going about deployment. Docker containers are opaque and a security risk.

from joss-reviews.

agarie avatar agarie commented on July 20, 2024

The improved README is good!

I tried to build everything but couldn't download the tarball for AnnotationDbi. After reading that IRC log, the best way to install GN2 is apparently to download the substitutes from http://guix.genenetwork.org:8080, right? Given the complexity of the software, I'm fine with needing a bit of help during installation, but if you could put a public key on the docs ("gpg add this key to use substitute-urls for a binary installation"), that'd be great.

I navigated through the live site in order to experiment with the platform and I think both functionality and performance are OK. The documentation and the other checks are also OK. I would say that the API-level docs are sparse, but the software is meant to be used on a browser, not as a library. Even then, this documentation can come in handy for new contributors and anyone experiencing problems (or just being curious), but this is mostly a suggestion for the coming months, not a necessary revision for acceptance.

The JOSS reviewer guidelines explicitly say that reviewers are expected to be able to install the software. If my understanding of guix is correct, I expect to be able to install GN2 after I get a key for the caching server (guix archive --authorize, right?); can you send that key to me? :)

from joss-reviews.

pjotrp avatar pjotrp commented on July 20, 2024

@agarie, thanks, building from source can fail when upstream package maintainers remove a tar source ball. In Guix recently infrastructure was added to cache source tar balls too - so this will soon be a thing from the past.

The use of our binary caching guix server makes installation a lot easier and faster - because you don't have to build everything. This is a limited guix server since it only contains GN2 related binaries. The public key to trust this http://guix.genenetwork.org:8080 server is:

(public-key
 (ecc
  (curve Ed25519)
  (q #11217788B41ADC8D5B8E71BD87EF699C65312EC387752899FE9C888856F5C769#)
  )
 )

I'll add the access key for our caching server to the docs.

On the API: we are building up the API as a new Elixir based REST service with https://github.com/genenetwork/gn_server. Documentation will be generated from both the API and the included unit tests. There exists an old REST API which is documented at http://www.genenetwork.org/CGIDoc.html, but we want to discourage the use of that. We are adding documentation, in particular on database layout etc. to help people get started.

from joss-reviews.

agarie avatar agarie commented on July 20, 2024

I got genenetwork2 working on my own machine, using the test database (linked from here), so the installation instructions are correct. :)

With that out of the way, @arfon, my recommendation is for acceptance.

from joss-reviews.

pjotrp avatar pjotrp commented on July 20, 2024

Thanks @agarie! I am really glad you succeeded because there are quite a few steps. Not surprising for a web framework with a host of dependencies. Even so, I think I can turn it into a cookbook approach - line by line.

During the installation, what were the hurdles? So we can focus on those and improve the documentation. The obvious one is the use of the Guix key for the binary caching server.

I realise the Guix installation is a bit involved. With time it should get better because GNU Guix is getting better. Now we are using git checkouts to fixate the dependency graph. This is something that can be handled transparently in the future.

@krother do you want have a go this week? I, myself, have time to help. To get GN installed it may take half an hour up to two hours of your time (if we hit an unexpected snag, such as a proxy server).

from joss-reviews.

agarie avatar agarie commented on July 20, 2024

Yeah, the key was the biggest problem — this was my first time trying out guix, but the documentation explaining how to setup guix, your notes, and the installation instructions from genenetwork2 did the job. Not that it was easy, but it's definitely doable... maybe an installation "from scratch" beginning with a quick guix install + setup? Or at least links to a tutorial with just that?

from joss-reviews.

krother avatar krother commented on July 20, 2024

Yes I'd like to give it a try as well.

from joss-reviews.

pjotrp avatar pjotrp commented on July 20, 2024

@krother I wrote a 'quick installation recipe' which does not require building the software.

See https://github.com/pjotrp/genenetwork2/tree/paper/doc#quick-installation-recipe

Only alternative I can think of is a binary tarball or a Docker image. But I don't think that is in the spirit of JOSS.

from joss-reviews.

pjotrp avatar pjotrp commented on July 20, 2024

BTW we also have a plant database available now (3GB). I should add that to the paper.

from joss-reviews.

pjotrp avatar pjotrp commented on July 20, 2024

The GTK+ fix in the recipe is actually a known bug in Guix: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=21888. Mentioned workaround does fix it.

from joss-reviews.

pjotrp avatar pjotrp commented on July 20, 2024

To get an idea of the complexity of GN2, see the graph of dependencies at http://biobeat.org/gn2.svg. I added the graph to the README.

from joss-reviews.

pjotrp avatar pjotrp commented on July 20, 2024

@krother I updated the docs and reran the installation with success in a fresh and basic Debian VM. If you follow the instructions it takes a few minutes of keyboard actions (copy-paste only). Please try
https://github.com/genenetwork/genenetwork2/tree/master/doc#quick-installation-recipe

Downloading the software takes an hour on my 5 Mbs connection. Mind, the download activity is mesmerizing, so you may spend more time looking at the scrollling screen than is considered healthy ;).

from joss-reviews.

krother avatar krother commented on July 20, 2024

Hi, I have to report that I am stuck with the installation of guix (got a 'unknown locale' at step 7). Given the amount of operations on root level, I am also concerned about the health of my system. Is it possible to install the whole thing in some kind of sandbox?
I don't want to block the review process - what are our options?

from joss-reviews.

pjotrp avatar pjotrp commented on July 20, 2024

@krother you can ignore the locale error. It is just a warning and harmless.

Your system is safe because guix itself and its packages are installed in /gnu/store - which is isolated from the rest of your system. A database is installed in /var/guix and an access key in /etc/acl. Nothing else gets installed.

One of the great things about guix is that it runs on top of any existing Linux system.

Even so, if you prefer, you can install in a VM, such as KVM or VirtualBox. We do that all the time.

I would suggest to continue where you are now. If you come on IRC we can help you. Use https://webchat.freenode.net/ and use the #genenetwork channel. You can use any nick name. We are there.

from joss-reviews.

roelj avatar roelj commented on July 20, 2024

If I may jump in..

@krother:
Your system is safe. The only thing Guix does, is install things to /gnu/store and to /var/guix/. By default, commands you type are looked for in directories specified by a PATH variable. Guix creates a system on top of a system, so to use programs installed with Guix, you have to add an entry to the PATH variable. Removing it, and removing /gnu/store and /var/guix brings you back to the original state of your system.

The locale error is not a problem actually. Some special characters may not display in the output of programs, which does not hinder the actual programs (it's only an output-to-shell problem). You could fix that by updating the LANG and LC_ALL environment variables after installing locales with Guix (Guix programs are self-contained).

I am also in the #genenetwork channel on freenode.net, available to help you there.

from joss-reviews.

krother avatar krother commented on July 20, 2024

Thanks for the quick reply. I'll try VirtualBox .. have been looking for an excuse to try that for some time :-)

from joss-reviews.

pjotrp avatar pjotrp commented on July 20, 2024

In general a wise idea when installing and testing software from other parties, though you are safe with Guix. If you get stuck I'll try to document those VirtualBox steps too.

from joss-reviews.

arfon avatar arfon commented on July 20, 2024

Hi @krother, given that this installation seems to be causing significant trouble for you and that @agarie has managed to install the application already I'm happy to stop here if that makes things easier?

Also, I would note that the submitting authors have gone to significant lengths to improve installation documentation

If you agree, we can (I believe) move forward to accept.

from joss-reviews.

arfon avatar arfon commented on July 20, 2024

Yes, I have seen a lot improving, and in my opinion the review process has worked well. I just checked the examples in the documentation and ticked the two remaining boxes in 'Documentation'. I agree with your suggestion to move forward to accept.

👍 thanks @krother.

@pjotrp - do you want to make a new Zenodo release with your changes or has this already been done?

from joss-reviews.

pjotrp avatar pjotrp commented on July 20, 2024

@krother thanks!

@arfon no changes in the release - we only added to the documentation to clarify the installation process. Happy to go public on the current Zenodo doi.

from joss-reviews.

arfon avatar arfon commented on July 20, 2024

👍 thanks for the review @krother & @agarie.

@pjotrp - your DOI is http://dx.doi.org/10.21105/joss.00025 🚀 💥

from joss-reviews.

pjotrp avatar pjotrp commented on July 20, 2024

@arfon thanks for the great journal! In the paper there is a typo in Prof. Wiliams' name and I amended a URL to point to the master branch. Can you fix that, please?

See genenetwork/genenetwork2@75c7a08

from joss-reviews.

arfon avatar arfon commented on July 20, 2024

Sure thing. That should be fixed now.

from joss-reviews.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.