def reroot(self, rppr=None, pretend=False):
        """Reroot the phylogenetic tree.

        This operation calls ``rppr reroot`` to generate the rerooted
        tree, so you must have ``pplacer`` and its auxiliary tools
        ``rppr`` and ``guppy`` installed for it to work.  You can
        specify the path to ``rppr`` by giving it as the *rppr*
        argument.

        If *pretend* is ``True``, the convexification is run, but the
        refpkg is not actually updated.
        """
        with scratch_file(prefix='tree', suffix='.tre') as name:
            # Use a specific path to rppr, otherwise rely on $PATH
            subprocess.check_call([rppr or 'rppr', 'reroot',
                                   '-c', self.path, '-o', name])
            if not(pretend):
                self.update_file('tree', name)
        self._log('Rerooting refpkg')
Reroot the phylogenetic tree.

        This operation calls ``rppr reroot`` to generate the rerooted
        tree, so you must have ``pplacer`` and its auxiliary tools
        ``rppr`` and ``guppy`` installed for it to work.  You can
        specify the path to ``rppr`` by giving it as the *rppr*
        argument.

        If *pretend* is ``True``, the convexification is run, but the
        refpkg is not actually updated.