当前位置: 首页 > article >正文

专栏二十三:Python读取和分析空间数据的经验杂谈

部分情况同样适合单细胞的分析结果

读取数据阶段

1.错误的library_id

包括sc和sq的两种读取方式,大同小异。

理论上有h5数据和spatial文件夹就可以读取成功,并且自动赋予和文件名一样的library_id,例如

slide = sq.read.visium("/home/data/STdata/T911")

然后检查library_id的方式为

slide.uns['spatial'].keys()

理论上应该自动匹配文件名,给到T911,但是我在实践中有一个样本被错误的赋予library_id

修正结果的方法就是强行指定id,这样就正常了,建议常规指定id

slide = sq.read.visium("/home/data/STdata/T911",library_id="T911")
slide.uns['spatial'].keys()

2.错误的orig.ident

受限于python中没有R内的@或者$的方式,一般以来adata.obs的方式向下取层次,那么个别时候如果命名中本身就有点(.)的情况,比如orig.ident,极有可能受到影响,尤其是对于Seurat转scanpy的时候更容易出现,毕竟scanpy自己是没有orig.ident的。这种我本人遇到过类似报错。随便举例也可以看到很多参数使用的都是下划线。

解决方法很简单就是给个特殊一点的名字就好啦

adata.obs['sample'] = sample_name

但这里还有个要注意的地方,那就是下一点--字符串

3.字符串/格式错误

在R中我们常用class和str函数观察格式,python中更是大坑,稍不留神数字/数值和字符串等异常都会报错。所以为了避免此类情况,强制性转换字符串

adata.obs["sample"] = [str(i) for i in adata.obs['sample']]

4.barcode的样本编号

这个属于如果有多样本,不增加会出现barcode的重复

增加方式:样本名+barcodes

    adata.obs_names = adata.obs["sample"] \
                          + '_' + adata.obs_names

5.增加barcode索引

正常情况下,adata.obs并不会出现barcodes的列名,默认为空,为了方便观察和索引,可以给这一列命名。

adata.obs.index.name = 'spot_id'


http://www.kler.cn/a/451213.html

相关文章:

  • EasyExcel 模板+公式填充
  • 一次成功流水账-RBDL库的安装与验证
  • LabVIEW中什么和C 语言指针类似?
  • 对javascript语言标准函数与箭头函数中this的理解(补充)
  • Golang学习历程【第三篇 基本数据类型类型转换】
  • FPGA(一)verilog语句基础
  • D105【python 接口自动化学习】- pytest进阶参数化用法
  • 【linux】NFS实验
  • dns一般设置为多少
  • Windows安装无线打印机
  • oracle linux8.10+ oracle 23ai安装
  • Yolo算法中特征相似导致误报问题
  • Springboot基于Web的辅助教学平台ln5i2(程序+源码+数据库+调试部署+开发环境)
  • Redis热点数据管理全解析:从MySQL同步到高效缓存的完整解决方案
  • 155. 最小栈
  • EasyExcel停更,FastExcel接力
  • 联通光猫怎么自己改桥接模式?
  • WebStorm 创建一个Vue项目
  • [Unity Shader] 【图形渲染】Shader数学基础12-坐标空间变换
  • B树的实现
  • 具身智能打响争夺战:自主感知、行动与进化简史(连载1)
  • Ubuntu国内安装Gradle
  • 免费 IP 归属地接口
  • stm32定时器输出比较----驱动步进电机
  • 时频转换 | Matlab暂态提取变换transient-extracting transform一维数据转二维图像方法
  • VUE 3.0 如何新建项目 详细教程 附环境搭建 推荐