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]: pymatgen-analysis-defects: A Python package for analyzing point defects in crystalline materials #5941

Closed
editorialbot opened this issue Oct 11, 2023 · 55 comments
Assignees
Labels
accepted Makefile published Papers published in JOSS Python recommend-accept Papers recommended for acceptance in JOSS. review TeX Track: 3 (PE) Physics and Engineering

Comments

@editorialbot
Copy link
Collaborator

editorialbot commented Oct 11, 2023

Submitting author: @jmmshn (Jimmy-Xuan Shen)
Repository: https://github.com/materialsproject/pymatgen-analysis-defects
Branch with paper.md (empty if default branch):
Version: 2024.1.12
Editor: @rkurchin
Reviewers: @ireaml, @atimmins7
Archive: 10.5281/zenodo.6994437

Status

status

Status badge code:

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

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

@ireaml & @atimmins7, 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 @rkurchin 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 @ireaml

📝 Checklist for @atimmins7

@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=1.37 s (46.0 files/s, 313748.9 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
XML                              8              0              0         417507
Python                          26           1201           2005           4528
TeX                              2             62              0            884
Jupyter Notebook                10              0           1815            451
JSON                             2              0              0            379
YAML                             7             41             35            285
Markdown                         3             39              0            115
TOML                             1             19              0             90
reStructuredText                 2             27             22             57
SVG                              1              0              1             16
make                             1              3              0              8
-------------------------------------------------------------------------------
SUM:                            63           1392           3878         424320
-------------------------------------------------------------------------------


gitinspector failed to run statistical information for the repository

@editorialbot
Copy link
Collaborator Author

Wordcount for paper.md is 1051

@editorialbot
Copy link
Collaborator Author

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

OK DOIs

- 10.1016/j.cpc.2021.108056 is OK
- 10.1021/acs.jpcc.8b00918 is OK
- 10.1021/ic4013922 is OK
- 10.1039/B901825E is OK
- 10.1103/PhysRevB.70.235121 is OK
- 10.1021/acs.accounts.7b00487 is OK
- 10.1002/aenm.201800379 is OK
- 10.1016/j.commatsci.2014.10.037 is OK
- 10.1063/1.4812323 is OK
- 10.1016/S0167-2738(96)83001-3 is OK
- 10.1016/0025-5408(80)90012-4 is OK
- 10.7567/jjaps.19s3.305 is OK
- 10.1038/35104644 is OK
- 10.1038/nenergy.2016.71 is OK
- 10.1166/mex.2012.1075 is OK
- 10.1016/j.jpowsour.2012.02.038 is OK
- 10.1126/sciadv.aas9820 is OK
- 10.1149/1.3515880 is OK
- 10.1038/npjcompumats.2016.2 is OK
- 10.1103/PhysRevB.82.075122 is OK
- 10.1002/adma.201000717 is OK
- 10.1021/cr020731c is OK
- 10.1016/0022-3697(58)90175-6 is OK
- 10.1149/2.0951410jes is OK
- 10.1016/j.jpowsour.2012.10.085 is OK
- 10.1006/jssc.1996.0186 is OK
- 10.1016/S0167-2738(98)00143-X is OK
- 10.1107/s0108768103010450 is OK
- 10.1006/jssc.1994.1337 is OK
- 10.1107/S010876810402316X is OK
- 10.1063/1.4960790 is OK
- 10.1039/C9EE02457C is OK
- 10.1126/science.283.5398.44 is OK
- 10.1103/PhysRevLett.72.1124 is OK
- 10.1002/batt.201900152 is OK
- 10.1007/978-3-319-48933-9_11 is OK
- 10.1142/9789812839664_0016 is OK
- 10.1038/s41524-020-00422-3 is OK
- 10.1021/acsenergylett.6b00145 is OK
- 10.1021/cm100422z is OK
- 10.1021/acs.chemmater.5b02342 is OK
- 10.1021/acsenergylett.0c01663 is OK
- 10.1016/j.jpowsour.2008.07.092 is OK
- 10.1039/C8CC02386G is OK
- 10.1103/PhysRevMaterials.2.065405 is OK
- 10.1038/s41597-022-01746-z is OK
- 10.1103/PhysRev.136.B864 is OK
- 10.1103/PhysRev.140.A1133 is OK
- 10.1016/j.commatsci.2012.10.028 is OK
- 10.1016/j.commatsci.2017.07.030 is OK
- 10.1201/b11819 is OK
- 10.1016/j.cpc.2018.01.004 is OK
- 10.1103/PhysRevMaterials.5.123803 is OK
- 10.1088/1674-4926/43/4/042101 is OK
- 10.1038/s41524-017-0014-2 is OK
- 10.1103/PhysRevLett.102.016402 is OK
- 10.1039/C6CP00415F is OK
- 10.1103/PhysRevB.87.184115 is OK
- 10.1103/PhysRevB.54.11169 is OK
- 10.1021/ci00038a003 is OK
- 10.1038/s41597-020-00638-4 is OK
- 10.1038/s41524-017-0014-2 is OK
- 10.1103/PhysRevB.99.205202 is OK
- 10.1038/s41524-023-00973-1 is OK
- 10.1103/PhysRevB.102.085305 is OK
- 10.1063/1.4964831 is OK

MISSING DOIs

- None

INVALID DOIs

- None

@editorialbot
Copy link
Collaborator Author

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

@rkurchin
Copy link

Reminder to reviewers @ireaml and @atimmins7 to get your reviews started when you have a chance! If you have any questions about the process, (read the first comment in this issue and then) don't hesitate to ask! Also note that you should feel free to file issues (or even PR's) in the project repo as you work on your review; please link to this issue for easy tracking if you do so. Thanks!

@rkurchin
Copy link

rkurchin commented Nov 2, 2023

Checking in again with @ireaml and @atimmins7 – hoping you can start reviews soon!

@ireaml
Copy link

ireaml commented Nov 8, 2023

Review checklist for @ireaml

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/materialsproject/pymatgen-analysis-defects?
  • 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 (@jmmshn) 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?

@atimmins7
Copy link

atimmins7 commented Nov 8, 2023

Review checklist for @atimmins7

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/materialsproject/pymatgen-analysis-defects?
  • 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 (@jmmshn) 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?

@ireaml
Copy link

ireaml commented Nov 13, 2023

Hi @rkurchin, I've finished my review. This is a very high-quality code, with a strong motivation, easy to use and very well documented. It will be very useful for the defect community and I would be very happy to recommend publication in JOSS.

For the author, @jmmshn, these are my suggestions:

Regarding the paper

Line 10: Ref 2 doesn’t display correctly. Further, it would be good to also cite the other existing packages that have been developed to pre- or post-process defect calculations, including:

- Arrigoni, M., & Madsen, G. K. H. Spinney: Post-processing of first-principles calculations of point defects in semiconductors with Python. Computer Physics Communications, 264, 107946 (https://doi.org/10.1016/j.cpc.2021.107946)
- Broberg, D., Medasani, B., Zimmermann, N. E. R., Yu, G., Canning, A., Haranczyk, M., Asta, M., & Hautier, G. PyCDT: A Python toolkit for modeling point defects in semiconductors and insulators. Computer Physics Communications, 226, 165–179. (https://doi.org/10.1016/j.cpc.2018.01.004)
- Goyal, A., Gorai, P., Peng, H., Lany, S., & Stevanovi’c, V. (2017). A computational framework for automation of point defect calculations. Computational Materials Science, 130, 1–9. (https://doi.org/10.1016/j.commatsci.2016.12.040)  
- Muy, S., Johnston, C. & Marzari, N. AiiDA-defects: an automated and fully reproducible workflow for the complete characterization of defect chemistry in functional materials. Electron. Struct., 5, 024009
- Kavanagh, S. R., Walsh, A. & Scanlon, D. O.. Defect Oriented Python Environment Distribution (DOPED), https://github.com/SMTG-Bham/doped

Minor typos:

Line 16: “most users of a defect analysis packages” -> “most users of defect analysis packages”
Line 44: “define a point defects” -> “define point defects”
Line 60: Figure 1 appears twice in its caption (“Figure 1: Figure 1. Defect generation.”)
Line 70: “has to potential to save” -> has the potential to save
Line 74: A focus of the present packages is -> A focus of the present package is
Line 75: Would suggest rewording the sentence below to split in two. “This is important since the overwhelming majority of users of the defect analysis software will not need to run thousands of defect calculations so time invested in learning a high-throughput workflow framework only worthwhile for true high-throughput studies.”
Line 78: “these package” -> “this package”

Regarding the docs

  1. For the tutorial on Shockley-Read-Hall Recombination, would be good to mention that the package approach assumes the harmonic approximation, and that this can be a bad approximation for many defects that undergo strong lattice relaxations, including:
    • Si substitution on a Ga site in GaAs. This study describes the issues with the harmonic approximation for defects that undergo strong reconstructions - might be a good example to mention in the Shockley-Read-Hall Recombination tutorial as an example of the limitations of the harmonic approximation.
    • The Cadmium vacancy and Tellurium interstitial in CdTe
    • The iodine interstitial in CH3NH3PbI3
      Accordingly, would be useful to reference the users to CarrierCapture as a package that can describe anharmonic PES's.
  2. Would suggest to include community guidelines in the README/docs to inform users on how to contribute to the code/report issues.
  3. Think it might be useful for the users if the API section includes links to the source code (so that users can quickly see what type the function inputs are etc)

Small typos:

  1. In https://materialsproject.github.io/pymatgen-analysis-defects/content/defining-defects.html#defining-defect-complexes blow -> below.
  2. In https://materialsproject.github.io/pymatgen-analysis-defects/content/nonradiative.html#evaluating-the-electron-phonon-matrix-element-with-paws :
    • "The coupling between of the atomic displacements" -> "The coupling between the atomic displacements".
    • "Note the the initial" -> "Note the initial"
    • "This expression above can be calculated VASP version 6" -> "This expression above can be calculated with VASP version 6"
  3. In https://materialsproject.github.io/pymatgen-analysis-defects/content/photo-conduct.html#photo-conductivity
    • “and a allowed users to control” -> “and allowed users to control”
  4. https://materialsproject.github.io/pymatgen-analysis-defects/content/formation-energy.html#getting-the-elemental-chemical-potentials
    • "free variables that indicates" -> "free variables that indicate"
    • "Here since the defect must for in GaN" -> "Here since the defect must form in GaN"
  5. In https://materialsproject.github.io/pymatgen-analysis-defects/content/formation-energy.html#finite-size-corrections, the last cell showing the plots for the planar-averaged potentials doesn't display
  6. In https://materialsproject.github.io/pymatgen-analysis-defects/content/freysoldt-correction.html#freysoldt-correction “The results from sxdefectalign is show on the right column.” -> “The results from sxdefectalign are shown on the right column.”

Overall, really excellent! :)

@rkurchin
Copy link

rkurchin commented Dec 4, 2023

(noting that I've pinged @atimmins7 separately about his review; I know he has started working on it!)

@atimmins7
Copy link

@rkurchin @jmmshn - The pymatgen-analysis-defects package is well explained by the document, the provided tutorial clearly demonstrates high-level functionality, and the code is clear and easy to follow. As a note, a number of the features rely heavily on VASP, which I do not use or have access to. As a result, I have relied on the example files in the tutorial to validate that functionality is as stated. Where possible, I used Quantum Espresso to test package functionality.

Some typos have already been highlighted and have not been repeated here. The notes below are minor, mostly about improving phrasing or code comments to improve clarity.

Paper

Minor citation error in line 10, "Huang et al. (2022),"

Documentation

I did not see reference to community guidelines as defined the rubric.

Tutorial

Quickstart

  1. Details clear, functions work as expected with provided examples

Defining Defects

  1. Details clear, functions work as expected with provided examples
  2. The caveats/notes provided are helpful to understand possible limits of the I*implementation
  3. Additional tests worked as expected.

Defect Finder

  1. Small typo in the explanation of the first code block: "The last for q=3 demonstrates". However, the last iteration occurs at q=2.
  2. The logic is well explained, and the provided tutorial works as expected.
  3. Defect Finder worked correctly with additional examples

Shockley-Read-Hall Recombination

  1. The definition of 'Q' as a configuration coordinate is explained in the provided paper, but is not explained in the tutorial. This was initially slightly confusing and it may be helpful to clarify what it represents.
  2. The code worked as expected and the notes about the process were clear.

Photo Conductivity

  1. Small type in first paragraph: "and a allowed users" -> "and allowed users"
  2. Functionality is clearly explained and tutorial works as expected.

Formation Energy Diagrams

  1. Getting the elemental chemical potentials. It would be more accurate to specify that the numbers listed for the chemical potential vertices are the vertices of the change in chemical potential with respect to the bulk state.
  2. The last section of "Formation Energy Diagrams" is Finite-Size Corrections. In the section, there is an explanation of how to plot the FNV correction, but the documentation includes an error, "DefectEntry' object has no attribute 'correction_metadata". It is unclear why this error is included in the documentation and what change needs to be done to get the code to operate as expected
  3. Perhaps this latter section should briefly explain the correction and then point to the dedicated tutorial page for the FNV correction

Freysoldt Correction

  1. It may be helpful for 'comparison_plots' to include some labeling of the charge (q = -1,0,1,2) and code (pymatgen-analysis-defects vs. sxdefectalign) for the provided plots
  2. Functionality is clearly explained and tutorial works as expected

Code Review

The code is clear and well documented. It was possible to interpret the purpose of each class/function from the code itself and the included comments. So minor fixes have been included to improve the clarity of the logic.

Some internal functions do not have explanations. This may be intentional. However in case it was a mistake, any missing explanations have been noted below.

ccd.py

  1. Code clear and well documented.
  2. Function 'from_vaspruns' (lines 143-152) - the 'spin_index' index is not listed in the explained arguments
  3. Function 'from_vaspruns' (lines 143-152) - the 'band_window' index is not listed in the explained arguments
  4. Function '_get_ediff': the argument 'band_structure' is listed as an argument, but isn't an argument

core.py

  1. Function 'symmetrized_structure' (line 312) - Explanation of function appears to be for get_multiplicity function
  2. Function Substitution > init () - Comments do not reference kwargs
  3. Function Interstitial > init () - Comments do not reference equivalent_sites or kwargs
  4. Function '_set_selective_dynamics' (line 890) - No explanation/comments for function
  5. Function 'center_structure' (line 968) - No explanation of arguments
  6. Function '_get_el_changes_from_structures' (line 981) - explanation and actual code differ on the object returned (string vs dictionary)
  7. Function '_get_defect_name' (line 1015) - Explanation of function references different function arguments

finder.py

  1. Function 'get_site_vecs' (line 236) - No explanation of arguments
  2. Function 'cosine_similarity' (line 245) - No explanation of arguments
  3. Function '_get_broundary' (line 277) - No explanation of arguments

generators.py

  1. Function '_space_group_analyzer' (line 35) - no explanation of arguments
  2. Function 'get_defects' (line 49) - no explanation of arguments
  3. Function InterstitialGenerator > 'generate' (line 246-249) - No explanation of the equivalent_positions argument
  4. Class ChargeInterstitialGenerator (line 397) - No explanation of max_insertions

recombination.py

  1. Function 'fact' (line 29) - No explanation of arguments
  2. Function 'herm' (line 39) - No explanation of arguments
  3. Function 'get_mn' (line 171) - No explanation of dQ

supercells.py

  1. Function '_ase_cubic' (line 125) - Does not include explanation of function or arguments

thermo.py

  1. Class DefectEntry - No reference in the explanation to the 'entry_id' attribute
  2. Function FormationEnergyDiagram > with_atomic_entries (line 283) - Explanation references band_gap/inc_inf_values, but not in function definition
  3. Function FormationEnergyDiagram > get_transitions (line 517) - Explanation does not include x_min or x_max
  4. Function FormationEnergyDiagram > get_formation_energy (line 545) - Explanation does not include chempot_dict
  5. Function MultiFormationEnergyDiagram>with_atomic_entries (line 667) - No explanation of arguments
  6. Function fermi_dirac (line 1005) - No explanation of arguments
  7. Function plot_formation_energy_diagrams (line 1015) - The arguments 'legend_loc' and 'show_legend' not listed in explanation
  8. Function _get_line_color_and_style (line 1220) - No explanation of arguments

utils.py

  1. Function eV_to_k (line 121) - typo in argument explanation, should be 'energy'
  2. Function converge (line 195) - No explanation of arguments
  3. Function get_local_extrema (line 267) - Explanation does not include chgcar
  4. Function remove_collisions (line 302) - Explanation does not include 'structure'
  5. Function get_ipr_in_window (line 839) - 'k_index' not an allowed argument. Function argument 'band_window' does not mention the argument mentioned in comment, 'band_range'
  6. Function get_labeled_inserted_structure (line 942) - explanation does not reference the 'sm' StructureMatcher argument
  7. Function _group_docs_by_structure (line 1003) - Function has argument 'get_structure', but explanation says 'get_hash'

Corrections > freystoldt.py

  1. Function get_freysoldt_correction (line 41) - Explanation does not mention argument 'lattice'
  2. Function perform_pot_corr (line 243) - Difference between function argument and comment argument (defect_frac_coords vs defect_frac_position), explanation does not mention 'dielectric', 'q_model', or 'mad_tol'

Plotting > optics.py

  1. Function get_bs_eigenvalues (line 115) - Explanation does not reference 'other_defect_bands' or 'shift_eig'
  2. Function _plot_eigs (line 170) - No explanation of arguments
  3. Function _get_dataframe (line 284) - No explanation of arguments
  4. Plotting > phases.py
  5. Function _convex_hull_2d (line 77) - argument 'tol' is never used

@jmmshn
Copy link

jmmshn commented Dec 9, 2023

Thank you @atimmins7 @ireaml and @rkurchin, I will go over all the suggestions carefully and incorporate the changes.

@jmmshn
Copy link

jmmshn commented Dec 14, 2023

Hi @atimmins7 @ireaml and @rkurchin,
Thanks again for the feedback!
Some of my linting and notebook testing were not optimally configured.
I have fixed the issues identified above and put things in place to catch similar problems in the future.
The repo is ready to be examined again!
Thanks!

@atimmins7
Copy link

Well noted! Thank you for letting me know.

@jmmshn @rkurchin - I have reviewed the changes and only noticed a few small aesthetic typos. As a result, I support final publication and have updated my checklist accordingly. Although these are not blocking items, the following typos might be fixed to improve clarity.

  1. In the paper's first paragraph, the citation ", (Huang et al. 2022,)" leaves the comma after 2022 inside the parentheses and "(Kavanagh et al. 2023 )however" includes the space after 2023 inside the parentheses.
  2. In the 'Defect Finder' tutorial, there is a reference to charge state q = 3: "The last for q=3 demonstrates". However, this line appears to be referencing the last iteration of the loop above, which occurs at q=2.

@rkurchin
Copy link

rkurchin commented Jan 2, 2024

Thanks reviewers, and thanks @jmmshn for your updates! @ireaml, whenever you have a chance to take another look, please do, and let us know if there's anything else stopping you from finishing off your checklist.

@ireaml
Copy link

ireaml commented Jan 10, 2024

Sorry for the delay. The changes look good! I've updated my checklist accordingly and am happy to support publishing.

Although not a blocking issue, I would suggest updating https://materialsproject.github.io/pymatgen-analysis-defects/content/nonradiative.html#potential-energy-surface to specify that this assumes the harmonic approximation, with maybe:

Under the harmonic approximation, the potential energy surface of the defect in a particular charge state is given by:

@rkurchin
Copy link

rkurchin commented Jan 11, 2024

Post-Review Checklist for Editor and Authors

Additional Author Tasks After Review is Complete

  • Double check authors and affiliations (including ORCIDs)
  • Make a release of the software with the latest changes from the review and post the version number here. This is the version that will be used in the JOSS paper.
  • Archive the release on Zenodo/figshare/etc and post the DOI here.
  • Make sure that the title and author list (including ORCIDs) in the archive match those in the JOSS paper.
  • Make sure that the license listed for the archive is the same as the software license.

Editor Tasks Prior to Acceptance

  • Read the text of the paper and offer comments/corrections (as either a list or a PR)
  • Check the references in the paper for corrections (e.g. capitalization)
  • Check that the archive title, author list, version tag, and the license are correct
  • Set archive DOI with @editorialbot set <DOI here> as archive
  • Set version with @editorialbot set <version here> as version
  • Double check rendering of paper with @editorialbot generate pdf
  • Specifically check the references with @editorialbot check references and ask author(s) to update as needed
  • Recommend acceptance with @editorialbot recommend-accept

@rkurchin
Copy link

Thanks again to reviewers @ireaml and @atimmins7 for your work on this! @jmmshn, please send me the information requested in the checklist above via comment here and I'll send any editorial comments on the manuscript itself shortly. We're getting close to finished! :)

@jmmshn
Copy link

jmmshn commented Jan 12, 2024

OK, I updated the title on the archive.

@rkurchin
Copy link

Can you also update the author list to match?

@jmmshn
Copy link

jmmshn commented Jan 12, 2024

Done

@rkurchin
Copy link

@editorialbot set 10.5281/zenodo.6994437 as archive

@editorialbot
Copy link
Collaborator Author

Done! archive is now 10.5281/zenodo.6994437

@openjournals openjournals deleted a comment from editorialbot Jan 15, 2024
@rkurchin
Copy link

@editorialbot set 2024.1.12 as version

@editorialbot
Copy link
Collaborator Author

Done! version is now 2024.1.12

@rkurchin
Copy link

@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.1016/j.cpc.2021.108056 is OK
- 10.1021/acs.jpcc.8b00918 is OK
- 10.1021/ic4013922 is OK
- 10.1039/B901825E is OK
- 10.1103/PhysRevB.70.235121 is OK
- 10.1021/acs.accounts.7b00487 is OK
- 10.1002/aenm.201800379 is OK
- 10.1016/j.commatsci.2014.10.037 is OK
- 10.1063/1.4812323 is OK
- 10.1016/S0167-2738(96)83001-3 is OK
- 10.1016/0025-5408(80)90012-4 is OK
- 10.7567/jjaps.19s3.305 is OK
- 10.1038/35104644 is OK
- 10.1038/nenergy.2016.71 is OK
- 10.1166/mex.2012.1075 is OK
- 10.1016/j.jpowsour.2012.02.038 is OK
- 10.1126/sciadv.aas9820 is OK
- 10.1149/1.3515880 is OK
- 10.1038/npjcompumats.2016.2 is OK
- 10.1103/PhysRevB.82.075122 is OK
- 10.1002/adma.201000717 is OK
- 10.1021/cr020731c is OK
- 10.1016/0022-3697(58)90175-6 is OK
- 10.1149/2.0951410jes is OK
- 10.1016/j.jpowsour.2012.10.085 is OK
- 10.1006/jssc.1996.0186 is OK
- 10.1016/S0167-2738(98)00143-X is OK
- 10.1107/s0108768103010450 is OK
- 10.1006/jssc.1994.1337 is OK
- 10.1107/S010876810402316X is OK
- 10.1063/1.4960790 is OK
- 10.1039/C9EE02457C is OK
- 10.1126/science.283.5398.44 is OK
- 10.1103/PhysRevLett.72.1124 is OK
- 10.1002/batt.201900152 is OK
- 10.1007/978-3-319-48933-9_11 is OK
- 10.1142/9789812839664_0016 is OK
- 10.1038/s41524-020-00422-3 is OK
- 10.1021/acsenergylett.6b00145 is OK
- 10.1021/cm100422z is OK
- 10.1021/acs.chemmater.5b02342 is OK
- 10.1021/acsenergylett.0c01663 is OK
- 10.1016/j.jpowsour.2008.07.092 is OK
- 10.1039/C8CC02386G is OK
- 10.1103/PhysRevMaterials.2.065405 is OK
- 10.1038/s41597-022-01746-z is OK
- 10.1103/PhysRev.136.B864 is OK
- 10.1103/PhysRev.140.A1133 is OK
- 10.1016/j.commatsci.2012.10.028 is OK
- 10.1016/j.commatsci.2017.07.030 is OK
- 10.1201/b11819 is OK
- 10.1016/j.cpc.2018.01.004 is OK
- 10.1103/PhysRevMaterials.5.123803 is OK
- 10.1088/1674-4926/43/4/042101 is OK
- 10.1038/s41524-017-0014-2 is OK
- 10.1103/PhysRevLett.102.016402 is OK
- 10.1039/C6CP00415F is OK
- 10.1103/PhysRevB.87.184115 is OK
- 10.1103/PhysRevB.54.11169 is OK
- 10.1021/ci00038a003 is OK
- 10.1038/s41597-020-00638-4 is OK
- 10.1038/s41524-017-0014-2 is OK
- 10.1103/PhysRevB.99.205202 is OK
- 10.1038/s41524-023-00973-1 is OK
- 10.1103/PhysRevB.102.085305 is OK
- 10.1063/1.4964831 is OK
- 10.1016/j.cpc.2021.107946 is OK
- 10.1016/j.commatsci.2016.12.040 is OK

MISSING DOIs

- None

INVALID DOIs

- None

@editorialbot
Copy link
Collaborator Author

👋 @openjournals/pe-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#4911, 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 Jan 15, 2024
@kyleniemeyer
Copy link

Hi @jmmshn, I made some minor edits to the paper in materialsproject/pymatgen-analysis-defects#169, can you review and merge that?

Also, please add the DOI 10.1103/RevModPhys.86.253 to reference Freysoldt et al.

@kyleniemeyer
Copy link

@editorialbot generate pdf

@editorialbot
Copy link
Collaborator Author

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

@jmmshn
Copy link

jmmshn commented Jan 19, 2024

sorry I did push the change to the DOI.
Just did in the new commit.

@kyleniemeyer
Copy link

@editorialbot generate pdf

@editorialbot
Copy link
Collaborator Author

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

@kyleniemeyer
Copy link

Thanks @jmmshn, this looks good to publish now.

@kyleniemeyer
Copy link

@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: Shen
  given-names: Jimmy-Xuan
  orcid: "https://orcid.org/0000-0002-2743-7531"
- family-names: Varley
  given-names: Joel
  orcid: "https://orcid.org/0000-0002-5384-5248"
doi: 10.5281/zenodo.6994437
message: If you use this software, please cite our article in the
  Journal of Open Source Software.
preferred-citation:
  authors:
  - family-names: Shen
    given-names: Jimmy-Xuan
    orcid: "https://orcid.org/0000-0002-2743-7531"
  - family-names: Varley
    given-names: Joel
    orcid: "https://orcid.org/0000-0002-5384-5248"
  date-published: 2024-01-19
  doi: 10.21105/joss.05941
  issn: 2475-9066
  issue: 93
  journal: Journal of Open Source Software
  publisher:
    name: Open Journals
  start: 5941
  title: "pymatgen-analysis-defects: A Python package for analyzing
    point defects in crystalline materials"
  type: article
  url: "https://joss.theoj.org/papers/10.21105/joss.05941"
  volume: 9
title: "pymatgen-analysis-defects: A Python package for analyzing point
  defects in crystalline materials"

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

🐘🐘🐘 👉 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.05941 joss-papers#4932
  2. Wait five minutes, then verify that the paper DOI resolves https://doi.org/10.21105/joss.05941
  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 Jan 19, 2024
@kyleniemeyer
Copy link

Congratulations @jmmshn on your article's publication in JOSS! Please consider signing up as a reviewer if you haven't already.

Many thanks to @ireaml and @atimmins7 for reviewing this, and @rkurchin for editing.

@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.05941/status.svg)](https://doi.org/10.21105/joss.05941)

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

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

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:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
accepted Makefile published Papers published in JOSS Python recommend-accept Papers recommended for acceptance in JOSS. review TeX Track: 3 (PE) Physics and Engineering
Projects
None yet
Development

No branches or pull requests

6 participants