# Converting from and to paleotree format

#### Joelle Barido-Sottani

#### 2026-02-26

## Compatibility with paleotree

Objects produced by `FossilSim` contain all the information required by the `paleotree` format and vice-versa, thus these two packages are fully compatible.

Converting from `paleotree` is done using the `paleotree.record.to.fossils` function, which returns a list of the corresponding `phylo`, `taxonomy` and `fossils` objects.

    record = paleotree::simFossilRecord(p = 0.1, q = 0.1, r = 0.1, nruns = 1, nTotalTaxa = c(30,40),
                                        nExtant = 0, nSamp = c(5,25))

    converted_record = paleotree.record.to.fossils(record = record)
    converted_record

If the `paleotree` record is fully extinct, i.e contains no extant samples, the age of the record will be encoded in the field `origin.time` of the tree.

    converted_record$tree$origin.time

Similarly, converting from the `FossilSim` objects to `paleotree` format is done using the `fossils.to.paleotree.record` function, which requires a `fossils` object and either a `phylo` or `taxonomy` object. If no taxonomy is provided, all speciation events in the tree will be assumed to be symmetric (bifurcating).

    t = ape::rtree(6)
    f = sim.fossils.poisson(rate = 2, tree = t)

    converted_record = fossils.to.paleotree.record(fossils = f, tree = t)
    converted_record