Source code for sc_utils.io

import gzip
import os

import pandas as pd
import scipy.io


[docs]def write_mtx(adata, output_dir): """\ Save scanpy object in mtx cellranger v3 format. Saves basic information from adata object as cellranger v3 mtx folder. Saves only ``adata.var_names``, ``adata.obs_names`` and ``adata.X`` fields. Creates directory ``output_dir`` if it does not exist. Creates 3 files: ``features.tsv.gz``, ``barcodes.tsv.gz`` and ``matrix.mtz.gz``. Will overwrite files in the output directory. Parameters ---------- adata Annotated data matrix. output_dir Directory where to save results """ pd.DataFrame({ 0: adata.var_names, 1: adata.var_names, 2: "Gene Expression" }).to_csv( os.path.join(output_dir, "features.tsv.gz"), sep="\t", index=False, header=False ) pd.DataFrame(adata.obs_names).to_csv( os.path.join(output_dir, "barcodes.tsv.gz"), sep="\t", index=False, header=False ) if not os.path.exists(output_dir): os.makedirs(output_dir) with gzip.open(os.path.join(output_dir, "matrix.mtx.gz"), "wb") as f: scipy.io.mmwrite(f, adata.X.T)