sc.pp.normalize_per_cell和sc.pp.normalize_total()

scanpy的标准化从sc.pp.normalize_per_cell()更新成了sc.pp.normalize_total(),它官方也是建议用后者(当然前面这个函数仍然存在,且可以正常使用)。二者目的是基本一致的,处理数据的过程也没变,但是存在细微的差别,总体而言就是新的sc.pp.normalize_total()在参数设置方面更加人性化了。如下是旧的sc.pp.normalize_per_cell()警告。

官方对于使用旧版sc.pp.normalize_per_cell函数的警告

最大的区别用人话来说,就是它不会自动给你过滤了,原来这个函数默认旧把min_counts<1的基因给去除了,实际上许多时候也无伤大雅,但是有时我们并不像这个潜在的var过滤发生,所以在新版的sc.pp.normalize_total()就把这个去除掉了,你需要结合使用filter()自己人为决定是否需要操作基因数目的变更。

此外,如果scanpy标准化环节出现以下报错,也是把sc.pp.normalize_per_cell()换成使用sc.pp.normalize_total()可以解决:

numpy.core._exceptions._UFuncOutputCastingError: Cannot cast ufunc 'divide' output from dtype('float64') to dtype('uint64') with casting rule 'same_kind'
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容