Converting adata.X to csr or csc matrix when loading adata
The anndata object supports multiple types of matrices. When loading the data we should check for the datatype and convert it to scipy.sparse.csr or scipy.sparse.csc matrix.
The predict_sex()
currently only works with csr or csc matrices. If .X contains a numpy.ndarry following error occurs:
Normalizing adata
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
Cell In [133], line 2
1 if predict_sex:
----> 2 qc.predict_sex(adata, groupby=condition_column, gene_column=gene_column, gene=female_gene,
3 save="female_prediction.pdf"
4 )
5 adata.uns["infoprocess"]["plot_metrics"].append("predicted_sex")
File /mnt/workspace/rwiegan/git/sc_framework/sctoolbox/qc_filter.py:181, in predict_sex(adata, groupby, gene, gene_column, threshold, plot, save)
179 print("Selected gene is not present in the data. Prediction is skipped.")
180 return
--> 181 adata_copy.obs["gene_expr"] = adata_copy.X[:, gene_index].todense().A1
183 # Estimate which samples are male/female
184 print("Estimating male/female per group")
AttributeError: 'numpy.ndarray' object has no attribute 'todense'