def collect_publications(self):
        """
        Recursively collect list of all publications referenced in this
        tree and all sub-trees.

        Returns:
            list: List of UUID strings.
        """
        pubs = list(self.sub_publications)

        for sub_tree in self.sub_trees:
            pubs.extend(sub_tree.collect_publications())

        return pubs