lanagarmire / deepimpute

An accurate and efficient deep learning method for single-cell RNA-seq data imputation
MIT License
84 stars 27 forks source link

KeyError #22

Closed xuyungang closed 4 years ago

xuyungang commented 4 years ago

Hi, I encountered the following error when running DeepImpute. I have five scRNA-seq datasets with the same set of 10k genes but different numbers of cells: 1k, 5k, 25k, respectively. DeepImpute works well for 5k and 25k datasets but stops with the ERROR message for the 1k dataset. Could you please advise what would be the reason for this. Thanks. The ERROR message:

Using TensorFlow backend. Using all the cores (48) Input dataset is 1000 cells (rows) and 10000 genes (columns) First 3 rows and columns: ENSG00000270110 ENSG00000229578 ENSG00000211688 cell_8485 0 0 284 cell_10307 0 34 243 cell_8957 5 44 201 2560 genes selected for imputation Net 0: 531 predictors, 512 targets Net 1: 536 predictors, 512 targets Traceback (most recent call last): File "/bin/deepImpute", line 11, in load_entry_point('deepimpute==1.1', 'console_scripts', 'deepImpute')() File "/lib/python3.7/site-packages/deepimpute-1.1-py3.7.egg/deepimpute/deepImpute.py", line 30, in deepImpute multi.fit(data, NN_lim=args.limit, cell_subset=args.subset, minVMR=args.minVMR, n_pred=args.n_pred) File "/lib/python3.7/site-packages/deepimpute-1.1-py3.7.egg/deepimpute/multinet.py", line 205, in fit self.setPredictors(covariance_matrix, ntop=ntop) File "/lib/python3.7/site-packages/deepimpute-1.1-py3.7.egg/deepimpute/multinet.py", line 344, in setPredictors .loc[targets] File "/lib/python3.7/site-packages/pandas/core/indexing.py", line 1768, in getitem return self._getitem_axis(maybe_callable, axis=axis) File "/lib/python3.7/site-packages/pandas/core/indexing.py", line 1954, in _getitem_axis return self._getitem_iterable(key, axis=axis) File "/lib/python3.7/site-packages/pandas/core/indexing.py", line 1595, in _getitem_iterable keyarr, indexer = self._get_listlike_indexer(key, axis, raise_missing=False) File "/lib/python3.7/site-packages/pandas/core/indexing.py", line 1553, in _get_listlike_indexer keyarr, indexer, o._get_axis_number(axis), raise_missing=raise_missing File "/lib/python3.7/site-packages/pandas/core/indexing.py", line 1655, in _validate_read_indexer "Passing list-likes to .loc or [] with any missing labels " KeyError: 'Passing list-likes to .loc or [] with any missing labels is no longer supported, see https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#deprecate-loc-reindex-listlike'

Puumanamana commented 4 years ago

Hi Thank you for reporting this bug. Could you share the data with me so that I can investigate more? Also, could you let me know which commands you ran to use DeepImpute?

xuyungang commented 4 years ago

Thank you for your response. Please find one example of data that produce this issue. Thank you. Xu, Yungang (2020): Data_for_DeepImpute. figshare. Dataset. https://doi.org/10.6084/m9.figshare.12083898.v1

Puumanamana commented 4 years ago

Your dataset works for me. What version of pandas do you have?

import pandas
print(pandas.__version__)

Also, what command did you use to run deepImpute?

xuyungang commented 4 years ago

I am using pandas 1.0.3. The command I used is deepImpute -o $outdir --cell-axis columns --batch-size 8 $input. $input is the path to the CSV file. deepImpute works for other files with 5k, 25k cells, which have exactly the same gene numbers as the file failed (1k cells). Thank.

Puumanamana commented 4 years ago

Thank you, I found the error, it should work now. You can reinstall the latest version of DeepImpute and try again.