Buckets:
| import numpy as np | |
| import pandas as pd | |
| import anndata as ad | |
| from scipy.sparse import csr_matrix | |
| import os | |
| gene_names = pd.read_csv('OS_scRNA_gene_index.19264.tsv', sep='\t')['gene_name'].to_numpy() | |
| dataset = 'Segerstolpe' # zheng, Segerstolpe | |
| counts = {} | |
| labels = {} | |
| for split in ['train', 'valid', 'test']: | |
| if dataset == 'zheng': | |
| counts[split] = csr_matrix(np.load(os.path.join(f'./cell_type_rawdata/{dataset}/', f'data_{split}_count.npy'))) # expression counts | |
| labels[split] = np.load(os.path.join(f'./cell_type_rawdata/{dataset}/', f'{dataset}-{split}-label.npy')) # integer class labels | |
| elif dataset == 'Segerstolpe': | |
| counts[split] = csr_matrix(np.load(os.path.join(f'./cell_type_rawdata/{dataset}/', f'data-{split}-count.npy'))) # expression counts | |
| labels[split] = np.load(os.path.join(f'./cell_type_rawdata/{dataset}/', f'{dataset}-{split}-label.npy')) # integer class labels | |
| class_names = np.load(os.path.join(f'./cell_type_rawdata/{dataset}/', f'{dataset}-str_label.npy')) # class names | |
| write_dir = f'../../{dataset}' | |
| os.makedirs(write_dir, exist_ok=True) | |
| for split in ['train', 'valid', 'test']: | |
| cur_adata = ad.AnnData(counts[split]) | |
| cur_adata.obs_names = [f'Cell_{i:d}' for i in range(cur_adata.n_obs)] | |
| cur_adata.obs['cell_type_label'] = labels[split] | |
| cur_adata.var_names = [f'Gene_{i:d}' for i in range(cur_adata.n_vars)] | |
| cur_adata.var['gene_symbols'] = gene_names | |
| cur_adata.uns['cell_type_names'] = class_names | |
| cur_adata.write(f'{write_dir}/{dataset}_{split}.h5ad') | |
Xet Storage Details
- Size:
- 1.55 kB
- Xet hash:
- c2ab47380b852e2e903a8775ee27f3616ebd612f695917bf2a49bdc663caaa19
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.