Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
cache_compression=_empty,
):
"""
Read mex from output from Cell Ranger v3 or later versions
"""
path = Path(path)
adata = read(
path / 'matrix.mtx.gz',
cache=cache,
cache_compression=cache_compression
).T # transpose the data
genes = pd.read_csv(path / 'features.tsv.gz', header=None, sep='\t')
if var_names == 'gene_symbols':
var_names = genes[1]
if make_unique:
var_names = anndata.utils.make_index_unique(pd.Index(var_names))
adata.var_names = var_names
adata.var['gene_ids'] = genes[0].values
elif var_names == 'gene_ids':
adata.var_names = genes[0]
adata.var['gene_symbols'] = genes[1].values
else:
raise ValueError("`var_names` needs to be 'gene_symbols' or 'gene_ids'")
adata.var['feature_types'] = genes[2].values
adata.obs_names = pd.read_csv(path / 'barcodes.tsv.gz', header=None)[0]
return adata
cache_compression=_empty,
):
"""
Read mex from output from Cell Ranger v2 or earlier versions
"""
path = Path(path)
adata = read(
path / 'matrix.mtx',
cache=cache,
cache_compression=cache_compression,
).T # transpose the data
genes = pd.read_csv(path / 'genes.tsv', header=None, sep='\t')
if var_names == 'gene_symbols':
var_names = genes[1]
if make_unique:
var_names = anndata.utils.make_index_unique(pd.Index(var_names))
adata.var_names = var_names
adata.var['gene_ids'] = genes[0].values
elif var_names == 'gene_ids':
adata.var_names = genes[0]
adata.var['gene_symbols'] = genes[1].values
else:
raise ValueError("`var_names` needs to be 'gene_symbols' or 'gene_ids'")
adata.obs_names = pd.read_csv(path / 'barcodes.tsv', header=None)[0]
return adata