scDeepCluster_pytorch代码解读与文章理解

scDeepCluster是一个基于模型的深度学习工具,用于对单细胞RNA-seq数据进行聚类。该方法结合了自动编码器和Louvain算法,允许用户预设或自动估计聚类数量。数据预处理包括基因选择、归一化和缩放。模型通过预训练和聚类阶段进行优化,输出包括细胞的低维表示和聚类标签。该代码库提供了一种标准化流程,用于处理和分析单细胞数据。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

论文:Clustering single-cell RNA-seq data with a
model-based deep learning approach
代码:https://github.com/ttgump/scDeepCluster

环境要求:

pytorch 1.8.0
python 3.9
本电脑conda 名称为python39
使用时需要激活环境: conda activate python39

参数

——n_clusters: 聚类数量,如果设置为0,则通过Louvain算法对预训练后的潜在特征进行估计。如果设置为整数> 0,则模型将使用用户定义的值作为簇数。
——knn: Louvain算法中使用的最近邻数,默认值= 20。当设置n_clusters > 0时不使用
——resolution: Louvain算法的分辨率,默认值= 0.8。较大的值将导致更多的集群数。当设置n_clusters > 0时不使用。
——select_genes: 用于分析的选定基因的数量,default = 0。它将使用均值-方差关系来选择信息丰富的基因。建议选择前2000个基因,但这取决于不同的数据集。
——batch_size: 批 处理大小,默认= 256。
——data_file: 数据的文件名。
——maxiter: 集群阶段的最大迭代数,默认= 2000。
——pretrain_epochs: 预训练迭代,默认= 300。
——gamma: 聚类损失系数,default = 1。
——sigma: 随机高斯噪声的系数,默认值为2.5。
——update_interval: 更新集群目标的迭代次数,默认= 1。
——tol: 终止聚类阶段的容忍度,即两个连续迭代之间预测标签的增量,default = 0.001。
——final_latent_file: 输出自动编码器的最终潜在表示的文件名,default = final_latent_file.txt。
——predict_label_file: 用于输出集群标签的文件名,default = pred_labels.txt。Louvain算法中使用的最近邻数,默认值= 20。当设置n_clusters > 0时不使用

输出

final_latent: scRNA-seq数据的低维表示,默认形状(n_cells, 32),可以通过t-SNE或UMAP可视化。
Predict_label: 预测的聚类标签,形状(n_cells)。

运行

对于单细胞计数数据:
python run_scDeepCluster.py --data_file data.h5 --n_clusters 0
将data_file设置为目标数据(以h5格式存储),具有两个组件X和Y,其中X是细胞按基因计数矩阵,Y是真实标签。Y是可选的),n_clusters为聚类的数量(0表示通过Louvain算法对预训练的潜在特征进行自动估计)。

代码

run_scDeepCluster.py

获取数据,将数据转化为python中存储单细胞数据的格式–AnnData

    data_mat = h5py.File(args.data_file, 'r')
    x = np.array(data_mat['X'])
    # y is the ground truth labels for evaluating clustering performance
    # If not existing, we skip calculating the clustering performance metrics (e.g. NMI ARI)
    if 'Y' in data_mat:
        y = np.array(data_mat['Y'])
    else:
        y = None
    data_mat.close()

    if args.select_genes > 0:
        importantGenes = geneSelection(x, n=args.select_genes, plot=False)
        x = x[:, importantGenes]

    # preprocessing scRNA-seq read counts matrix
    adata = sc.AnnData(x)

划分数据集

	adata = adata

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值