diff --git a/scGeneFit/data_files/__init__.py b/scGeneFit/data_files/__init__.py index f8cc2ed..6f4749d 100644 --- a/scGeneFit/data_files/__init__.py +++ b/scGeneFit/data_files/__init__.py @@ -1,4 +1,5 @@ +import scipy.io try: import importlib.resources as importlib_resources except ImportError: @@ -6,5 +7,6 @@ import importlib_resources def get_data(filename): - with importlib_resources.path(__name__, filename) as foo: - return str(foo) \ No newline at end of file + src = importlib_resources.files(__name__).joinpath(filename) + with importlib_resources.as_file(src) as foo: + return scipy.io.loadmat(str(foo)) diff --git a/scGeneFit/functions.py b/scGeneFit/functions.py index 47d008b..2b21b14 100644 --- a/scGeneFit/functions.py +++ b/scGeneFit/functions.py @@ -358,7 +358,7 @@ def performance(self, markers): def load_example_data(name): if name=="CITEseq": - a = scipy.io.loadmat(data_files.get_data("CITEseq.mat")) + a = data_files.get_data("CITEseq.mat") data= a['G'].T N,d=data.shape #transformation from integer entries @@ -366,32 +366,32 @@ def load_example_data(name): for i in range(N): data[i,:]=data[i,:]/np.linalg.norm(data[i,:]) #load labels from file - a = scipy.io.loadmat(data_files.get_data("CITEseq-labels.mat")) + a = data_files.get_data("CITEseq-labels.mat") l_aux = a['labels'] labels = np.array([i for [i] in l_aux]) #load names from file - a = scipy.io.loadmat(data_files.get_data("CITEseq_names.mat")) + a = data_files.get_data("CITEseq_names.mat") names=[a['citeseq_names'][i][0][0] for i in range(N)] return [data, labels, names] elif name=="zeisel": #load data from file - a = scipy.io.loadmat(data_files.get_data("zeisel_data.mat")) + a = data_files.get_data("zeisel_data.mat") data= a['zeisel_data'].T N,d=data.shape #load labels (first level of the hierarchy) from file - a = scipy.io.loadmat(data_files.get_data("zeisel_labels1.mat")) + a = data_files.get_data("zeisel_labels1.mat") l_aux = a['zeisel_labels1'] l_0=[l_aux[i][0] for i in range(l_aux.shape[0])] #load labels (second level of the hierarchy) from file - a = scipy.io.loadmat(data_files.get_data("zeisel_labels2.mat")) + a = data_files.get_data("zeisel_labels2.mat") l_aux = a['zeisel_labels2'] l_1=[l_aux[i][0] for i in range(l_aux.shape[0])] #construct an array with hierarchy labels labels=np.array([l_0, l_1]) # load names from file - a = scipy.io.loadmat(data_files.get_data("zeisel_names.mat")) + a = data_files.get_data("zeisel_names.mat") names0=[a['zeisel_names'][i][0][0] for i in range(N)] names1=[a['zeisel_names'][i][1][0] for i in range(N)] return [data, labels, [names0,names1]]