[Phylobase-commits] r584 - pkg/R

Steve Kembel steve.kembel at gmail.com
Tue Aug 25 05:01:40 CEST 2009


I'm also in favour of not automatically reordering trees on phylo <>
phylo4 conversion. There are cases where I would really like to
maintain tree order (because I have some information about nodes that
is in Newick string order).

I am not sure of a better solution. Am I correct that unknown ordering
is only really a potential problem on export *to* ape where it could
break some functions (i.e. plotting)? Could we warn in this case but
not on phylo -> phylo4 conversion?

-Steve
On Mon, Aug 24, 2009 at 7:23 PM, Ben Bolker<bolker at ufl.edu> wrote:
>  hmmm.
>  you may be right, but this will presumably break round-trip capability
> -- i.e. if we import a tree with unknown ordering and automatically
> re-order it when we export, the round trip will have changed it.
> Am I being too obsessive about this?  Is there a better solution?
>
>  Ben
>
> Peter D. Cowan wrote:
>> On Tue, Aug 25, 2009 at 02:58:59AM +0200, noreply at r-forge.r-project.org wrote:
>>> Author: bbolker
>>> Date: 2009-08-25 02:58:59 +0200 (Tue, 25 Aug 2009)
>>> New Revision: 584
>>>
>>> Modified:
>>>    pkg/R/setAs-Methods.R
>>> Log:
>>>   added error if unknown ordering imported from ape
>>>   added warning if unknown ordering exported to ape
>>>
>>
>> How about reordering unknown trees before exporting them?  This seems likely to flood users with warnings.
>>
>> peter
>>
>>> Modified: pkg/R/setAs-Methods.R
>>> ===================================================================
>>> --- pkg/R/setAs-Methods.R    2009-08-25 00:51:06 UTC (rev 583)
>>> +++ pkg/R/setAs-Methods.R    2009-08-25 00:58:59 UTC (rev 584)
>>> @@ -26,11 +26,11 @@
>>>          }
>>>      }
>>>      oldorder <- attr(from,"order")
>>> -    neworder <- if (is.null(oldorder)) { "unknown" } else {
>>> -      switch(oldorder,
>>> -             pruningwise="pruningwise",
>>> -             cladewise="preorder")
>>> -    }
>>> +    neworder <- if (is.null(oldorder)) { "unknown" } else
>>> +    if (!oldorder %in% phylo4_orderings) {
>>> +      stop("unknown ordering '",oldorder,"' in ape object")
>>> +    } else if (oldorder=="cladewise") "preorder"
>>> +    else oldorder
>>>      attr(from,"order") <- NULL
>>>      newobj <- phylo4(from$edge, from$edge.length, from$tip.label,
>>>                       node.label = from$node.label,
>>> @@ -113,9 +113,10 @@
>>>                                     preorder  = 'cladewise',
>>>                                     unknown = 'unknown',
>>>                                     pruningwise = 'pruningwise')
>>> -    } else {
>>> -      ## warning ??
>>> -    }
>>> +      } else {
>>> +        ## warning ??
>>> +        warning("trees with unknown order may be unsafe in ape")
>>> +      }
>>>      if (length(y$edge.length) == 0)
>>>          y$edge.length <- NULL
>>>      if (length(y$node.label) == 0)
>>>
>>> _______________________________________________
>>> Phylobase-commits mailing list
>>> Phylobase-commits at lists.r-forge.r-project.org
>>> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/phylobase-commits
>
>
> --
> Ben Bolker
> Associate professor, Biology Dep't, Univ. of Florida
> bolker at ufl.edu / www.zoology.ufl.edu/bolker
> GPG key: www.zoology.ufl.edu/bolker/benbolker-publickey.asc
>
>
> _______________________________________________
> Phylobase-commits mailing list
> Phylobase-commits at lists.r-forge.r-project.org
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/phylobase-commits
>
>



-- 
______________________________________________
Dr. Steven Kembel - steve.kembel at gmail.com
http://www.phylodiversity.net/skembel/


More information about the Phylobase-commits mailing list