def __expand_cluster(self, index_point):
cluster = None<EOL>self.__visited[index_point] = True<EOL>neighbors = self.__neighbor_searcher(index_point)<EOL>if len(neighbors) >= self.__neighbors:<EOL><INDENT>cluster = [index_point]<EOL>self.__belong[index_point] = True<EOL>for i in neighbors:<EOL><INDENT>if self.__visited[i] is False:<EOL><INDENT>self.__visited[i] = True<EOL>next_neighbors = self.__neighbor_searcher(i)<EOL>if len(next_neighbors) >= self.__neighbors:<EOL><INDENT>neighbors += [k for k in next_neighbors if ( (k in neighbors) == False) and k != index_point]<EOL><DEDENT><DEDENT>if self.__belong[i] is False:<EOL><INDENT>cluster.append(i)<EOL>self.__belong[i] = True<EOL><DEDENT><DEDENT><DEDENT>return cluster<EOL>
!
        @brief Expands cluster from specified point in the input data space.

        @param[in] index_point (list): Index of a point from the data.

        @return (list) Return tuple of list of indexes that belong to the same cluster and list of points that are marked as noise: (cluster, noise), or None if nothing has been expanded.