diff --git a/bob/bio/base/database/database.py b/bob/bio/base/database/database.py
index 7d0445eaa6c35c2ed52f03fc85d8736b38802621..4fe518172266864987031a87d092c895b2593fa8 100644
--- a/bob/bio/base/database/database.py
+++ b/bob/bio/base/database/database.py
@@ -154,76 +154,6 @@ class BioDatabase(six.with_metaclass(abc.ABCMeta, bob.db.base.Database)):
     ###########################################################################
     # Helper functions that you might want to use in derived classes
     ###########################################################################
-    def replace_directories(self, replacements=None):
-        """This helper function replaces the ``original_directory`` and the ``annotation_directory`` of the database with the directories read from the given replacement file.
-
-        This function is provided for convenience, so that the database configuration files do not need to be modified.
-        Instead, this function uses the given dictionary of replacements to change the original directory and the original extension (if given).
-
-        The given ``replacements`` can be of type ``dict``, including all replacements, or a file name (as a ``str``), in which case the file is read.
-        The structure of the file should be:
-
-        .. code-block:: text
-
-           # Comments starting with # and empty lines are ignored
-
-           [YOUR_..._DATA_DIRECTORY] = /path/to/your/data
-           [YOUR_..._ANNOTATION_DIRECTORY] = /path/to/your/annotations
-
-        If no annotation files are available (e.g. when they are stored inside the ``database``), the annotation directory can be left out.
-
-        **Parameters:**
-
-        replacements : dict or str
-          A dictionary with replacements, or a name of a file to read the dictionary from.
-          If the file name does not exist, no directories are replaced.
-        """
-        if replacements is None:
-            return
-        if isinstance(replacements, str):
-            if not os.path.exists(replacements):
-                return
-            # Open the database replacement file and reads its content
-            with open(replacements) as f:
-                replacements = {}
-                for line in f:
-                    if line.strip() and not line.startswith("#"):
-                        splits = line.split("=")
-                        assert len(splits) == 2
-                        replacements[splits[0].strip()] = splits[1].strip()
-
-        assert isinstance(replacements, dict)
-
-        if self.original_directory in replacements:
-            self.original_directory = replacements[self.original_directory]
-
-        try:
-            if self.annotation_directory in replacements:
-                self.annotation_directory = replacements[self.annotation_directory]
-        except AttributeError:
-            pass
-
-    def sort(self, files):
-        """sort(files) -> sorted
-
-        Returns a sorted version of the given list of File's (or other structures that define an 'id' data member).
-        The files will be sorted according to their id, and duplicate entries will be removed.
-
-        **Parameters:**
-
-        files : [:py:class:`bob.bio.base.database.BioFile`]
-          The list of files to be uniquified and sorted.
-
-        **Returns:**
-
-        sorted : [:py:class:`bob.bio.base.database.BioFile`]
-          The sorted list of files, with duplicate `BioFile.id`\s being removed.
-        """
-        # sort files using their sort function
-        sorted_files = sorted(files)
-        # remove duplicates
-        return [f for i, f in enumerate(sorted_files) if not i or sorted_files[i - 1].id != f.id]
-
     def uses_probe_file_sets(self, protocol=None):
         """Defines if, for the current protocol, the database uses several probe files to generate a score.
         Returns True if the given protocol specifies file sets for probes, instead of a single probe file.
@@ -313,26 +243,6 @@ class BioDatabase(six.with_metaclass(abc.ABCMeta, bob.db.base.Database)):
             # List of files, do not remove duplicates
             return [f.make_path(directory, extension) for f in files]
 
-    def original_file_names(self, files):
-        """original_file_names(files) -> paths
-
-        Returns the full path of the original data of the given File objects.
-
-        **Parameters:**
-
-        files : [:py:class:`bob.bio.base.database.BioFile`]
-          The list of file object to retrieve the original data file names for.
-
-        **Returns:**
-
-        paths : [str] or [[str]]
-          The paths extracted for the files, in the same order.
-          If this database provides file sets, a list of lists of file names is returned, one sub-list for each file set.
-        """
-        assert self.original_directory is not None
-        assert self.original_extension is not None
-        return self.file_names(files, self.original_directory, self.original_extension)
-
     #################################################################
     ###### Methods to be overwritten by derived classes #############
     #################################################################
@@ -405,28 +315,6 @@ class BioDatabase(six.with_metaclass(abc.ABCMeta, bob.db.base.Database)):
     ######### Methods to provide common functionality ###############
     #################################################################
 
-    def original_file_name(self, file):
-        """This function returns the original file name for the given File object.
-
-        Keyword parameters:
-
-        file : :py:class:`bob.bio.base.database.BioFile` or a derivative
-          The File objects for which the file name should be retrieved
-
-        Return value : str
-          The original file name for the given File object
-        """
-        # check if directory is set
-        if not self.original_directory or not self.original_extension:
-            raise ValueError(
-                "The original_directory and/or the original_extension were not specified in the constructor.")
-        # extract file name
-        file_name = file.make_path(self.original_directory, self.original_extension)
-        if not self.check_existence or os.path.exists(file_name):
-            return file_name
-        raise ValueError("The file '%s' was not found. Please check the original directory '%s' and extension '%s'?" % (
-            file_name, self.original_directory, self.original_extension))
-
     def all_files(self, groups=None):
         """all_files(groups=None) -> files