Skip to content

Error when convert tibble into tree with as.treedata or as.phylo: check_edgelist #59

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

Closed
edoardomichielon opened this issue Jun 4, 2021 · 0 comments

Comments

@edoardomichielon
Copy link

I got error when I try to convert a tibble into a tree (either treedata or phylo) object, even if the tibble has been originally generated by a tree. See example:

library(ape      , quietly = TRUE, warn.conflicts = FALSE)
library(tidytree , quietly = TRUE, warn.conflicts = FALSE)
library(treeio   , quietly = TRUE, warn.conflicts = FALSE)
#> treeio v1.14.4  For help: https://yulab-smu.top/treedata-book/

set.seed(2017)
a <- rtree(4) %>% as_tibble() %>% as.data.frame()
print(a)
#>   parent node branch.length label
#> 1      5    1   0.434905600    t4
#> 2      7    2   0.674331481    t1
#> 3      7    3   0.002020766    t3
#> 4      6    4   0.025093514    t2
#> 5      5    5            NA  <NA>
#> 6      5    6   0.472166386  <NA>
#> 7      6    7   0.273833123  <NA>

# ERROR ON BOTH
a %>% as.treedata()     #calls treeio:::as.treedata.data.frame which calls treeio:::as.phylo.tbl_df
#> Error in check_edgelist(x): Cannot find root. network is not a tree!
a %>% as.phylo()        #calls treeio:::as.phylo.data.frame which is equal to treeio:::as.phylo.tbl_df
#> Error in check_edgelist(x): Cannot find root. network is not a tree!

check_edgelist asks that unique(parents[!(parents %in% children)]) returns a not-zero vector, but this is in contraddiction with the nature of root node itself:
e.g. tidytree:::rootnode.tbl_tree defines the root as the node with parent==node

It is somehow related to issue #36 and also asked in SO here

Created on 2021-06-04 by the reprex package (v1.0.0)

Session info
sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value                       
#>  version  R version 4.0.5 (2021-03-31)
#>  os       Ubuntu 20.04.2 LTS          
#>  system   x86_64, linux-gnu           
#>  ui       X11                         
#>  language (EN)                        
#>  collate  C.UTF-8                     
#>  ctype    C.UTF-8                     
#>  tz       Etc/UTC                     
#>  date     2021-06-04                  
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package     * version date       lib source        
#>  ape         * 5.5     2021-04-25 [1] CRAN (R 4.0.5)
#>  assertthat    0.2.1   2019-03-21 [2] CRAN (R 4.0.4)
#>  cli           2.3.1   2021-02-23 [2] CRAN (R 4.0.4)
#>  crayon        1.4.1   2021-02-08 [2] CRAN (R 4.0.4)
#>  DBI           1.1.1   2021-01-15 [2] CRAN (R 4.0.4)
#>  digest        0.6.27  2020-10-24 [2] CRAN (R 4.0.4)
#>  dplyr         1.0.5   2021-03-05 [2] CRAN (R 4.0.4)
#>  ellipsis      0.3.1   2020-05-15 [2] CRAN (R 4.0.4)
#>  evaluate      0.14    2019-05-28 [2] CRAN (R 4.0.4)
#>  fansi         0.4.2   2021-01-15 [2] CRAN (R 4.0.4)
#>  fs            1.5.0   2020-07-31 [2] CRAN (R 4.0.4)
#>  generics      0.1.0   2020-10-31 [2] CRAN (R 4.0.4)
#>  glue          1.4.2   2020-08-27 [2] CRAN (R 4.0.4)
#>  highr         0.8     2019-03-20 [2] CRAN (R 4.0.4)
#>  htmltools     0.5.1.1 2021-01-22 [2] CRAN (R 4.0.4)
#>  jsonlite      1.7.2   2020-12-09 [2] CRAN (R 4.0.4)
#>  knitr         1.31    2021-01-27 [2] CRAN (R 4.0.4)
#>  lattice       0.20-41 2020-04-02 [4] CRAN (R 4.0.0)
#>  lazyeval      0.2.2   2019-03-15 [2] CRAN (R 4.0.4)
#>  lifecycle     1.0.0   2021-02-15 [2] CRAN (R 4.0.4)
#>  magrittr      2.0.1   2020-11-17 [2] CRAN (R 4.0.4)
#>  nlme          3.1-152 2021-02-04 [4] CRAN (R 4.0.3)
#>  pillar        1.5.1   2021-03-05 [2] CRAN (R 4.0.4)
#>  pkgconfig     2.0.3   2019-09-22 [2] CRAN (R 4.0.4)
#>  purrr         0.3.4   2020-04-17 [2] CRAN (R 4.0.4)
#>  R6            2.5.0   2020-10-28 [2] CRAN (R 4.0.4)
#>  Rcpp          1.0.6   2021-01-15 [2] CRAN (R 4.0.4)
#>  reprex        1.0.0   2021-01-27 [2] CRAN (R 4.0.4)
#>  rlang         0.4.10  2020-12-30 [2] CRAN (R 4.0.4)
#>  rmarkdown     2.7     2021-02-19 [2] CRAN (R 4.0.4)
#>  rstudioapi    0.13    2020-11-12 [2] CRAN (R 4.0.4)
#>  sessioninfo   1.1.1   2018-11-05 [2] CRAN (R 4.0.4)
#>  stringi       1.5.3   2020-09-09 [2] CRAN (R 4.0.4)
#>  stringr       1.4.0   2019-02-10 [2] CRAN (R 4.0.4)
#>  tibble        3.1.0   2021-02-25 [2] CRAN (R 4.0.4)
#>  tidyselect    1.1.0   2020-05-11 [2] CRAN (R 4.0.4)
#>  tidytree    * 0.3.4   2021-05-22 [1] CRAN (R 4.0.5)
#>  treeio      * 1.14.4  2021-04-26 [1] Bioconductor  
#>  utf8          1.2.1   2021-03-12 [2] CRAN (R 4.0.4)
#>  vctrs         0.3.7   2021-03-29 [2] CRAN (R 4.0.4)
#>  withr         2.4.1   2021-01-26 [2] CRAN (R 4.0.4)
#>  xfun          0.22    2021-03-11 [2] CRAN (R 4.0.4)
#>  yaml          2.2.1   2020-02-01 [2] CRAN (R 4.0.4)
#> 
#> [1] /home/edoardo/R/x86_64-pc-linux-gnu-library/4.0
#> [2] /usr/local/lib/R/site-library
#> [3] /usr/lib/R/site-library
#> [4] /usr/lib/R/library
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants