-
-
Notifications
You must be signed in to change notification settings - Fork 104
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
submission - treestartr #239
Comments
thanks for your submission @wrightaprilm ! Doing editor checks right now. On trying to install I get ➜ treeStartR git:(master) Rscript -e 'library(devtools); document(); install()'
Updating treestartr documentation
Loading treestartr
Error: 'ants' is not an exported object from 'namespace:treestartr' can you fix? then i'll continue with editor checks |
I misunderstood some stuff about data packaging. But I think it's working now! |
Quick question - a user noted a (both run time and unit) test I should add for their use case, and I have added it. Should I push that now, or wait? |
Yes, go ahead! Let me know when that's pushed |
Alright, pushed. |
thanks!, will have another look |
Editor checks:
Editor commentsThanks for your submission @wrightaprilm ! Here's the output from goodpractice. If you haven't used ── GP treestartr ─────────
It is good practice to
✖ write unit tests for all functions, and all package code in general. 76% of code lines are covered by test cases.
R/absent_tippR.R:15:NA
R/absent_tippR.R:16:NA
R/absent_tippR.R:19:NA
R/absent_tippR.R:21:NA
R/absent_tippR.R:22:NA
... and 28 more lines
✖ avoid long code lines, it is bad for readability. Also, many people prefer editor windows that are about 80 characters wide. Try make your lines
shorter than 80 characters
R/taxon_testr.R:11:1
R/tree_df.R:20:1
✖ avoid sapply(), it is not type safe. It might return a vector, or a list, depending on the input data. Consider using vapply() instead.
R/make_absent_df.R:14:23
R/tree_df.R:24:21
✖ not import packages as a whole, as this can cause name clashes between the imported packages. Instead, import only the specific functions you need.
✖ fix this R CMD check NOTE: absent_tippr: no visible global function definition for ‘plot’ dataf_parsr: no visible global function definition for
‘read.csv’ test_dataf: no visible global function definition for ‘assert_that’ Undefined global functions or variables: assert_that plot read.csv Consider
adding importFrom("graphics", "plot") importFrom("utils", "read.csv") to your NAMESPACE file.
✖ fix this R CMD check WARNING: Undocumented code objects: ‘absent_list’ ‘absent_tippr’ ‘dataf_parsr’ ‘genera_strippr’ ‘mrca_df’ ‘present_tippr’
‘rand_absent_tippr’ ‘text_placr’ ‘tree’ Undocumented data sets: ‘absent_list’ ‘mrca_df’ ‘tree’ All user-level objects in a package should have documentation
entries. See chapter ‘Writing R documentation files’ in the ‘Writing R Extensions’ manual.
✖ fix this R CMD check WARNING: Data with usage in documentation object 'ants' but not in code: ants Seeking reviewers now 🕐 Reviewers:
|
Reviewers:
|
@dwbapst @rachelwarnock Will you be able to get your review in soon? We're about 2 weeks past due date. Thanks! |
Sorry, Scott, I sent you some emails a few weeks ago, which I later got
weird bounces back from - they were about what a review looks like. I've
got a heap of QA issues, but not sure what format I should put these into,
or what level of code analysis you want me to do?
-Dave
…On Wed, Sep 12, 2018 at 2:30 PM Scott Chamberlain ***@***.***> wrote:
@dwbapst <https://github.com/dwbapst> @rachelwarnock
<https://github.com/rachelwarnock> Will you be able to get your review in
soon? We're about 2 weeks past due date. Thanks!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#239 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABfVL1X1ENDBW9RtK_ZdZDPSsQJxTqFSks5uaWDzgaJpZM4Vbw08>
.
--
David W. Bapst, PhD
Asst Research Professor, Geology & Geophysics, Texas A & M University
Postdoc, Ecology & Evolutionary Biology, Univ of Tenn Knoxville
https://github.com/dwbapst/paleotree
|
Can you send that email again to myrmecocystus@gmail.com |
No problem - I'm sorry that I didn't investigate after the bounces,
but I think they came just as classes were beginning...
-Dave
…On Wed, Sep 12, 2018 at 2:34 PM Scott Chamberlain ***@***.***> wrote:
Can you send that email again to ***@***.***
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
--
David W. Bapst, PhD
Asst Research Professor, Geology & Geophysics, Texas A & M University
Postdoc, Ecology & Evolutionary Biology, Univ of Tenn Knoxville
https://github.com/dwbapst/paleotree
|
Hi Scott,
I’m so sorry about the delay. I’ll try to wrap my comments & review up by
the end of next week.
Best wishes,
Rachel
…On Wed, 12 Sep 2018 at 21:30, Scott Chamberlain ***@***.***> wrote:
@dwbapst <https://github.com/dwbapst> @rachelwarnock
<https://github.com/rachelwarnock> Will you be able to get your review in
soon? We're about 2 weeks past due date. Thanks!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#239 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ACYzn0kgE644kHXESp5K7_d0rdAOjIVAks5uaWDzgaJpZM4Vbw08>
.
--
Rachel.Warnock@gmail.com
|
Hi, I feel the same as Rachel. I'm new to rOpenSci reviewing and it just came at a bad time when I was teaching two graduate classes. In order to force myself to work on this, I'm going to work the draft live here in the issue thread. Package Review
DocumentationThe package includes all the following forms of documentation:
Functionality
Actually... I am beginning to wonder if there is something broken with my local installation of Anyway, this led me to running a local R CHECK --as-CRAN, where, oddly, the tests pass. It did produce some warnings (only one of which Scott notes above, that I'd like to comment on how to fix, as you indicate you would like to publish this on CRAN.
These should be added to your .Rbuildignore file.
CRAN policy increasingly wants us, when we use functions readily available in packages included in a base installation (but not in the
Obviously these need to be covered. I think they are objects in the
You need an example that makes use of the ant data - I don't usually get this warning, but my interpretation is that CRAN doesn't like packages with example datasets that aren't used - there was an issue a few years ago of people using CRAN as basically a repository for datasets for classes/textbooks, which isn't its intended use (and meant very large packages, size-wise, with almost no code base).
Final approval (post-review)
Estimated hours spent reviewing: Review Comments
So here's some random comments from playing with the package. First, I strongly making a manual page named treeStartR or with that alias so that users who cannot remember a function name but can remember the package name can quickly access the documentation. This page also serves as a good starting point for users interested in the package, and you could put a lot of information from your readme there, such as directing them to the vignette.
This function expects a The manual page for this function refers to 'morphological & stratigraphic genera'. Its not clear to what the distinction is between these.
The function More messages:
What are these number codes? Are they node numbers 25 and 30? I'd clarify the message to the console, or clarify the documentation, or both. Another message, this time a warning:
I would suggest suppressing this expected, non-informative warning from More useful information to report to the user, perhaps, would be the number of OTUs added and the number of OTUs not added, perhaps also giving user a taxon list of the still-absent OTUs, to use with the other taxon-placing methods. Also, if only a single congener is on the tree, the the species gets added, but to the root node:
We can compare the two trees with:
I don't this this behavior is desired, and even if it is (sometimes) desired in certain use-cases, it should be described in the manual and perhaps toggle-able with an argument.
It is not immediately clear when you use this function that the prompt is asking for me to type in the number of the node, rather than interactively click on the plot (as in some ape and phytools functions). You may want to clarify the prompt to users so they know they need to enter the number.
In the above code example, apparently you cannot make two species sister to each other, You can only place them in a polytomy together with a third taxon. This seems like it might be an unintentional design oversight. If only a single relative is listed with
...And then the taxon gets added to the root node, bizarrely. Nothing in the documentation about more than one relative needing to be specified, or of what the algorithm's behavior is when only a single relative is specified. Again, this means you cannot make add a taxon as sister to another taxon, and it seems undesirable for users. I tried generating an example dataset to see what happened.
In the above, |
thanks @dwbapst |
@rachelwarnock okay, if it will be longer than that please let me know so I can get someone else |
Okay @sckott @wrightaprilm I think my review is as complete as its going to be for now. |
Thanks for that, @dwbapst. Really helpful stuff here (and thankfully all addressable)! @sckott, presumably I wait for @rwarnock, in case any of her review conflicts with Dave's. But after her's comes in, it looks like in the review guidelines, I can just start work on revision without waiting on an "Editor decision" in the way of a more traditional journal? [If I'm wrong about the above, I'm certainly happy to contribute different wording to policies.html] |
@wrightaprilm correct, let's wait for @rachelwarnock , then do revisions. correct, you don't need to wait for an editor decision |
Package Review
DocumentationThe package includes all the following forms of documentation:
Functionality
Final approval (post-review)
Estimated hours spent reviewing: Review CommentsComments based on the READMELove the logo! The main functionality of the package could be stated earlier on in the README. Its not until the end of third paragraph that you learn the main purpose of the package. You could include a sentence at the beginning, saying something like, "This package produces starting trees incorporating fossils for phylogenetic analysis", before jumping into your nice intro. Or the title of the README could be "treeStartR: generating starting trees for phylogenetic analysis". The package depends on the package phytools, but since you use the Its useful to have the function names within text using the markdown coding format, i.e. I don't think you need to use With the bears dataset, the With Unclear what the source of this warning message means: I suppose this has something to do with the fact that the functions are returning trees with no branch lengths. This suggests that the fossil ages are not being taken into account. Will this not be important for generating starting trees for fbd/tip-dating analyses? The manual option is tricky for trees even as large as the example dataset. For example, on my small laptop screen, some of the branching events are too close for me to be able to distinguish the node labels (i.e. many are plotted on top of each other). Not sure if there's anything you can do about this though. Where it says TSV file, do you mean CSV? or CSV/TSV Perhaps it would be useful to have an example, where multiple options are used to add taxa to the tree. Comments based on the help pages
I think it would be useful to have more complete examples in the documentation. e.g. for
That way, if the user wanted to use this function, they would know which other function help pages to refer to get all the info necessary to generate input. On a related note, I initially found the relationship between the package functions hard to get my head around, while just scrolling through the help pages. I produced the following for reference.
Perhaps you could consider including a similar flow chart or table in the README. Definitely not necessary, esp. if you included more start-to-finish examples, so its just a thought! Comments based on the codeMy comments on the code are extremely minor. The functions all appear to be concise and the more complicated functions are nicely commented. I can't see any obvious room for improvement in terms of efficiency or redundancy, apart from one small thing noted below. I'm not sure each function needs to be in a separate file (i.e. related functions could potentially live in the same file) but this is down to programmer's preference and since the package isn't massive it doesn't really matter.
Other commentsNote that running I simulated a dataset to explore the functions a bit more. Everything seems to work well but I noted the following:
If the functions could return time scaled starting trees that respect the fossil ages I think this would be extremely useful. If I had to pick a favourite function it would be Note, I didn't look at Dave's review before writing this, but I can see some overlap. Hope this helps! |
Nice work @wrightaprilm I see a few more things:
There's some remaining issues from my comment above #239 (comment) Did you see it yet? |
|
I'd recommend running check with cran set to
In your vignette you're using rmarkdown - you need to add that pkg to your Suggests |
Hi Scott, I don't get that same error you were getting when I run that check. My output is below. I did edit some documentation, and fix a DESCRIPTION error, and change a behavior after a student ran into a problem. Undergrads are the best testers besides maybe @dwbapst ;). Let me know if you still get the same thing. I don't have anything that is modified and not pushed in my workspace. Thanks! |
Actually, I absolutely try to think and act like an undergrad when I
test scientific software. So I'm proud to rate that comparison!
Cheers,
-Dave
…On Fri, Nov 2, 2018 at 2:09 PM April Wright ***@***.***> wrote:
Hi Scott, I don't get that same error you were getting when I run that check. My output is below.
I did edit some documentation, and fix a DESCRIPTION error, and change a behavior after a student ran into a problem. Undergrads are the best testers besides maybe @dwbapst ;).
Let me know if you still get the same thing. I don't have anything that is modified and not pushed in my workspace.
Thanks!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
--
David W. Bapst, PhD
Asst Research Professor, Geology & Geophysics, Texas A & M University
Postdoc, Ecology & Evolutionary Biology, Univ of Tenn Knoxville
https://github.com/dwbapst/paleotree
|
@wrightaprilm looking good now! I see that |
Hmm. I should explain the background of my comment. So, I don't think
there's anything non-preferable about a phylogenetics package in R
depending on `ape` - in my experience, it is rare that any
phylogenetics-loaded package would be loaded without ape, and users
might often need to use the utilities in ape (and possibly, phytools)
while using a phylogenetics package. Of course, this shouldn't be a
crutch for laziness with regards to specifying functions from other
packages, though: even if you use Depends, it is still preferable to
specify ape::plot.phylo in internal code, for example.
I understand this perspective is in contrast to current best-practices
recommendations from Hadley and some other authorities, their
recommendation being that nothing nothing should ever be depended.
Obviously, a package author should make the best choice for their
package, and their programming style!
-Dave
…On Wed, Nov 7, 2018 at 8:06 PM Scott Chamberlain ***@***.***> wrote:
@wrightaprilm looking good now!
I see that phytools and ape have moved into Depends. I see @dwbapst comment above about this. it seems like you can just import the s3 methods, like @importFrom ape plot.phylo, etc. or is there some reason that doesn't work. Depends surely fixes this, but is it really necessary?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
--
David W. Bapst, PhD
Asst Research Professor, Geology & Geophysics, Texas A & M University
Postdoc, Ecology & Evolutionary Biology, Univ of Tenn Knoxville
https://github.com/dwbapst/paleotree
|
I'm going to lean hard into the real answer on this one: I misunderstood how imports had to be done with respect to the test suite. I do some reading of nexus files in the test suite, so I load ape in the tests. I assumed that meant it had to be a depend; it turns out that wasn't right. I well and truly have no feelings on this point, so I switched to @importFrom for the S3 methods. |
Given the arguments, I can go either way, so if you think Depends is easier go for it. or Imports. @dwbapst and @rachelwarnock are you both happy with the changes @wrightaprilm has made ? |
@dwbapst and @rachelwarnock are you both happy with the changes @wrightaprilm has made ? |
Yes, I'm happy. Apologies, I was away at a week-long conference at the time
of your message, and I am only digging myself out now from the blizzard of
emails. @rachelwarnock might have been similarly delayed by the same
conference, as she was also attending, and has intercontinental travel to
boot.
…On Wed, Nov 14, 2018 at 11:19 AM Scott Chamberlain ***@***.***> wrote:
@dwbapst <https://github.com/dwbapst> and @rachelwarnock
<https://github.com/rachelwarnock> are you both happy with the changes
@wrightaprilm <https://github.com/wrightaprilm> has made ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#239 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABfVL8WVEW-H97p-21isPBMaxvVtY3-xks5uvFCZgaJpZM4Vbw08>
.
--
David W. Bapst, PhD
Asst Research Professor, Geology & Geophysics, Texas A & M University
Postdoc, Ecology & Evolutionary Biology, Univ of Tenn Knoxville
https://github.com/dwbapst/paleotree
|
thanks @dwbapst |
Hi @scott Chamberlain <scott@ropensci.org> - apologies for this delay! I'm
very happy with all the changes @wrightaprilm
<https://github.com/wrightaprilm> made!
…On Wed, 14 Nov 2018 at 21:20, Scott Chamberlain ***@***.***> wrote:
thanks @dwbapst <https://github.com/dwbapst>
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#239 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ACYzn4MuNJKBTkqHnC2S1Bd55QwBP3uUks5uvHsXgaJpZM4Vbw08>
.
--
Rachel.Warnock@gmail.com
|
thanks @rachelwarnock |
Approved! Thanks again for your submission @wrightaprilm ! To-dos:
We've started putting together a bookdown with our best practice and tips, this chapter starts the 3d section that's about guidance for after onboarding. Please tell us what could be improved. The repo is at https://github.com/ropensci/dev_guide Are you interested in doing a blog post for our blog https://ropensci.org/blog/ ? either a short-form intro to it (https://ropensci.org/technotes/) or long-form post with more narrative about its development (https://ropensci.org/blog/). If so, we'll have our community manager @stefaniebutland get in touch with you on that |
Hurray! I'll take care of the TODO over the next couple days. I would definitely be interested in a blog post - I found this process really helpful and well-organized. I think there's a lot of value to the community even for people who aren't "developers", or whatever, and I'd like to express that in some form. |
Hi @wrightaprilm.
That sentiment reflects part of our mission "Building capacity of software users and developers and fostering a sense of pride in their work" so will be very welcome in your post! This link will give you many examples of blog posts by authors of onboarded packages so you can get an idea of the style and length you prefer. Here are some technical and editorial guidelines for contributing a blog post: https://github.com/ropensci/roweb2#contributing-a-blog-post. We ask that you submit your draft post via pull request a week before the planned publication date so we can give you some feedback. Happy to answer any questions. |
Oh, yeah, I'm giving a final that week, so I'll definitely be down to procrastinate with a blog post;) |
Real quick question - planning on putting some work in on this this afternoon. I had a Code of Conduct statement - Am I now covered under y'all's code of conduct? Should I edit my statement to reflect that ROpen Sci would now be in a reporting structure? Thanks! I've never done something like this before. |
We do have a COC for our events and any communications in our forums/slack/etc., BUT for repos, each repo should have their own COC file - which then also shows up on the right hand side of an issue when someone opens an issue. I'd suggest changing the file name to |
Sorry to belabor the point - I have this sort of thing on my mind a bit lately. If someone were to feel that I was the source of unwelcoming behavior on the repository, would they be able to report it to y'all? I found the CoC site, but I didn't see an email on it for someone to make a report at. Thx! |
thanks @wrightaprilm - will get back to you asap |
@wrightaprilm we have an email address now -> https://ropensci.org/coc/ and yes, they could report it to us and vice versa |
Great, thanks. I transferred the repo, updated the CI badges in the READMEs, updated them in the website directory, and updated my Code of Conduct. |
Summary
What does this package do? (explain in 50 words or less):
This package helps users to build a reasonable starting phylogeny for phylogenetic analysis.
In particular, this package allows researchers to add tips to a tree through either a graphical
user interface, an automated system based on taxonomy, or by inputting a dataframe of taxa to
be placed.
Paste the full DESCRIPTION file inside a code block below:
URL for the package (the development repository, not a stylized html page):
https://github.com/wrightaprilm/treeStartR
Please indicate which category or categories from our package fit policies this package falls under *and why(? (e.g., data retrieval, reproducibility. If you are unsure, we suggest you make a pre-submission inquiry.):
[e.g., "data extraction, because the package parses a scientific data file format"]
data munging, combining data sources for use with phylogenetic analysis programs (in particular RevBayes & Mr. Bayes)
As the complexity of phylogenetic models increases, it can be difficult to find starting phylogenetic trees for Bayesian MCMC that have computable likelihoods. Most programs start from a random addition tree, which, for large datasets, may not produce reasonable likelihoods. Most software allows users to input a starting tree. The starting tree is often gleaned from the literature. However, for people performing "total evidence" or "joint" phylogenetic analysis, there may not be a published tree with all the relevant taxa. This package allows users to easily create one. Fossil record taxa are commonly left off phylogenies, so I expect biologists and paleontologists working with fossils to be the chief users of this package.
yours differ or meet our criteria for best-in-category?
Not to my knowledge.
Emailed @sckott to discuss how to know if the package is ready, and if reviewers can help with a WARNING, but did not discuss specific scope questions.
Requirements
Confirm each of the following by checking the box. This package:
Publication options
paper.md
matching JOSS's requirements with a high-level description in the package root or ininst/
.Detail
R CMD check
(ordevtools::check()
) succeed? Paste and describe any errors or warnings:I have two, and I'm unsure what they mean:
Undocumented code objects:
‘absent_list’ ‘ant_mrca_df’ ‘ant_taxa’ ‘ant_tree’ ‘mm’ ‘mol’
‘mrca_df’ ‘new_tree’ ‘tax_file’ ‘tax_list’ ‘tree’
Files in the 'vignettes' directory but no files in 'inst/doc':
‘vignette.Rmd’, ‘vignette.pdf’
Does the package conform to rOpenSci packaging guidelines? Please describe any exceptions:
If this is a resubmission following rejection, please explain the change in circumstances:
If possible, please provide recommendations of reviewers - those with experience with similar packages and/or likely users of your package - and their GitHub user names:
Klaus Schliep - KlausVigo
David Bapst - dwbapst
Rachel Warnock - rachelwarnock
The text was updated successfully, but these errors were encountered: