|
| 1 | +--- |
| 2 | +title: "R Consortium Report" |
| 3 | +subtitle: "volcalc: Calculate Volatility of Chemical Compounds" |
| 4 | +date: today |
| 5 | +author: |
| 6 | + - name: Kristina Riemer |
| 7 | + orcid: 0000-0003-3802-3331 |
| 8 | + affiliations: |
| 9 | + - ref: cct |
| 10 | + - name: Eric R. Scott |
| 11 | + orcid: 0000-0002-7430-7879 |
| 12 | + affiliations: |
| 13 | + - ref: cct |
| 14 | + - name: Laura Meredith |
| 15 | + orcid: 0000-0003-4244-4366 |
| 16 | + affiliations: |
| 17 | + - ref: snre |
| 18 | + - name: S. Marshall Ledford |
| 19 | + affiliations: |
| 20 | + - ref: snre |
| 21 | + |
| 22 | +affiliations: |
| 23 | + - id: cct |
| 24 | + name: "Communications & Cyber Technologies, University of Arizona" |
| 25 | + - id: snre |
| 26 | + name: "School of Natural Resources and the Environment, University of Arizona" |
| 27 | +format: |
| 28 | + hikmah-pdf: default |
| 29 | + # typst: default |
| 30 | + # pdf: default |
| 31 | +editor: visual |
| 32 | +bibliography: references.bib |
| 33 | +--- |
| 34 | + |
| 35 | +## Summary |
| 36 | + |
| 37 | +This is the final report on the ISC-funded work on the `volcalc` package. |
| 38 | +The GitHub repository for the current version of `volcacl` can be found at: <https://github.com/Meredith-Lab/volcalc>. |
| 39 | +We have completed the proposed milestones 3 and 4 as well as a modified version of our proposed dissemination plan. |
| 40 | + |
| 41 | +## Milestone 3 |
| 42 | + |
| 43 | +`volcalc` now includes two vignettes—one demonstrating downloading .mol files from KEGG, and another showing general usage for calculating estimated volatility. |
| 44 | +A `pkgdown` website including these vignettes is available here: <https://meredith-lab.github.io/volcalc/>. |
| 45 | +The code for `volcalc` has been archived on Zenodo [@riemer2023] and a methods paper has been published in *Frontiers in Microbiology* [@meredith2023]. |
| 46 | +We've submitted `volcalc` to CRAN and it was rejected due to issues that are unfortunately out of our hands—the "License" field in the DESCRIPTION file of a Bioconductor dependency was not CRAN compliant. |
| 47 | +As of today, this issue appears to have been fixed, but now automated checks on Windows are failing because of [issues with the `RCurl` package](https://cran.r-project.org/web/checks/check_results_RCurl.html) and on macOS because of issues [building `ChemmineOB`](https://github.com/girke-lab/ChemmineOB/issues/35). |
| 48 | +When these problems in dependencies are fixed, we may attempt another CRAN submission. |
| 49 | +In the meantime, `volcalc` can be installed from GitHub or [r-universe](https://cct-datascience.r-universe.dev/volcalc). |
| 50 | + |
| 51 | +## Milestone 4 |
| 52 | + |
| 53 | +We added functionality to supply chemical representations as SMILES strings in addition to paths to .mol files. |
| 54 | +We have not (yet) added a vignette about integrating `webchem` and `volcalc` because few `webchem` functions provide results with SMILES strings. |
| 55 | +`ChemmineOB` is able to translate from more commonly returned formats such as InChI, however that feature is not available on Windows, so we are questioning the value of adding this feature to `volcalc`. |
| 56 | + |
| 57 | +## Other improvements |
| 58 | + |
| 59 | +We also added some validation abilities to `volcalc` that are important due to the way `ChemmineOB` and `ChemmineR` interact with the command line program Open Babel. |
| 60 | +When Open Babel encounters errors parsing a .mol file or SMILES string, error messages are displayed on the R console, but cannot be captured and acted on (see discussion in issue [#56](https://github.com/Meredith-Lab/volcalc/issues/56)). |
| 61 | +The workaround we implemented was to include code to look for the "symptoms" of parsing errors—namely a missing value for `InChI` returned by `ChemmineR::propOB()`. |
| 62 | +Unfortunately, this strategy doesn't work on Windows because InChI generation is not available on that OS. |
| 63 | +We implemented this as a `validate` argument to `calc_vol()` and `get_fx_groups()` which defaults to `TRUE` and prints an warning when set to `TRUE` and run on Windows. |
| 64 | + |
| 65 | +## Dissemination |
| 66 | + |
| 67 | +In addition to the *Frontiers in Microbiology* publication, we have shared `volcalc` on social media (Mastodon), in blog posts, in the rOpenSci Slack group, and in talks. |
| 68 | +The package authors have also reached out personally to researchers who may be interested in these calculations. |
| 69 | + |
| 70 | +## Future opportunities |
| 71 | + |
| 72 | +Besides continuing to try to get `volcalc` on CRAN, we have a few open issues that we see as potential improvements to `volcalc` that could be part of future work. |
| 73 | +Because of various difficulties encountered with `ChemmineOB` and `ChemmineR`, we are considering dropping these Bioconductor dependencies and implementing interactions with Open Babel directly in `volcalc`. |
| 74 | +This would potentially lead to a more stable and self-contained package, however it would be a substantial amount of work. |
| 75 | +Similarly, we may consider dropping the `KEGGREST` dependency as it is only used for one function to access the KEGG API, and we've already created other functions in `volcalc` that access different KEGG API endpoints. |
| 76 | + |
| 77 | +In the original SIMPOL.1 method, equations are provided to calculate group contribution coefficients at any temperature [@pankowSIMPOLSimpleGroup2008]. |
| 78 | +As it is implemented currently in `volcalc`, however, volatility is only estimated at a fixed temperature of 20ºC. |
| 79 | +Implementing a variable temperature would not be trivial, but would add a great deal of flexibility for estimating relative volatility at a range of environmental conditions. |
| 80 | + |
| 81 | +We have opened GitHub issues for all of these future improvements and will consider pursuing additional funding for another round of `volcalc` development as the user base grows. |
| 82 | + |
| 83 | +## References |
| 84 | + |
| 85 | +::: refs |
| 86 | +::: |
0 commit comments