def glob(self, pathname, using=None,
             unite=False, basecolumn=0, parser=None,
             with_filename=False,
             recursive=False, natsort=True, **kwargs):
        """
        Load data from file matched with given glob pattern.

        Return value will be a list of data unless :attr:`unite` is `True`.
        If :attr:`unite` is `True`, all dataset will be united into a single
        data.

        Parameters
        ----------
        pathname : string
            A glob pattern
        using : list of integer, slice instance, or None, optional
            A list of index or slice instance used to slice data into column
            If it is not specified, :attr:`using` specified in constructor
            will be used instead.
        unite : boolean, optional:
            If it is `True` then dataset will be united into a single numpy
            array. See usage for more detail.
        basecolumn : integer, optional
            An index of base column. all data will be trimmed based on the order
            of this column when the number of samples are different among the
            dataset.
            It only affect when :attr:`unite` is specified as `True`.
        parser : instance, optional
            An instance or registered name of parser class.
            If it is not specified, :attr:`parser` specified in constructor
            will be used instead.
        with_filename : boolean, optional
            If it is `True`, returning dataset will contain filename in the
            first column.
            It is cannot be used with :attr:`unite = True`
        recursive : boolean, optional
            Recursively find pattern in the directory
        natsort : boolean
            Naturally sort found files.

        Returns
        -------
        ndarray
            A list of numpy array
        """
        # argument check
        if unite and with_filename:
            raise AttributeError(
                    "`with_filename` attribute cannot be set True when "
                    "`unite` attribute was set True.")
        # make sure that the pathname is absolute
        pathname = os.path.abspath(pathname)
        if recursive:
            filelist = rglob(pathname)
        else:
            filelist = glob(pathname)
        if natsort:
            filelist = natsorted(filelist, number_type=None)
        # create dataset
        dataset =[]
        for filename in filelist:
            data = self.load(
                filename=filename,
                using=using,
                parser=parser,
                **kwargs)
            if with_filename:
                data = [filename] + data
            dataset.append(data)
        # tell the number of files found if verbose is True
        if kwargs.get('verbose', False):
            print "%d files are found with `%s`" % (
                    len(dataset),
                    os.path.relpath(pathname))
        # warn if nothing have found unless quiet is True
        if len(dataset) == 0 and not kwargs.get('quiet', False):
            warnings.warn("Nothing found with glob pattern '%s'" % pathname)
        # unite dataset if specified
        if unite and len(dataset) > 0:
            dataset = unite_dataset(dataset, basecolumn)
        return dataset