用的别人写的paga.py代码,整合了多个工作模块,无法公开,但也是调用scanpy里边的paga程序,可能出现的报错应该也差不多
1. ImportError: dlopen: cannot load any more object with static TLS
一个非常玄学的bug,不仅仅会出现在运行scanpy,在运行别的程序也可能存在同样的bug。其报错的可能原因是调用的igraph模块和之前调用的模块在加载时发生冲突,已解决,链接如下:
2. AttributeError: Can only use .cat accessor with a 'category' dtype
meta.data数据属性问题,举例如下:
在R中对单细胞数据分析时,meta.data中会有各种自己生成的描述性统计量,比如我的就包含samplename, seurat_clusters, annotation, cell type等,这些统计量的数据类型有的是double, integer, character和factor,这个报错的原因就出在了这里。
在进行PAGA轨迹分析时需要将R中的单细胞数据转换为.h5ad文件,作为PAGA的输入文件,PAGA在读取数据时也会进行一定的处理。在分析分化轨迹时,我们可以指定一个描述性统计量进行轨迹分析,例如seurat_clusters或celltype,此时的seurat_clusters或celltype的数据属性必须是character。生成.h5ad文件之前尽量将可能需要的描述性统计量的数据类型转换为character。
3. TypeError: sparse matrix length is ambiguous; use getnnz() or shape[0]
PAGA更倾向于对复杂的细胞类型进行轨迹分析,这个报错的原因数据量太少,细胞类型简单,矩阵稀疏,比如我的一个example数据只包含脂肪细胞和前体脂肪细胞,就出现了这种报错。这种简单的数据可以用monocle进行轨迹分析