Skip to content

Commit

Permalink
Merge branch 'release/v1.1.3'
Browse files Browse the repository at this point in the history
  • Loading branch information
pinin4fjords committed Oct 26, 2021
2 parents 05f3003 + b2055e5 commit 46807ed
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 12 deletions.
24 changes: 24 additions & 0 deletions scanpy-scripts-tests.bats
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ setup() {
data_dir="${test_dir}/data"
output_dir="${test_dir}/outputs"
raw_matrix="${data_dir}/matrix.mtx"
raw_matrix_from_raw="${data_dir}/raw/matrix.mtx"
raw_matrix_from_layer="${data_dir}/layer/matrix.mtx"
singlet_obs="${data_dir}/singlet_obs.txt"
batch_obs="${data_dir}/batch_obs.txt"
read_opt="-x $data_dir --show-obj stdout"
Expand Down Expand Up @@ -117,6 +119,28 @@ setup() {
[ -f "$raw_matrix" ]
}

@test "Test MTX write from .raw" {
if [ "$resume" = 'true' ] && [ -f "$raw_matrix_from_raw" ]; then
skip "$raw_matrix exists"
fi

run rm -rf ${data_dir}/raw/* && eval "echo -e \"import scanpy as sc\nfrom scanpy_scripts.cmd_utils import write_mtx\nimport os\nos.makedirs('$data_dir/raw', exist_ok=True)\nadata=sc.datasets.pbmc3k();adata.raw=adata\nwrite_mtx(adata, '$data_dir/raw/', use_raw=True)\" | python"

[ "$status" -eq 0 ]
[ -f "$raw_matrix_from_raw" ]
}

@test "Test MTX write from layers" {
if [ "$resume" = 'true' ] && [ -f "$raw_matrix_from_layer" ]; then
skip "$raw_matrix exists"
fi

run rm -rf ${data_dir}/layer/* && eval "echo -e \"import scanpy as sc\nfrom scanpy_scripts.cmd_utils import write_mtx\nimport os\nos.makedirs('$data_dir/layer', exist_ok=True)\nadata=sc.datasets.pbmc3k();adata.layers['test']=adata.X\nwrite_mtx(adata, '$data_dir/layer/', use_layer='test')\" | python"

[ "$status" -eq 0 ]
[ -f "$raw_matrix_from_layer" ]
}

@test "Make .obs with a singlet cell group" {

if [ "$resume" = 'true' ] && [ -f "$singlet_obs" ]; then
Expand Down
23 changes: 13 additions & 10 deletions scanpy_scripts/cmd_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,6 @@ def _write_obj(
click.echo(adata, err=show_obj == 'stderr')
return 0


def write_mtx(adata, fname_prefix='', var=None, obs=None, use_raw=False, use_layer=None):
"""Export AnnData object to mtx formt
* Parameters
Expand All @@ -141,17 +140,21 @@ def write_mtx(adata, fname_prefix='', var=None, obs=None, use_raw=False, use_lay
var = []
if obs is None:
obs = []
if use_raw:
adata = adata.raw
obs = list(set(obs) & set(adata.obs.columns))
var = list(set(var) & set(adata.var.columns))

import scipy.sparse as sp
if use_layer is not None:
mat=sp.coo_matrix(adata.layer[use_layer])
if use_raw:
var_source = adata.raw.var
mat = sp.coo_matrix(adata.raw.X)
else:
mat = sp.coo_matrix(adata.X)

var_source = adata.var
if use_layer is not None:
mat=sp.coo_matrix(adata.layers[use_layer])
else:
mat = sp.coo_matrix(adata.X)

obs = list(set(obs) & set(adata.obs.columns))
var = list(set(var) & set(var_source.columns))

n_obs, n_var = mat.shape
n_entry = len(mat.data)
header = '%%MatrixMarket matrix coordinate real general\n%\n{} {} {}\n'.format(
Expand All @@ -166,7 +169,7 @@ def write_mtx(adata, fname_prefix='', var=None, obs=None, use_raw=False, use_lay

obs_df = adata.obs[obs].reset_index(level=0)
obs_df.to_csv(barcode_fname, sep='\t', header=False, index=False)
var_df = adata.var[var].reset_index(level=0)
var_df = var_source[var].reset_index(level=0)
if not var:
var_df['gene'] = var_df['index']
var_df.to_csv(gene_fname, sep='\t', header=False, index=False)
Expand Down
5 changes: 3 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

setup(
name='scanpy-scripts',
version='1.1.2',
version='1.1.3',
author='nh3',
author_email='[email protected]',
description='Scripts for using scanpy from the command line',
Expand Down Expand Up @@ -52,6 +52,7 @@
'bbknn>=1.5.0',
'mnnpy>=0.1.9.5',
'scrublet',
'scikit-misc'
'scikit-misc',
'fa2'
],
)

0 comments on commit 46807ed

Please sign in to comment.