Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[REVIEW]: CosmicProfiles: A Python package for radial profiling of finitely sampled dark matter halos and galaxies #5008

Closed
editorialbot opened this issue Dec 13, 2022 · 74 comments
Assignees
Labels
accepted Cython published Papers published in JOSS Python recommend-accept Papers recommended for acceptance in JOSS. review TeX Track: 1 (AASS) Astronomy, Astrophysics, and Space Sciences

Comments

@editorialbot
Copy link
Collaborator

editorialbot commented Dec 13, 2022

Submitting author: @tibordome (Tibor Dome)
Repository: https://github.com/tibordome/cosmic_profiles
Branch with paper.md (empty if default branch): dev
Version: v1.4.0
Editor: @adonath
Reviewers: @benediktdiemer, @phil-mansfield
Archive: 10.5281/zenodo.7934897

Status

status

Status badge code:

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

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) by leaving comments 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 instructions & questions

@benediktdiemer & @phil-mansfield, your review will be checklist based. Each of you will have a separate checklist that you should update when carrying out your review.
First of all you need to run this command in a separate comment to create the checklist:

@editorialbot generate my checklist

The reviewer guidelines are available here: https://joss.readthedocs.io/en/latest/reviewer_guidelines.html. Any questions/concerns please let @adonath know.

Please start on your review when you are able, and be sure to complete your review in the next six weeks, at the very latest

Checklists

📝 Checklist for @benediktdiemer

📝 Checklist for @phil-mansfield

@editorialbot
Copy link
Collaborator Author

Hello humans, I'm @editorialbot, a robot that can help you with some common editorial tasks.

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

@editorialbot commands

For example, to regenerate the paper pdf after making changes in the paper's md or bib files, type:

@editorialbot generate pdf

@editorialbot
Copy link
Collaborator Author

Software report:

github.com/AlDanial/cloc v 1.88  T=0.56 s (157.7 files/s, 333937.5 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
C                                7          11672          54722         108893
Cython                          20            586           3791           2670
Python                          26            521           1471           2551
reStructuredText                21            311            301            470
YAML                             6             18             25            168
Bourne Shell                     3              3              0             92
Markdown                         2             13              0             77
TeX                              1              4              0             75
DOS Batch                        1              8              1             26
make                             1              4              7              9
TOML                             1              0              0              3
-------------------------------------------------------------------------------
SUM:                            89          13140          60318         115034
-------------------------------------------------------------------------------


gitinspector failed to run statistical information for the repository

@editorialbot
Copy link
Collaborator Author

Wordcount for paper.md is 513

@editorialbot
Copy link
Collaborator Author

Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.1111/j.1365-2966.2009.15715.x is OK
- 10.3847/1538-3881/aadae0 is OK
- 10.3847/1538-4365/aaee8c is OK

MISSING DOIs

- None

INVALID DOIs

- None

@editorialbot
Copy link
Collaborator Author

👉📄 Download article proof 📄 View article proof on GitHub 📄 👈

@adonath
Copy link
Member

adonath commented Dec 13, 2022

👋🏼 @tibordome @benediktdiemer @phil-mansfield this is the review thread for the paper. All of our communications will happen here from now on.

As a reviewer, the first step is to create a checklist for your review by entering

@editorialbot generate my checklist

as the top of a new comment in this thread.

These checklists contain the JOSS requirements. As you go over the submission, please check any items that you feel have been satisfied. The first comment in this thread also contains links to the JOSS reviewer guidelines.

The JOSS review is different from most other journals. Our goal is to work with the authors to help them meet our criteria instead of merely passing judgment on the submission. As such, the reviewers are encouraged to submit issues and pull requests on the software repository. When doing so, please mention openjournals/joss-reviews#REVIEW_NUMBER so that a link is created to this thread (and I can keep an eye on what is happening). Please also feel free to comment and ask questions on this thread. In my experience, it is better to post comments/questions/suggestions as you come across them instead of waiting until you've reviewed the entire package.

We aim for reviews to be completed within about 2-4 weeks. Please let me know if any of you require some more time. We can also use EditorialBot (our bot) to set automatic reminders if you know you'll be away for a known period of time.

Please feel free to ping me (@adonath) if you have any questions/concerns.

@benediktdiemer
Copy link

benediktdiemer commented Dec 13, 2022

Review checklist for @benediktdiemer

Conflict of interest

  • I confirm that I have read the JOSS conflict of interest (COI) policy and that: I have no COIs with reviewing this work or that any perceived COIs have been waived by JOSS for the purpose of this review.

Code of Conduct

General checks

  • Repository: Is the source code for this software available at the https://github.com/tibordome/cosmic_profiles?
  • License: Does the repository contain a plain-text LICENSE file with the contents of an OSI approved software license?
  • Contribution and authorship: Has the submitting author (@tibordome) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?
  • Substantial scholarly effort: Does this submission meet the scope eligibility described in the JOSS guidelines
  • Data sharing: If the paper contains original data, data are accessible to the reviewers. If the paper contains no original data, please check this item.
  • Reproducibility: If the paper contains original results, results are entirely reproducible by reviewers. If the paper contains no original results, please check this item.
  • Human and animal research: If the paper contains original data research on humans subjects or animals, does it comply with JOSS's human participants research policy and/or animal research policy? If the paper contains no such data, please check this item.

Functionality

  • Installation: Does installation proceed as outlined in the documentation?
  • Functionality: Have the functional claims of the software been confirmed?
  • Performance: If there are any performance claims of the software, have they been confirmed? (If there are no claims, please check off this item.)

Documentation

  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.
  • Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems).
  • Functionality documentation: Is the core functionality of the software documented to a satisfactory level (e.g., API method documentation)?
  • Automated tests: Are there automated tests or manual steps described so that the functionality of the software can be verified?
  • 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

  • Summary: Has a clear description of the high-level functionality and purpose of the software for a diverse, non-specialist audience been provided?
  • A statement of need: Does the paper have a section titled 'Statement of need' that clearly states what problems the software is designed to solve, who the target audience is, and its relation to other work?
  • State of the field: Do the authors describe how this software compares to other commonly-used packages?
  • Quality of writing: Is the paper well written (i.e., it does not require editing for structure, language, or writing quality)?
  • References: Is the list of references complete, and is everything cited appropriately that should be cited (e.g., papers, datasets, software)? Do references in the text use the proper citation syntax?

@benediktdiemer
Copy link

Just added issue tibordome/cosmic_profiles#1 (cannot build cosmic-profiles on my computer).

@adonath
Copy link
Member

adonath commented Jan 6, 2023

Happy new year everyone! This is just a quick reminder for @benediktdiemer and @phil-mansfield to continue their review.
Usually JOSS aims for a short review phase between 2-4 weeks, so let's try to aim for concluding the review soon.

@tibordome Can you please help resolving the installation issues?

Please also let me know whether there are any open questions or anything else I can help with. Thanks!

@tibordome
Copy link

Happy new year!

@benediktdiemer I have commented on the issue you have raised.

@phil-mansfield
Copy link

Hi all, sorry for dropping off the map for a bit. There were health issues outside my control which prevented me from working for several weeks. Now that this has been cleared up, I look forward to starting up again.

@adonath
Copy link
Member

adonath commented Jan 9, 2023

Thanks @phil-mansfield, good to hear you doing well again!

@adonath
Copy link
Member

adonath commented Jan 19, 2023

@phil-mansfield Please start your review using: @editorialbot generate my checklist

@phil-mansfield
Copy link

phil-mansfield commented Jan 20, 2023

Review checklist for @phil-mansfield

Conflict of interest

  • I confirm that I have read the JOSS conflict of interest (COI) policy and that: I have no COIs with reviewing this work or that any perceived COIs have been waived by JOSS for the purpose of this review.

Code of Conduct

General checks

  • Repository: Is the source code for this software available at the https://github.com/tibordome/cosmic_profiles?
  • License: Does the repository contain a plain-text LICENSE file with the contents of an OSI approved software license?
  • Contribution and authorship: Has the submitting author (@tibordome) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?
  • Substantial scholarly effort: Does this submission meet the scope eligibility described in the JOSS guidelines
  • Data sharing: If the paper contains original data, data are accessible to the reviewers. If the paper contains no original data, please check this item.
  • Reproducibility: If the paper contains original results, results are entirely reproducible by reviewers. If the paper contains no original results, please check this item.
  • Human and animal research: If the paper contains original data research on humans subjects or animals, does it comply with JOSS's human participants research policy and/or animal research policy? If the paper contains no such data, please check this item.

Functionality

  • Installation: Does installation proceed as outlined in the documentation?
  • Functionality: Have the functional claims of the software been confirmed?
  • Performance: If there are any performance claims of the software, have they been confirmed? (If there are no claims, please check off this item.)

Documentation

  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.
  • Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems).
  • Functionality documentation: Is the core functionality of the software documented to a satisfactory level (e.g., API method documentation)?
  • Automated tests: Are there automated tests or manual steps described so that the functionality of the software can be verified?
  • 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

  • Summary: Has a clear description of the high-level functionality and purpose of the software for a diverse, non-specialist audience been provided?
  • A statement of need: Does the paper have a section titled 'Statement of need' that clearly states what problems the software is designed to solve, who the target audience is, and its relation to other work?
  • State of the field: Do the authors describe how this software compares to other commonly-used packages?
  • Quality of writing: Is the paper well written (i.e., it does not require editing for structure, language, or writing quality)?
  • References: Is the list of references complete, and is everything cited appropriately that should be cited (e.g., papers, datasets, software)? Do references in the text use the proper citation syntax?

@adonath
Copy link
Member

adonath commented Feb 7, 2023

Just for the record: there is an unresolved installation issue, which prevents @benediktdiemer to install and run and review the software. @tibordome recommended a solution, which remains to be tested.

@benediktdiemer Please let me know in case you won't be able to proceed with the review any time soon (let's say if you need more > 2 weeks). I think we should make sure to have regular progress in the review process. In order to save time I could also try to look into the installation issue, or maybe find an expert from the JOSS side to help. Thanks!

@benediktdiemer
Copy link

That's right. It's on my to-do list of course, but I've been unusually busy. The proposed solution (sym-linking my system compiler to something else) obviously has the potential to destroy my system if I don't do it right, so I need to take a little time deal with it. I do hope to get to it within the next two weeks.

@benediktdiemer
Copy link

Alright, I've finally had time to take another stab at this -- sorry for the delay. I still cannot install cosmic-profiles on my macbook, even after disabling SIP and changing the /usr/bin/cc link manually. Even though pip uses gcc then (for some reason), it fails (I've checked that gcc can compile OpenMP). I've given up on getting cosmic-profiles to work on a Mac, and instead installed it on a different (unix) server.

I successfully ran some cosmic-profiles routines on the z = 0 snapshot of IllustrisTNG100-3-DM -- it worked more or less right out of the box! In particular, I managed to measure the shapes of the 10 largest halos and plot the shape parameters as well as visualizations, following the instructions in the docs. Unfortunately, I did not manage to run the examples for density profiles. Here, the interface is fairly complex. I got lost/stuck where the documentation says

"The first argument dens_profs_fit is an array of shape containing the density profiles defined at radii r_over_r200_fit, possibly obtained via getDensProfsDirectBinning() or getDensProfsDirectBinning(), with some non-reliable values removed."

The two suggested functions are the same, but they are not documented, and it is not clear how "non-reliable" values should be removed (or what they are). It would be much better to provide a fully worked set of commands that the user can test, and/or complete the documentation. By looking at the example script, I realized that the r_over_r200 array can just be generated with np.logspace or whatever.

Finally, I tried executing the "Gadget HDF5 Example" script. I could mostly run it, but it still fails on the density profiles part (meaning I still couldn't quite verify the density profiles functionality). I list some of the issues below. I have started confirming most items in the checklist above. Here is a list of issues that I'd like to see addressed before confirming the rest of the checks:

Issues (code):

  • Complete documentation/example for density profiles
  • DensShapeProfsHDF5() runs without error even when paths don't exist
  • Visualization routines like plotShapeProfs() work, but the VIZ_DEST parameter needs documentation (I figured it out)
  • Why does the user need to give the box size?
  • In the example script, I had to change it from attempting to run over half the halos it finds to 20; otherwise the code crashes quickly (on a moderate machine, depending on the simulation)
  • The script should automatically create the cat and viz dirs (otherwise errors occur)
  • With that, the code still crashes on:
638	s: Starting fitDensProfs() with snap 099
best_fits = cprofiles.fitDensProfs(dens_profs[:,25:], ROverR200[25:], method = 'nfw', select = halos_select)
OSError: [Errno 12] Cannot allocate memory
(abbreviated)

NB this machine has 192 GB memory or so... not sure why this crashes. My suggestion is to try and design a minimal example script that can be run with reasonable resources (as long as the halos aren't too large).

Issues (paper/docs):

  • In the Statement of Need, it would be good to more clearly distinguish between codes that extract density profiles from simulations and those that do fitting. I appreciate the reference to Colossus, but the text makes it sound as though it falls into the former category, when it only does the latter (for the record, I use SPARTA to extract profiles, but I'm not sure how relevant that is here).
  • I wasn't sure whether there are any automated tests, as required by the checklist above?

Suggestions for the future:

  • It is a little limiting that the code supports only Gadget/Arepo hdf5 and Subfind. For example, I have a lot of Gadget2 simulations (not in hdf5 format) and Rockstar catalogs. Obviously, adding more codes is a major effort, and I'm not sure to what extent generality is a goal here. But I think investing into a generalized interface such as cosmic-profiles makes sense only if it can be applied to a wide range of simulations.

@adonath
Copy link
Member

adonath commented Mar 7, 2023

Thanks a lot @benediktdiemer for the thorough review!

I wasn't sure whether there are any automated tests, as required by the checklist above?

I think tests are located here: https://github.com/tibordome/cosmic_profiles/tree/master/cosmic_profiles/tests

@benediktdiemer
Copy link

Ah I missed that, just clicked the corresponding checkmark

@tibordome
Copy link

@benediktdiemer many thanks for your very helpful comments and suggestions!

I'll implement / address them as quickly as I can.

@tibordome
Copy link

tibordome commented Apr 15, 2023

I should have addressed all comments / suggestions in version 1.3.1.

  • updated docs
    • density profile documentation
    • VIZ_DEST documentation
    • distinguish between density profile extraction and fitting algorithms
  • create cat and viz directories automatically
  • box size read off from Gadget I, II or HDF5 file rather than having to be provided
  • less RAM-heavy
    • it could be traced back to inefficient storing of particle index catalogue in a 2D array which had a lot of redundant zeros since not all objects (halos) have the same size
    • now I have a 1D index catalogue, and the object sizes provide the relevant offsets in the array
  • automated tests improved using parametrized tests (in pytest)
  • made compatible with Gadget-style I, II and HDF5 files
    • The snapshot reading functionalities are in parts based on Francisco Villaescusa-Navarro's open-source Pylians package, which I have acknowledged in the paper docs
  • I started working on Rockstar compatibility, but the .list files have no particle indices (of the halos) as far as I can tell, so I wasn’t sure how to construct the particle index catalogue. I know there are particle files for AHF, for instance. In any case, it would take more effort to make CosmicProfiles compatible with Rockstar, AHF etc.

@adonath A built wheel (.whl file) is provided for each version of the package on the pypi index, in addition to the source code (tar.gz file)

@benediktdiemer
Copy link

Thanks for making these changes @tibordome ! I updated my version and it all looks good now. I'm satisfied as far as this review goes.

@adonath
Copy link
Member

adonath commented Apr 15, 2023

Thanks a lot @tibordome for the update! This seems like multiple considerable improvements to the package. Proving wheel should also resolve the installation issues!

Thanks a lot @benediktdiemer for you persistency and finishing the review!

@phil-mansfield please take some time in the coming week and finish your review as well.

Once both reviews are finished I might submit some final comments from my side on the paper text. But I'm positive we can finally finish the review soon!

@adonath
Copy link
Member

adonath commented May 15, 2023

@editorialbot set v1.4.0 as version

@editorialbot
Copy link
Collaborator Author

Done! version is now v1.4.0

@adonath
Copy link
Member

adonath commented May 15, 2023

@editorialbot set 10.5281/zenodo.7934897 as archive

@editorialbot
Copy link
Collaborator Author

Done! archive is now 10.5281/zenodo.7934897

@adonath
Copy link
Member

adonath commented May 15, 2023

@editorialbot recommend-accept

@editorialbot
Copy link
Collaborator Author

Attempting dry run of processing paper acceptance...

@editorialbot
Copy link
Collaborator Author

Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

OK DOIs

- 10.1111/j.1365-2966.2009.15715.x is OK
- 10.1093/mnras/stac3766 is OK
- 10.3847/1538-3881/aadae0 is OK
- 10.3847/1538-4365/aaee8c is OK
- 10.1093/mnras/stac878 is OK

MISSING DOIs

- None

INVALID DOIs

- None

@editorialbot
Copy link
Collaborator Author

👋 @openjournals/aass-eics, this paper is ready to be accepted and published.

Check final proof 👉📄 Download article

If the paper PDF and the deposit XML files look good in openjournals/joss-papers#4228, then you can now move forward with accepting the submission by compiling again with the command @editorialbot accept

@editorialbot editorialbot added the recommend-accept Papers recommended for acceptance in JOSS. label May 15, 2023
@dfm
Copy link

dfm commented May 15, 2023

@tibordome — I'm doing the final processing of this submission. Can you update the metadata on the Zenodo record (there should be an "Edit" button the record page if you're logged in) so that the title and author list exactly match the paper? Then it looks like we're all set!

Edit: Whoops! I meant @tibordome not @phil-mansfield - sorry!!

@phil-mansfield
Copy link

(was just about to clarify, ha ha)

@tibordome
Copy link

@dfm I have updated the metadata. The title and author list should now match exactly

@dfm
Copy link

dfm commented May 16, 2023

@editorialbot accept

@editorialbot
Copy link
Collaborator Author

Doing it live! Attempting automated processing of paper acceptance...

@editorialbot
Copy link
Collaborator Author

Ensure proper citation by uploading a plain text CITATION.cff file to the default branch of your repository.

If using GitHub, a Cite this repository menu will appear in the About section, containing both APA and BibTeX formats. When exported to Zotero using a browser plugin, Zotero will automatically create an entry using the information contained in the .cff file.

You can copy the contents for your CITATION.cff file here:

CITATION.cff

cff-version: "1.2.0"
authors:
- family-names: Dome
  given-names: Tibor
  orcid: "https://orcid.org/0000-0003-2586-3702"
doi: 10.5281/zenodo.7934897
message: If you use this software, please cite our article in the
  Journal of Open Source Software.
preferred-citation:
  authors:
  - family-names: Dome
    given-names: Tibor
    orcid: "https://orcid.org/0000-0003-2586-3702"
  date-published: 2023-05-16
  doi: 10.21105/joss.05008
  issn: 2475-9066
  issue: 85
  journal: Journal of Open Source Software
  publisher:
    name: Open Journals
  start: 5008
  title: "CosmicProfiles: A Python package for radial profiling of
    finitely sampled dark matter halos and galaxies"
  type: article
  url: "https://joss.theoj.org/papers/10.21105/joss.05008"
  volume: 8
title: "CosmicProfiles: A Python package for radial profiling of
  finitely sampled dark matter halos and galaxies"

If the repository is not hosted on GitHub, a .cff file can still be uploaded to set your preferred citation. Users will be able to manually copy and paste the citation.

Find more information on .cff files here and here.

@editorialbot
Copy link
Collaborator Author

🐦🐦🐦 👉 Tweet for this paper 👈 🐦🐦🐦

@editorialbot
Copy link
Collaborator Author

🐘🐘🐘 👉 Toot for this paper 👈 🐘🐘🐘

@editorialbot
Copy link
Collaborator Author

🚨🚨🚨 THIS IS NOT A DRILL, YOU HAVE JUST ACCEPTED A PAPER INTO JOSS! 🚨🚨🚨

Here's what you must now do:

  1. Check final PDF and Crossref metadata that was deposited 👉 Creating pull request for 10.21105.joss.05008 joss-papers#4234
  2. Wait a couple of minutes, then verify that the paper DOI resolves https://doi.org/10.21105/joss.05008
  3. If everything looks good, then close this review issue.
  4. Party like you just published a paper! 🎉🌈🦄💃👻🤘

Any issues? Notify your editorial technical team...

@editorialbot editorialbot added accepted published Papers published in JOSS labels May 16, 2023
@dfm
Copy link

dfm commented May 16, 2023

Many thanks to @benediktdiemer and @phil-mansfield for reviewing and to @adonath for editing! JOSS relies upon the volunteer effort of people like you and we simply wouldn't be able to do this without you!!

@tibordome — Your paper is now accepted and published in JOSS! ⚡🚀💥

@dfm dfm closed this as completed May 16, 2023
@editorialbot
Copy link
Collaborator Author

🎉🎉🎉 Congratulations on your paper acceptance! 🎉🎉🎉

If you would like to include a link to your paper from your README use the following code snippets:

Markdown:
[![DOI](https://joss.theoj.org/papers/10.21105/joss.05008/status.svg)](https://doi.org/10.21105/joss.05008)

HTML:
<a style="border-width:0" href="https://doi.org/10.21105/joss.05008">
  <img src="https://joss.theoj.org/papers/10.21105/joss.05008/status.svg" alt="DOI badge" >
</a>

reStructuredText:
.. image:: https://joss.theoj.org/papers/10.21105/joss.05008/status.svg
   :target: https://doi.org/10.21105/joss.05008

This is how it will look in your documentation:

DOI

We need your help!

The Journal of Open Source Software is a community-run journal and relies upon volunteer effort. If you'd like to support us please consider doing either one (or both) of the the following:

@adonath
Copy link
Member

adonath commented May 16, 2023

Congratulations @tibordome!

@tibordome
Copy link

Many thanks. Thank you @adonath for editing and @benediktdiemer and @phil-mansfield for the fantastic reviews!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
accepted Cython published Papers published in JOSS Python recommend-accept Papers recommended for acceptance in JOSS. review TeX Track: 1 (AASS) Astronomy, Astrophysics, and Space Sciences
Projects
None yet
Development

No branches or pull requests

6 participants