<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def describe_features(self, traj):
 """ Return a list of dictionaries describing the features. Follows the ordering of featurizers in self.which_feat. Parameters traj : mdtraj.Trajectory The trajectory to describe Returns ------- feature_descs : list of dict Dictionary describing each feature with the following information about the atoms participating in each feature - resnames: unique names of residues - atominds: atom indicies involved in the feature - resseqs: unique residue sequence ids (not necessarily 0-indexed) - resids: unique residue ids (0-indexed) - featurizer: featurizer dependent - featuregroup: other info for the featurizer """

        all_res = []
        for feat in self.which_feat:
            all_res.extend(self.features[feat].describe_features(traj))
        return all_res