descend_template_phylogeny_posthoc

descend_template_phylogeny_posthoc(ascending_lineage_iterables: ~typing.Iterable[~typing.Iterable], descending_tree_iterable: ~typing.Iterable, get_parent: ~typing.Callable[[~typing.Any], ~typing.Any], get_stem_length: ~typing.Callable[[~typing.Any], int], seed_instrument: ~hstrat._auxiliary_lib.HereditaryStratigraphicInstrument, demark: ~typing.Callable[[~typing.Any], ~typing.Hashable] = <function demark>, progress_wrap: ~typing.Callable = <function <lambda>>) List[HereditaryStratigraphicInstrument]

Generate a population of hereditary stratigraphic columns that could have resulted from the template phylogeny.

Calculates required ranks according to stratum retention policy for each extant lineage member, creating returned columns with strata at those ranks. Uses cache lookup to ensure that identical strata are provided where extant lineage members share common ancestry.

Requires seed_instrument to be HereditaryStratigraphicSurface or to be a HereditaryStratigraphicColumn with a stratum retention policy that provides IterRetainedRanks().

Prefer to use descend_template_phylogeny, which will automatically delegate to posthoc implementation if stratum retention policy requirements are met. See descend_template_phylogeny for parameter and return value details.