def __init__(self, groups_files=None, gene_threshold=None,
                 species_threshold=None, project_prefix="MyGroups"):
        """
        :param groups_files: A list containing the file names of the multiple
        group files
        :return: Populates the self.multiple_groups attribute
        """

        # If a MultiGroups is initialized with duplicate Group objects, these
        # will be stored in a list. If all Group objects are unique, the list
        # will remain empty
        self.duplicate_groups = []

        # Initializing thresholds. These may be set from the start, or using
        # some method that uses them as arguments
        self.gene_threshold = gene_threshold
        self.species_threshold = species_threshold

        self.prefix = project_prefix

        self.multiple_groups = {}
        self.filters = {}

        if groups_files:
            for group_file in groups_files:

                # If group_file is already a Group object, just add it
                if not isinstance(group_file, Group):
                    # Check for duplicate group files
                    group_object = Group(group_file, self.gene_threshold,
                                         self.species_threshold)
                else:
                    group_object = group_file

                if group_object.name in self.multiple_groups:
                    self.duplicate_groups.append(group_object.name)
                else:
                    self.multiple_groups[group_object.name] = group_object
                    self.filters[group_object.name] = (1,
                                                len(group_object.species_list))