Skip to content

Commit 46807ed

Browse files
committed
Merge branch 'release/v1.1.3'
2 parents 05f3003 + b2055e5 commit 46807ed

File tree

3 files changed

+40
-12
lines changed

3 files changed

+40
-12
lines changed

scanpy-scripts-tests.bats

+24
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ setup() {
77
data_dir="${test_dir}/data"
88
output_dir="${test_dir}/outputs"
99
raw_matrix="${data_dir}/matrix.mtx"
10+
raw_matrix_from_raw="${data_dir}/raw/matrix.mtx"
11+
raw_matrix_from_layer="${data_dir}/layer/matrix.mtx"
1012
singlet_obs="${data_dir}/singlet_obs.txt"
1113
batch_obs="${data_dir}/batch_obs.txt"
1214
read_opt="-x $data_dir --show-obj stdout"
@@ -117,6 +119,28 @@ setup() {
117119
[ -f "$raw_matrix" ]
118120
}
119121

122+
@test "Test MTX write from .raw" {
123+
if [ "$resume" = 'true' ] && [ -f "$raw_matrix_from_raw" ]; then
124+
skip "$raw_matrix exists"
125+
fi
126+
127+
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"
128+
129+
[ "$status" -eq 0 ]
130+
[ -f "$raw_matrix_from_raw" ]
131+
}
132+
133+
@test "Test MTX write from layers" {
134+
if [ "$resume" = 'true' ] && [ -f "$raw_matrix_from_layer" ]; then
135+
skip "$raw_matrix exists"
136+
fi
137+
138+
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"
139+
140+
[ "$status" -eq 0 ]
141+
[ -f "$raw_matrix_from_layer" ]
142+
}
143+
120144
@test "Make .obs with a singlet cell group" {
121145

122146
if [ "$resume" = 'true' ] && [ -f "$singlet_obs" ]; then

scanpy_scripts/cmd_utils.py

+13-10
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,6 @@ def _write_obj(
120120
click.echo(adata, err=show_obj == 'stderr')
121121
return 0
122122

123-
124123
def write_mtx(adata, fname_prefix='', var=None, obs=None, use_raw=False, use_layer=None):
125124
"""Export AnnData object to mtx formt
126125
* Parameters
@@ -141,17 +140,21 @@ def write_mtx(adata, fname_prefix='', var=None, obs=None, use_raw=False, use_lay
141140
var = []
142141
if obs is None:
143142
obs = []
144-
if use_raw:
145-
adata = adata.raw
146-
obs = list(set(obs) & set(adata.obs.columns))
147-
var = list(set(var) & set(adata.var.columns))
148143

149144
import scipy.sparse as sp
150-
if use_layer is not None:
151-
mat=sp.coo_matrix(adata.layer[use_layer])
145+
if use_raw:
146+
var_source = adata.raw.var
147+
mat = sp.coo_matrix(adata.raw.X)
152148
else:
153-
mat = sp.coo_matrix(adata.X)
154-
149+
var_source = adata.var
150+
if use_layer is not None:
151+
mat=sp.coo_matrix(adata.layers[use_layer])
152+
else:
153+
mat = sp.coo_matrix(adata.X)
154+
155+
obs = list(set(obs) & set(adata.obs.columns))
156+
var = list(set(var) & set(var_source.columns))
157+
155158
n_obs, n_var = mat.shape
156159
n_entry = len(mat.data)
157160
header = '%%MatrixMarket matrix coordinate real general\n%\n{} {} {}\n'.format(
@@ -166,7 +169,7 @@ def write_mtx(adata, fname_prefix='', var=None, obs=None, use_raw=False, use_lay
166169

167170
obs_df = adata.obs[obs].reset_index(level=0)
168171
obs_df.to_csv(barcode_fname, sep='\t', header=False, index=False)
169-
var_df = adata.var[var].reset_index(level=0)
172+
var_df = var_source[var].reset_index(level=0)
170173
if not var:
171174
var_df['gene'] = var_df['index']
172175
var_df.to_csv(gene_fname, sep='\t', header=False, index=False)

setup.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
setup(
77
name='scanpy-scripts',
8-
version='1.1.2',
8+
version='1.1.3',
99
author='nh3',
1010
author_email='[email protected]',
1111
description='Scripts for using scanpy from the command line',
@@ -52,6 +52,7 @@
5252
'bbknn>=1.5.0',
5353
'mnnpy>=0.1.9.5',
5454
'scrublet',
55-
'scikit-misc'
55+
'scikit-misc',
56+
'fa2'
5657
],
5758
)

0 commit comments

Comments
 (0)