descend_template_phylogeny_naive

descend_template_phylogeny_naive(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_column: ~hstrat.genome_instrumentation.HereditaryStratigraphicColumn, demark: ~typing.Callable[[~typing.Any], ~typing.Hashable] = <function demark>, progress_wrap: ~typing.Callable = <function <lambda>>) List[HereditaryStratigraphicColumn]

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

Traverses phylogenetic tree in topological order, generating a clone column with get_stem_length(node) additional stratum deposits for each node (including internal nodes). Uses CloneNthDescendant() instead of n calls to CloneDescendant() to improve efficiency where get_stem_length(node) > 1.

Prefer to use descend_template_phylogeny, which will automatically delegate between naive and posthoc implementation, unless performance considerations merit manual override.