def get_attribute(self, attribute, value=None, features=False):
        """This returns a list of GFF objects (or GFF Features) with the given attribute and if supplied, those
        attributes with the specified value

        :param attribute: The 'info' field attribute we are querying
        :param value: Optional keyword, only return attributes equal to this value
        :param features: Optional keyword, return GFF Features instead of GFF Objects
        :return: A list of GFF objects (or GFF features if requested)
        """
        if attribute in self.filters:
            valid_gff_objects = self.fast_attributes[attribute] if not value else\
                [i for i in self.fast_attributes[attribute] if i.attributes.get(attribute, False) == value]
            if features:
                valid_ids = [gff_object.attributes.get(self.id_tag, None) for gff_object in valid_gff_objects]
                return [self.feature_map[gff_id] for gff_id in valid_ids if gff_id]
            else:
                return valid_gff_objects
        else:
            valid_gff_objects = [gff_object for gff_feature in self.feature_map.values()
                              for gff_object in gff_feature.features
                              if gff_object.attributes.get(attribute, False)]
            valid_gff_objects = valid_gff_objects if not value else [gff_object for gff_object in valid_gff_objects
                                                                     if gff_object.attributes[attribute] == value]
            if features:
                valid_ids = [gff_object.attributes.get(self.id_tag, None) for gff_object in valid_gff_objects]
                return [self.feature_map[gff_id] for gff_id in valid_ids if gff_id]
            else:
                return valid_gff_objects
This returns a list of GFF objects (or GFF Features) with the given attribute and if supplied, those
        attributes with the specified value

        :param attribute: The 'info' field attribute we are querying
        :param value: Optional keyword, only return attributes equal to this value
        :param features: Optional keyword, return GFF Features instead of GFF Objects
        :return: A list of GFF objects (or GFF features if requested)