docs: def initialise_parsimonious_states(tree, feature, states):
      """
      Initializes the bottom-up state arrays for tips based on their states given by the feature.
  
      :param tree: ete3.Tree, tree for which the tip states are to be initialized
      :param feature: str, feature in which the tip states are stored (the value could be None for a missing state)
      :param states: numpy array, possible states.
      :return: void, adds the get_personalised_feature_name(feature, BU_PARS) feature to tree tips.
      """
      ps_feature_down = get_personalized_feature_name(feature, BU_PARS_STATES)
      ps_feature = get_personalized_feature_name(feature, PARS_STATES)
      all_states = set(states)
  
      for node in tree.traverse():
          state = getattr(node, feature, set())
          if not state:
              node.add_feature(ps_feature_down, all_states)
          else:
              node.add_feature(ps_feature_down, state)
          node.add_feature(ps_feature, getattr(node, ps_feature_down))