gmxn's picture
download
raw
1.55 kB
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.