单细胞聚类方法SC3疯狂报错——Error in [.default(clusts, , paste0(“sc3_“, hash.table[i, 1], “_clusters“))

SC3 - consensus clustering of single-cell RNA-Seq data这是scRNA-seq聚类方法里面比较经典的聚类方法,在跑数据集的时候,几个一千多个细胞的小数据集没有报错,但是运行一个5000+细胞以上的数据集时,在这步:

sce <- sc3(sce, ks = 9 ,n_cores = 30)

疯狂报错!!!
在这里插入图片描述
就很无语,难道这种经典方法我都跑不通嘛!到了推理原因的时刻了
First,小数据集上我能跑通,所以问题不是在这个方法上,应该是因为数据集大小的改变,哪些参数不合适了,second, 我去看了SC3的手册:https://bioconductor.org/packages/release/bioc/manuals/SC3/man/SC3.pdf
在这里插入图片描述
发现kmeans_nstart这个参数以2000个数据为分界,小于2000,参数设置为1000,大于2000设置为50,finally, 将代码改成:

sce <- sc3(sce, ks = 9 ,n_cores = 30,kmeans_nstart = 50)

即可解决问题!
遇到问题,推理出问题原因哇!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于包含分类变量和数值变量的数据进行聚类分析,可以使用 k-prototypes 算法。k-prototypes 算法是 k-means 聚类算法的扩展,它可以同时处理数值型和分类型变量,是一种非常适合处理混合型数据的聚类算法。 在 Python 中,可以使用 kmodes 包中的 KPrototypes 类来实现 k-prototypes 算法。以下是一个简单的示例: ``` python from kmodes.kprototypes import KPrototypes import numpy as np # 定义数据集,其中第一列是分类变量,第二列是数值变量 X = np.array([ ["A", 1], ["B", 2], ["C", 3], ["A", 4], ["B", 5], ["C", 6] ]) # 定义数值变量的权重 w = [0, 1] # 聚类分析 kproto = KPrototypes(n_clusters=2, init='Cao', verbose=2) clusters = kproto.fit_predict(X, categorical=[0], weights=w) # 打印聚类结果 print(clusters) ``` 在上面的示例中,我们首先定义了一个包含分类变量和数值变量的数据集 X。然后,我们定义了数值变量的权重 w,其中 w[0] 表示分类变量的权重,w[1] 表示数值变量的权重。接下来,我们使用 KPrototypes 类来进行聚类分析,其中 n_clusters 表示聚类的数量,init 表示初始化算法,categorical=[0] 表示第一列是分类变量,weights=w 表示数值变量的权重。最后,我们打印出聚类结果 clusters。 需要注意的是,k-prototypes 算法的计算复杂度较高,因此在处理大型数据集时可能需要使用分布式计算或者降维等技术来加速计算。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值