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

treeio for parsing and exporting phylogenetic trees #179

Closed
14 of 19 tasks
GuangchuangYu opened this issue Jan 3, 2018 · 32 comments
Closed
14 of 19 tasks

treeio for parsing and exporting phylogenetic trees #179

GuangchuangYu opened this issue Jan 3, 2018 · 32 comments

Comments

@GuangchuangYu
Copy link

GuangchuangYu commented Jan 3, 2018

Summary

  • What does this package do? (explain in 50 words or less):

Parsing and exporting phylogenetic trees with associated data.

  • Paste the full DESCRIPTION file inside a code block below:
Package: treeio
Title: Base Classes and Functions for Phylogenetic Tree Input and Output
Version: 1.3.10
Authors@R: c(
    person("Guangchuang", "Yu",     email = "guangchuangyu@gmail.com", role = c("aut", "cre"), comment = c(ORCID = "0000-0002-6485-8781")),
    person("Tommy Tsan-Yuk", "Lam", email = "tylam.tommy@gmail.com",   role = c("aut", "ths")),
    person("Casey", "Dunn",         email = "casey_dunn@brown.edu",    role = "ctb"),
    person("Bradley", "Jones",      email = "brj1@sfu.ca",             role = "ctb")
	  )
Description: Base classes and functions for parsing and exporting phylogenetic trees. 'treeio' supports parsing analysis findings from commonly used software packages, allows linking exteranl data to phylogeny and merging tree data obtained from different sources. It also supports exporting phylogenetic tree with heterogeneous associated data to a single tree file.
Depends:
    R (>= 3.4.3)
Imports:
    ape,
    dplyr,
    jsonlite,
    magrittr,
    methods,
    rvcheck,
    tibble,
    tidytree (>= 0.1.6)
Suggests:
    ggplot2,
    ggtree,
    knitr,
    prettydoc,
    testthat,
    tidyr
VignetteBuilder: knitr
ByteCompile: true
License: Artistic-2.0
URL: https://guangchuangyu.github.io/treeio
BugReports: https://github.com/GuangchuangYu/treeio/issues
Encoding: UTF-8
LazyData: true
biocViews: Software, Annotation, Clustering, DataImport, DataRepresentation,
    Alignment, MultipleSequenceAlignment
RoxygenNote: 6.0.1
  • URL for the package (the development repository, not a stylized html page):

https://github.com/GuangchuangYu/treeio

  • 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.):

data extraction

[e.g., "data extraction, because the package parses a scientific data file format"]

  •   Who is the target audience and what are scientific applications of this package?  

Researchers doing ecology and evolution.

No.

  •   If you made a pre-submission enquiry, please paste the link to the corresponding issue, forum post, or other discussion, or @tag the editor you contacted.

No.

Requirements

Confirm each of the following by checking the box. This package:

  • does not violate the Terms of Service of any service it interacts with.
  • has a CRAN and OSI accepted license.
  • contains a README with instructions for installing the development version.
  • includes documentation with examples for all functions.
  • contains a vignette with examples of its essential functions and uses.
  • has a test suite.
  • has continuous integration, including reporting of test coverage, using services such as Travis CI, Coeveralls and/or CodeCov.
  • I agree to abide by ROpenSci's Code of Conduct during the review process and in maintaining my package should it be accepted.

Publication options

  • Do you intend for this package to go on CRAN?
  • Do you wish to automatically submit to the Journal of Open Source Software? If so:
    • The package has an obvious research application according to JOSS's definition.
    • The package contains a paper.md matching JOSS's requirements with a high-level description in the package root or in inst/.
    • The package is deposited in a long-term repository with the DOI:
    • (Do not submit your package separately to JOSS)
  • Do you wish to submit an Applications Article about your package to Methods in Ecology and Evolution? If so:
    • The package is novel and will be of interest to the broad readership of the journal.
    • The manuscript describing the package is no longer than 3000 words.
    • You intend to archive the code for the package in a long-term repository which meets the requirements of the journal.
    • (Please do not submit your package separately to Methods in Ecology and Evolution)

Detail

  • Does R CMD check (or devtools::check()) succeed? Paste and describe any errors or warnings:

  • 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:

No.

  • 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:
@sckott
Copy link
Contributor

sckott commented Jan 8, 2018

Hi @GuangchuangYu - Thanks very much for your submission. I'll report back with an editor check shortly

@sckott
Copy link
Contributor

sckott commented Jan 9, 2018

Editor checks:

  • Fit: The package meets criteria for fit and overlap
  • Automated tests: Package has a testing suite and is tested via Travis-CI or another CI service.
  • License: The package has a CRAN or OSI accepted license
  • Repository: The repository link resolves correctly
  • Archive (JOSS only, may be post-review): The repository DOI resolves correctly
  • Version (JOSS only, may be post-review): Does the release version given match the GitHub release (v1.0.0)?

Editor comments

Thanks for your submission @GuangchuangYu !!

  • I do believe Artistic is a CRAN accepted license and a OSI accepted license, can you check that box?
  • It looks like you have continuous integration with Bioconductor and Appveyor, so can check that box as well.
  • I see you checked the submit to MEE box. This is our first one!
  • You can put a ropensci review badge in your README

[![](https://badges.ropensci.org/179_status.svg)](https://github.com/ropensci/onboarding/issues/179)

  • Goodpractice output for you and reviewers to consider:
It is good practice towrite unit tests for all functions, and all package code
    in general. 7% of code lines are covered by test cases.

    R/AllGenerics.R:12:NA
    R/AllGenerics.R:26:NA
    R/ancestor.R:5:NA
    R/ancestor.R:6:NA
    R/ancestor.R:7:NA
    ... and 1326 more linesuse '<-' for assignment instead of '='. '<-' is the
    standard, and R users and developers are used it and it is easier
    to read your code for them if you use '<-'.

    R/hyphy.R:205:18
    R/hyphy.R:207:18
    R/jtree.R:66:20
    R/jtree.R:68:21
    R/jtree.R:69:22
    ... and 50 more linesavoid 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/AllGenerics.R:26:1
    R/beast.R:136:1
    R/beast.R:199:1
    R/beast.R:206:1
    R/beast.R:239:1
    ... and 45 more linesavoid sapply(), it is not type safe. It might return a
    vector, or a list, depending on the input data. Consider using
    vapply() instead.

    R/beast.R:71:14
    R/beast.R:97:16
    R/beast.R:233:21
    R/beast.R:239:19
    R/beast.R:279:11
    ... and 16 more linesavoid 1:length(...), 1:nrow(...), 1:ncol(...),
    1:NROW(...) and 1:NCOL(...) expressions. They are error prone and
    result 1:0 if the expression on the right hand side is zero. Use
    seq_len() or seq_along() instead.

    R/method-groupOTU.R:61:19
    R/write-beast.R:88:25
    R/write-beast.R:160:15
    tests/testthat/test-nhx.R:75:25

During check:

* checking top-level files ... NOTE
Non-standard file/directory found at top level:CONTRIBUTORS.md

Seeking reviewers now 🕐


Reviewers: @uyedaj @fmichonneau
Due date: 2018-02-06

@GuangchuangYu
Copy link
Author

GuangchuangYu commented Jan 10, 2018

thanks @sckott !

I have checked all the boxes you mentioned and add ropensci badge on README.md.

@GuangchuangYu
Copy link
Author

GuangchuangYu commented Jan 10, 2018

current goodpractice output

It is good practice to

  ✖ write unit tests for all functions, and all package code
    in general. 71% of code lines are covered by test cases.

    R/beast.R:23:NA
    R/beast.R:24:NA
    R/beast.R:25:NA
    R/beast.R:26:NA
    R/beast.R:81:NA
    ... and 411 more lines

@sckott
Copy link
Contributor

sckott commented Jan 17, 2018

reviewers assigned

Reviewers: @uyedaj @fmichonneau
Due date: 2018-02-06

@fmichonneau
Copy link
Member

fmichonneau commented Feb 9, 2018

sorry for the late review, I'll try to finish over the weekend.

@sckott
Copy link
Contributor

sckott commented Feb 9, 2018

thanks @fmichonneau

@uyedaj can you get your review in soon?

@uyedaj
Copy link

uyedaj commented Feb 9, 2018

I'm in the same boat, will try to finish over the weekend.

@sckott
Copy link
Contributor

sckott commented Feb 9, 2018

thanks @uyedaj

@sckott
Copy link
Contributor

sckott commented Feb 12, 2018

@fmichonneau @uyedaj please get your reviews in as soon as you can, thanks! 😸

@uyedaj
Copy link

uyedaj commented Feb 13, 2018

Package Review

Please check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide

  • As the reviewer I confirm that there are no conflicts of interest for me to review this work (If you are unsure whether you are in conflict, please speak to your editor before starting your review).

Documentation

The package includes all the following forms of documentation:

  • A statement of need clearly stating problems the software is designed to solve and its target audience in README
  • Installation instructions: for the development version of package and any non-standard dependencies in README
  • Vignette(s) demonstrating major functionality that runs successfully locally
  • Function Documentation: for all exported functions in R help
  • [] Examples for all exported functions in R Help that run successfully locally
  • Community guidelines including contribution guidelines in the README or CONTRIBUTING, and DESCRIPTION with URL, BugReports and Maintainer (which may be autogenerated via Authors@R).

Functionality

  • Installation: Installation succeeds as documented.
  • Functionality: Any functional claims of the software been confirmed.
  • Performance: Any performance claims of the software been confirmed.
  • Automated tests: Unit tests cover essential functions of the package
    and a reasonable range of inputs and conditions. All tests pass on the local machine.
  • Packaging guidelines: The package conforms to the rOpenSci packaging guidelines

Final approval (post-review)

  • The author has responded to my review and made changes to my satisfaction. I recommend approving this package.

Estimated hours spent reviewing: 3


Review Comments

This package covers an important and useful niche in the R phylogenetics ecosystem that greatly improves parsing tree formats from different phylogenetics software packages. It will no doubt be useful for researchers, and I will be happy to use it in my own work in the future.

The package has very clear and useful vignettes using provided datasets that make it clear how the package is used. This is done at the expense of examples in the .Rd files, which are largely lacking. The package is seamlessly integrated into the packages tidytree and ggtree. Most of the core functions exported in the package are directly related to reading in different types of source data. Other functions are exported from other packages. The package appears to pass all checks and tests included.

When learning how to use the package, I immediately typed in the name of the object and noticed the
..@tree when the object is printed to the screen. However, this is not the name of the slot in the
S4 treedata object, which is instead ..@phylo; which seems unnecessarily confusing.

The provided datasets are a bit hefty for an R package at 3.2MB. Perhaps understandably however, but
the authors could see what they could do to try to get this down to a lower value (usually CRAN prefers
extdata to be than 1 MB.)

There is a typo in Exporter.Rmd
Exporting the tree structure is easy, user can use `as.phyo` method

What kind of multiphylo support is there in this package? I see that you can import a whole set of trees
using either read.mrbayes and read.beast but it tended to choke on average sized tree files when I
tested it. Perhaps the vignettes could show how the beastList class works and what it might be used for? I'm assuming that there is no way to associate node/tip data to a beastList object? If the package claims to read Beast and MrBayes formatted tree output, it seems like it should be prepared to read in posteriors of trees, or at least, specify clearly that these are not the primary functionality of the package.

Overall, I find little to criticize in this excellent package!

@fmichonneau
Copy link
Member

fmichonneau commented Feb 19, 2018

Package Review

Please check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide

  • As the reviewer I confirm that there are no conflicts of interest for me to review this work (If you are unsure whether you are in conflict, please speak to your editor before starting your review).

Documentation

The package includes all the following forms of documentation:

  • A statement of need clearly stating problems the software is designed to solve and its target audience in README
  • Installation instructions: for the development version of package and any non-standard dependencies in README
  • Vignette(s) demonstrating major functionality that runs successfully locally
  • Function Documentation: for all exported functions in R help
  • Examples for all exported functions in R Help that run successfully locally
  • Community guidelines including contribution guidelines in the README or CONTRIBUTING, and DESCRIPTION with URL, BugReports and Maintainer (which may be autogenerated via Authors@R).
For packages co-submitting to JOSS

The package contains a paper.md matching JOSS's requirements with:

  • A short summary describing the high-level functionality of the software
  • Authors: A list of authors with their affiliations
  • A statement of need clearly stating problems the software is designed to solve and its target audience.
  • References: with DOIs for all those that have one (e.g. papers, datasets, software).

Functionality

  • Installation: Installation succeeds as documented.
  • Functionality: Any functional claims of the software been confirmed.
  • Performance: Any performance claims of the software been confirmed.
  • Automated tests: Unit tests cover essential functions of the package
    and a reasonable range of inputs and conditions. All tests pass on the local machine.
  • Packaging guidelines: The package conforms to the rOpenSci packaging guidelines

Final approval (post-review)

  • The author has responded to my review and made changes to my satisfaction. I recommend approving this package.

Estimated hours spent reviewing: 3


Review Comments

Documentation

  • The README could be edited to be made easier to read for beginners. Someone
    new to R might find it difficult to understand what this package is about.

  • The vignettes are great. It might be helpful though to better document what to
    do with the trees/objects created by the treeio functions. I think some of
    this information is included in the vignettes of the ggtree package, so
    referring to these vignettes here could be helpful.

  • The function documentation are not very detailed. It is also not clear where
    to get information about the structure of the treedata objects returned by
    the read.* functions, available methods to extract information they contain,
    etc.

  • Community guidelines: the repository doesn't have contribution guidelines (no
    section in README or a CONTRIBUTING file).

Installation

During installation I see:

** byte-compile and prepare package for lazy loading
Note: wrong number of arguments to '>'

install_github also returns "Warning message: this repository contains submodules, may not function as expected." A note in the README about whether this warning is safe to ignore would be useful.

It also seems that the order in which treeio and ggtree is installed matters. I haven't tested this much, but if it's indeed the case, some indication in which order to install these packages, to avoid issues down the road would be useful.

Functionality

In the submission, the author indicates that no other packages have similar
functionalities, but there are actually many packages that provide ways to
import phylogenetic data in R. treeio attempts to be comprehensive by pulling functionalities from other packages, and re-using code, but
many of the packages listed under the section "Getting trees into R" from the
"Phylogenetics" CRAN task view overlap with this package
https://cran.r-project.org/view=Phylogenetics

In general, it seems that an overview of where treeio fits in the phylogenetics landscape in R would be welcome.

Tests

It looks like there are extensive tests for the code, but the codecov badge is currently broken. A quick look at the log files on Travis reveal that it's because the patch version for the minimum R version is listed in the README (it should be R (>= 3.4.0) instead of R (>= 3.4.2)), this is a new requirement in R-devel.

Minor comments

@sckott
Copy link
Contributor

sckott commented Feb 19, 2018

thanks for your review @fmichonneau ! can you give an estimate of how many hrs spent on the review?

@fmichonneau
Copy link
Member

fmichonneau commented Feb 19, 2018

you're welcome and sorry for the delay. I updated my review to include the time estimate. Thanks

@sckott
Copy link
Contributor

sckott commented Feb 21, 2018

@GuangchuangYu both reviews are now in

@GuangchuangYu
Copy link
Author

GuangchuangYu commented Feb 26, 2018

thanks for the comments. I will address these issues asap.

@GuangchuangYu
Copy link
Author

GuangchuangYu commented Feb 28, 2018

@uyedaj Thanks for your comments and here is my response.

This package covers an important and useful niche in the R phylogenetics ecosystem that greatly improves parsing tree formats from different phylogenetics software packages. It will no doubt be useful for researchers, and I will be happy to use it in my own work in the future.

The package has very clear and useful vignettes using provided datasets that make it clear how the package is used. This is done at the expense of examples in the .Rd files, which are largely lacking. The package is seamlessly integrated into the packages tidytree and ggtree. Most of the core functions exported in the package are directly related to reading in different types of source data. Other functions are exported from other packages. The package appears to pass all checks and tests included.

When learning how to use the package, I immediately typed in the name of the object and noticed the
..@tree when the object is printed to the screen. However, this is not the name of the slot in the
S4 treedata object, which is instead ..@Phylo; which seems unnecessarily confusing.

Had been changed to ..@phylo in tidytree >=0.1.7.

The provided datasets are a bit hefty for an R package at 3.2MB. Perhaps understandably however, but
the authors could see what they could do to try to get this down to a lower value (usually CRAN prefers
extdata to be than 1 MB.)

Since treeio supports several formats and I would like to present example for each one of them, there are several software outputs packed with this package.

One solution I can think of is to reduce the size by gzip the files at the expense of they can't be opened with text editor directly. What do you think?

There is a typo in Exporter.Rmd
Exporting the tree structure is easy, user can use as.phyo method

corrected.

What kind of multiphylo support is there in this package? I see that you can import a whole set of trees
using either read.mrbayes and read.beast but it tended to choke on average sized tree files when I
tested it. Perhaps the vignettes could show how the beastList class works and what it might be used for? I'm assuming that there is no way to associate node/tip data to a beastList object? If the package claims to read Beast and MrBayes formatted tree output, it seems like it should be prepared to read in posteriors of trees, or at least, specify clearly that these are not the primary functionality of the package.

multiPhylo can be used to stored tree structures of MCMC trees via ape::read.nexus("mcmc_tree_file"). However it is not designed for storing tree associated data (e.g. posterior values). The beastList object is just a class attribute (S3) without formal class definition. It is actually a list of the treedata object, which of course can read posteriors and other attributes of trees. I didn't demonstrate such functionality since it is currently not mature, and still have room to improve, especially performance.

Overall, I find little to criticize in this excellent package!

@GuangchuangYu
Copy link
Author

GuangchuangYu commented Feb 28, 2018

Thanks for @fmichonneau 's comments and here is my response.

Documentation

  • The README could be edited to be made easier to read for beginners. Someone
    new to R might find it difficult to understand what this package is about.

have updated and should be more easy to understand.

  • The vignettes are great. It might be helpful though to better document what to
    do with the trees/objects created by the treeio functions. I think some of
    this information is included in the vignettes of the ggtree package, so
    referring to these vignettes here could be helpful.

Visualizing tree data with ggtree session was added in the Importer vignette.

  • The function documentation are not very detailed. It is also not clear where
    to get information about the structure of the treedata objects returned by
    the read.* functions, available methods to extract information they contain,
    etc.

A session of Getting information from treedata object in the Importer vignette was added.

  • Community guidelines: the repository doesn't have contribution guidelines (no
    section in README or a CONTRIBUTING file).

Contributing session was added in README.

Installation

During installation I see:

** byte-compile and prepare package for lazy loading
Note: wrong number of arguments to '>'

install_github also returns "Warning message: this repository contains submodules, may not function as expected." A note in the README about whether this warning is safe to ignore would be useful.

All these warning message had been removed.

It also seems that the order in which treeio and ggtree is installed matters. I haven't tested this much, but if it's indeed the case, some indication in which order to install these packages, to avoid issues down the road would be useful.

treeio suggest ggtree as it can enhance treeio by utilizing data imported by treeio to be visualized on a tree, while ggtree imports treeio's tree data parsing functions.

treeio can work without ggtree while ggtree needs treeio to install.

When installing ggtree, the treeio package will be installed automatically. There should be no confusing here. Please correct me if I was wrong.

Functionality

In the submission, the author indicates that no other packages have similar
functionalities, but there are actually many packages that provide ways to
import phylogenetic data in R. treeio attempts to be comprehensive by pulling functionalities from other packages, and re-using code, but
many of the packages listed under the section "Getting trees into R" from the
"Phylogenetics" CRAN task view overlap with this package
https://cran.r-project.org/view=Phylogenetics

In general, it seems that an overview of where treeio fits in the phylogenetics landscape in R would be welcome.

Several packages listed in Getting trees into R session from https://cran.r-project.org/view=Phylogenetics are for getting trees from online repositories.

ape and phylobase can only import Newick and Nexus. RNeXML is designed for NeXML. For software output, simmap is supported by phyext2 and phytools. BEAST and MrBayes outputs are not full supported by PHYLOCH as you can refer to below: (only attributes of internal nodes can be parsed)

> file <- system.file("extdata/BEAST", "beast_mcc.tree", package="treeio")
> pb <- phyloch::read.beast(file)
> tb <- treeio::read.beast(file)
> attributes(pb)
$names
 [1] "edge"               "edge.length"        "Nnode"
 [4] "tip.label"          "rate_range_MIN"     "rate_range_MAX"
 [7] "length_range_MIN"   "length_range_MAX"   "length_95%_HPD_MIN"
[10] "length_95%_HPD_MAX" "height"             "rate"
[13] "rate_median"        "length"             "length_median"
[16] "rate_95%_HPD_MIN"   "rate_95%_HPD_MAX"   "height_95%_HPD_MIN"
[19] "height_95%_HPD_MAX" "height_range_MIN"   "height_range_MAX"
[22] "height_median"      "posterior"

$class
[1] "phylo"

$origin
[1] "/Library/R/library/treeio/extdata/BEAST/beast_mcc.tree"

> pb$rate
 [1]          NA 0.002922564 0.002907438 0.002909881 0.002887185 0.002894850
 [7] 0.002898022 0.002889015 0.002893996 0.002894633 0.002909435 0.002955187
[13] 0.002888937 0.002897986
> tb[["rate"]]
 [1] 0.002920138 0.002904671 0.002907438 0.002924273 0.002922564 0.002903580
 [7] 0.002904168 0.002912649 0.002931375 0.002910248 0.002908179 0.002924622
[13] 0.002955187 0.002909435 0.002894633 0.002896674 0.002893996 0.002926319
[19] 0.002889015 0.002897274 0.002923289 0.002930741 0.002897986 0.002888937
[25] 0.002898022 0.002894850 0.002887185 0.002909881          NA

There are many other formats that can not be imported directly into R and we developed treeio to address this issue. I have added an overview in the Importer vignette.

Tests

It looks like there are extensive tests for the code, but the codecov badge is currently broken. A quick look at the log files on Travis reveal that it's because the patch version for the minimum R version is listed in the README (it should be R (>= 3.4.0) instead of R (>= 3.4.2)), this is a new requirement in R-devel.

fixed and the codecov badge is available.

Minor comments

  • typo in Description and README: "exteranl" -> "external"

Corrected.

Corrected.

@sckott
Copy link
Contributor

sckott commented Feb 28, 2018

thanks for your responses to reviewers @GuangchuangYu

@uyedaj @fmichonneau let me know if you are happy with the maintainers responses - or feel free to keep the conversation going if you have further thoughts

@fmichonneau
Copy link
Member

fmichonneau commented Mar 2, 2018

That looks good to me 🎉
Thanks @GuangchuangYu!

@sckott
Copy link
Contributor

sckott commented Mar 6, 2018

@uyedaj did @GuangchuangYu address your concerns adequately?

@uyedaj
Copy link

uyedaj commented Mar 6, 2018

Yes, it looks good to me. Thanks.

@sckott
Copy link
Contributor

sckott commented Mar 6, 2018

@GuangchuangYu both reviewers are okay with changes. I'll have a quick look myself now to see if there's any lingering issues.

@sckott
Copy link
Contributor

sckott commented Mar 6, 2018

With the bioc versions of treeio and ggtree everything works fine, but with dev version of treeio, everything installs, but some tests are failing I think because some methods have been removed in treeio

test-conversion.R:4: error: (unknown)
objectgroupCladeis not exported by 'namespace:treeio'
1: ggtree::ggtree at /Users/sckott/github/ropensci/treeio/tests/testthat/test-conversion.R:4
2: getExportedValue(pkg, name)
3: asNamespace(ns)
4: getNamespace(ns)
5: tryCatch(loadNamespace(name), error = function(e) stop(e))
6: tryCatchList(expr, classes, parentenv, handlers)
7: tryCatchOne(expr, names, parentenv, handlers[[1L]])
8: value[[3L]](cond)

test-treedata-accessor.R:34: error: (unknown)
objectgroupCladeis not exported by 'namespace:treeio'
1: ggtree::ggtree at /Users/sckott/github/ropensci/treeio/tests/testthat/test-treedata-accessor.R:34
2: getExportedValue(pkg, name)
3: asNamespace(ns)
4: getNamespace(ns)
5: tryCatch(loadNamespace(name), error = function(e) stop(e))
6: tryCatchList(expr, classes, parentenv, handlers)
7: tryCatchOne(expr, names, parentenv, handlers[[1L]])
8: value[[3L]](cond)
Session Info
Session info ------------------------------------------------------------------
 setting  value
 version  R version 3.4.4 beta (2018-03-05 r74359)
 system   x86_64, darwin15.6.0
 ui       X11
 language (EN)
 collate  en_US.UTF-8
 tz       America/Los_Angeles
 date     2018-03-06

Packages ----------------------------------------------------------------------
 package    * version    date       source
 ape          5.0        2017-10-30 CRAN (R 3.4.2)
 assertthat   0.2.0      2017-04-11 CRAN (R 3.4.0)
 base       * 3.4.4      2018-03-06 local
 bindr        0.1        2016-11-13 CRAN (R 3.4.0)
 bindrcpp     0.2        2017-06-17 CRAN (R 3.4.0)
 commonmark   1.4        2017-09-01 cran (@1.4)
 compiler     3.4.4      2018-03-06 local
 datasets   * 3.4.4      2018-03-06 local
 devtools     1.13.5     2018-02-18 CRAN (R 3.4.3)
 digest       0.6.15     2018-01-28 CRAN (R 3.4.3)
 dplyr        0.7.4      2017-09-28 CRAN (R 3.4.2)
 glue         1.2.0      2017-10-29 CRAN (R 3.4.2)
 graphics   * 3.4.4      2018-03-06 local
 grDevices  * 3.4.4      2018-03-06 local
 grid         3.4.4      2018-03-06 local
 jsonlite     1.5        2017-06-01 CRAN (R 3.4.0)
 lattice      0.20-35    2017-03-25 CRAN (R 3.4.4)
 lazyeval     0.2.1      2017-10-29 cran (@0.2.1)
 magrittr     1.5        2014-11-22 CRAN (R 3.4.0)
 memoise      1.1.0      2018-02-27 Github (hadley/memoise@611cfad)
 methods    * 3.4.4      2018-03-06 local
 nlme         3.1-131.1  2018-02-16 CRAN (R 3.4.4)
 parallel     3.4.4      2018-03-06 local
 pillar       1.2.1      2018-02-27 CRAN (R 3.4.3)
 pkgconfig    2.0.1      2017-03-21 CRAN (R 3.4.0)
 R6           2.2.2      2017-06-17 CRAN (R 3.4.0)
 Rcpp         0.12.15    2018-01-20 CRAN (R 3.4.3)
 rlang        0.2.0.9000 2018-03-06 Github (tidyverse/rlang@9ea33dd)
 roxygen2     6.0.1      2017-02-06 CRAN (R 3.4.0)
 rstudioapi   0.7        2017-09-07 CRAN (R 3.4.1)
 rvcheck      0.0.9      2017-07-10 cran (@0.0.9)
 stats      * 3.4.4      2018-03-06 local
 stringi      1.1.6      2017-11-17 CRAN (R 3.4.2)
 stringr      1.3.0.9000 2018-03-06 Github (tidyverse/stringr@097c0c0)
 testthat   * 2.0.0      2017-12-13 CRAN (R 3.4.3)
 tibble       1.4.2      2018-01-22 CRAN (R 3.4.3)
 tidytree     0.1.7      2018-02-27 CRAN (R 3.4.3)
 tools        3.4.4      2018-03-06 local
 treeio     * 1.3.12     <NA>       Bioconductor
 utils      * 3.4.4      2018-03-06 local
 withr        2.1.1.9000 2018-03-05 Github (jimhester/withr@5d05571)
 xml2         1.2.0      2018-01-24 CRAN (R 3.4.3)

@GuangchuangYu
Copy link
Author

GuangchuangYu commented Mar 7, 2018

@sckott The current bioc dev branch of both treeio and ggtree is identical to github version.

The reason for the issue is that the OSX tarball of ggtree in Bioc dev is not updated due to the suggested package ggimage that is not installed on their build server.

The ggimage is suggested as it enhances ggtree for annotating tree with images files.

The issue you presented here is on the Bioconductor side as ggimage is indeed available via CRAN.

@GuangchuangYu
Copy link
Author

GuangchuangYu commented Mar 8, 2018

install.packages("https://bioconductor.org/packages/devel/bioc/src/contrib/treeio_1.3.12.tar.gz", repo=NULL)
install.packages("https://bioconductor.org/packages/devel/bioc/src/contrib/ggtree_1.11.6.tar.gz", repo=NULL)

After I installed the treeio and ggtree using the source tarball on Bioconductor, I clone the repo and run the rcmdcheck. Everything just goes fine.

$ git clone https://git.bioconductor.org/packages/treeio
$ git clone https://git.bioconductor.org/packages/ggtree
$ cd treeio
$ make
...
── 0 errors ✔ | 0 warnings ✔ | 0 notes ✔

$ cd ggtree
$ make
...
── 0 errors ✔ | 0 warnings ✔ | 1 note ✖

The error you presented here should be due to inconsistent versions (i.e. mix installation of release and devel branches), since there is a lot of change in the treeio dev branch and also some codes were move to the tidytree package.

@sckott
Copy link
Contributor

sckott commented Mar 11, 2018

Thanks, works well.


Approved! Thanks again for your submission @GuangchuangYu

  • At this point we usually have maintainers transfer their package to ropensci - bit I'm pretty sure that's not possible with Bioc pkgs, correct? We've had one other Bioc pkg (genbankr) and we planned to simply set up a mirror in our ropensci org account, but haven't got around to it yet - but that's the plan anyway for all Bioc pkgs
  • Make sure to
  • In your .github dir can you also add a CONTRIBUTING.md and a PR template, see https://github.com/ropensci/dotgithubfiles/ for examples
  • We're starting to roll out software metadata files to all ropensci pkgs via the Codemeta initiative, see https://github.com/ropensci/codemetar/#codemetar for how to include it in your pkg, after installing the pkg - should be easy as running codemetar::write_codemeta() in the root of your pkg
  • For the MEE paper, go ahead now and submit your manuscript to MEE if you haven't already. They tell me there's an option to say the software has been reviewed by ropensci in their submission template

@GuangchuangYu
Copy link
Author

GuangchuangYu commented Mar 12, 2018

@sckott thanks for accepting the pkg. All the requirements are incorporated in v>=1.3.13.


@stefaniebutland I think for the first time of introducing a package, a long-form post is more appropriate.

@stefaniebutland
Copy link
Member

stefaniebutland commented Mar 15, 2018

Great to hear you're interested in contributing a post @GuangchuangYu! Here are some editorial and technical guidelines https://github.com/ropensci/roweb2#contributing-a-blog-post. You can have a look at other posts about onboarded software to see what style and length you like: https://ropensci.org/tags/review/

Would you be able to submit a draft via pull request 2018-04-03? This gives us an opportunity to review it, give you feedback and confirm a publication date.

@GuangchuangYu
Copy link
Author

GuangchuangYu commented Oct 22, 2019

FYI, the treeio package has published in MBE, https://doi.org/10.1093/molbev/msz240.

@stefaniebutland
Copy link
Member

stefaniebutland commented Oct 22, 2019

Congratulations @GuangchuangYu! I added the citation as a comment on your blog post https://ropensci.org/blog/2018/05/17/treeio/

(I used to dream of publishing in MBE back when I was doing research)

@sckott
Copy link
Contributor

sckott commented Oct 22, 2019

thanks @GuangchuangYu !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants