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

anndata k折交叉

如何将anndata拆分为k份

import scanpy as sc
import anndata as adclass KSplitAnndata:@staticmethoddef _base_split(data: object, k: int) -> list:adata = data.copy()num = adata.n_obs // kadata_list = []for i in range(k):if num <= adata.n_obs:adata_list.append(sc.pp.subsample(adata, n_obs=num, copy=True))adata = adata[~adata.obs_names.isin(adata_list[i].obs_names)]else:adata_list.append(adata)return adata_list@staticmethoddef k_split(data: object, k: int, batch_key: str = None) -> list:""":param data: anndata object:param k: k fold:param batch_key: split by batch, default is None"""adata = data.copy()if batch_key:adata_batch_list = []adata_list = []batch_tuple = set(adata.obs[batch_key])for batch in batch_tuple:adata_batch = adata[adata.obs[batch_key]==batch]adata_batch_list.append(KSplitAnndata._base_split(adata_batch, k))for i in range(k):adata_list.append(ad.concat([adata_batch[i] for adata_batch in adata_batch_list]))else:adata_list = KSplitAnndata._base_split(adata, k)return adata_list# example
adata_list = KSplitAnndata.k_split(adata, 5, "batch")
http://www.lryc.cn/news/106227.html

相关文章:

  • 深入解析项目管理中的用户流程图
  • Vue使用QrcodeVue生成二维码并下载
  • “用户登录”测试用例总结
  • 适应于Linux系统的三种安装包格式 .tar.gz、.deb、rpm
  • Linux lvs负载均衡
  • Tomcat 创建https
  • 超导电性的基本现象和相关理论
  • 在 PHP 中单引号(‘ ‘)和双引号(“ “)用法的区别
  • SpringCloudAlibaba:服务网关之Gateway的cors跨域问题
  • react中的高阶组件理解与使用
  • “从零开始学习Spring Boot:构建高效的Java应用程序“
  • 容器部署jenkins定时构建于本地时间不一致
  • 生成指定网段的IP字典自动化脚本
  • Java版工程行业管理系统源码-专业的工程管理软件- 工程项目各模块及其功能点清单 em
  • 《向量数据库指南》——大模型时代,为什么向量数据库成为标配?
  • Pytorch个人学习记录总结 10
  • 18款奔驰S320升级后排座椅加热功能,提升后排乘坐舒适性
  • Vue中的插值表达式
  • 背包问题(模板)
  • docker容器创建私有仓库(第三篇)
  • Eureka 学习笔记4:客户端 DiscoveryClient
  • 【方法】PDF可以转换成Word文档吗?如何操作?
  • AlphaControls crack
  • 论文笔记——Influence Maximization in Undirected Networks
  • Stable Diffusion - SDXL 1.0 全部样式设计与艺术家风格的配置与提示词
  • Hbase pe 压测 OOM问题解决
  • 问题解决——datagrip远程连接虚拟机中ubuntu的mysql失败
  • 【晚风摇叶之随机密码生成器】随机生成密码
  • Spring Cache
  • em3288 linux_4.19 sd卡调试