【dropClust】手把手教你进行全基因组尺度鉴定并可视化群体遗传结构

今天小花给大家介绍一个简单好用的生信分析工具箱——dropClust 是一个用于在全基因组尺度鉴定并可视化群体遗传结构的R包。

它能够处理大型多维数据集并且能高效地计算并显示聚类分析的结果。此外,它具有一个强大的图形用户界面使得它对于初学者也易于使用。

dropClust 在以下方面具有特色:

  • 高效且灵活的算法:使用高效的计算算法来处理大型多维数据集,并且能够自由调整聚类数目和其它关键参数。
  • 可扩展性:计算和内存使用效率高,可以在常规个人电脑或小型服务器上运行,无需特殊的硬件配置。
  • 数据可视化:通过多种图形输出方式,用户可以直观地查看和理解聚类结果。
  • 用户友好的界面:具有简洁明了的图形用户界面,使得该软件易于使用,即使是对于没有编程经验的人也是如此。
  • 广泛的应用领域:适用于各种群体遗传学研究领域,例如人类遗传学、动植物遗传学、微生物基因组学等。

1安装

下面小花来教你如何进行安装吧~

R软件包的开发版本可以使用以下R命令进行安装:

library(devtools)
install_github(“debsin/dropClust”, dependencies = T)

2使用示例

小花通过一个例子教会你如何使用它吧~

小花使用 10X 网站上的一个小数据集(此处为 3K PBMC 数据集)来演示标准管道。

2.1设置目录

library(dropClust)
set.seed(0)

2.2加载数据

dropClust从三个输入文件中加载UMI计数表达数据。这些文件与10X网站上可用的数据集采用相同的结构,即:

  • 以稀疏格式计算矩阵文件中的计数
  • 以TSV文件形式提供转录组标识符
  • 以TSV文件形式提供基因标识符

# 加载数据,路径包含解压文件
sce <-readfiles(path = “C:/Projects/dropClust/data/pbmc3k/hg19/”)

2.3预处理

dropClust执行预处理以去除质量较差的细胞和基因。dropClust还可以减轻可能存在的批次效应。用户无需提供有关各个转录组批次来源的任何信息。但是,批次效应消除步骤是可选择的。
根据参数min_count指定的细胞中总UMI计数对细胞进行过滤。根据给定阈值min_count以上表达的细胞的最小数量min_count,删除质量较差的基因。

# 过滤质量较差的单元格。 阈值 th 相当于单元格的总计数。
sce<-FilterCells(sce)
sce<-FilterGenes(sce)

2.3.1数据标准化和去除低质量基因

然后仅对高质量基因进行计数归一化。在SingleCellExperiment对象中使用原始计数数据计算归一化表达值,使用中位数归一化总计数。

sce<-CountNormalize(sce)

2.3.2选择高变异基因

通过根据基因的离散度指数对其进行排名来进行进一步基因选择。

# 通过设置 ngenes_keep,选择顶级分散基因。
sce<-RankGenes(sce, ngenes_keep = 1000)

2.4结构保持取样

首先以快速的方式执行聚类以估计数据的粗略结构。然后对这些聚类中的每一个进行采样以微调聚类过程。

sce<-Sampling(sce)

2.5基于 PCA 的基因选择

另一种基因选择是为了降低维度数量。PCA被用来识别影响主要成分的基因。

# Find PCA top 200 genes. This may take some time.
sce<-RankPCAGenes(sce)

2.6聚类分析

2.6.1微调聚类过程

默认情况下,返回的是基于Louvain算法的最佳拟合聚类。但是,用户可以调整参数以生成所需数量的聚类。未采样的转录组被分配从精细调整聚类所产生的标识符中获得聚类标识符。后验赋值可以通过设置信心值“conf”来控制。较高的“conf”值将仅向共享大多数最近邻居的转录组分配聚类标识符。

# 当 `method = hclust` 时
# 使用参数 minClusterSize 调整最小聚类大小(默认值 = 20)
# 使用参数 level deepSplit(默认值 = 3)调整树切割,数值越大,产生的聚类越多。
sce<-Cluster(sce, method = “default”, conf = 0.8)

2.7可视化聚类结果

为样品计算2D嵌入,然后进行事后聚类。

sce<-PlotEmbedding(sce, embedding = “umap”, spread = 10, min_dist = 0.1)

plot_data = data.frame(“Y1″ = reducedDim(sce,”umap”)[,1], Y2 = reducedDim(sce, “umap”)[,2], color = sce$ClusterIDs)

ScatterPlot(plot_data,title = “Clusters”)

2.8找到特定簇中差异表达的基因

DE_genes_all = FindMarkers(sce, selected_clusters=NA, lfc_th = 1, q_th =0.001, nDE=30)

write.csv(DE_genes_all$genes,
file = file.path(tempdir(),”ct_genes.csv”),
quote = FALSE)

2.9绘制手工挑选的标记基因图

marker_genes = c(“S100A8”, “GNLY”, “PF4”)

p<-PlotMarkers(sce, marker_genes)

2.10每个聚类前 DE 基因的热图

# Draw heatmap
p<-PlotHeatmap(sce, DE_res = DE_genes_all$DE_res,nDE = 10)

print(p)

以上就是小花带你学习的全部,快动手用起来吧~它还有在线工具,是编程小白的分析利器。

如果小伙伴有其他数据分析需求,可以尝试使用本公司新开发的生信分析小工具云平台,零代码完成分析,非常方便奥,云平台网址为:(http://www.biocloudservice.com/home.html),其中也包括了通路表达分析(http://www.biocloudservice.com/313/313.php),单细胞的基因共表达分析(http://www.biocloudservice.com/906/906.php)等各种小工具哦~,有兴趣的小伙伴可以登录网站进行了解。

参考文献

Debajyoti Sinha, Pradyumn Sinha, Ritwik Saha, Sanghamitra Bandyopadhyay, Debarka Sengupta, Improved dropClust R package with integrative analysis support for scRNA-seq data, Bioinformatics, Volume 36, Issue 6, March 2020, Pages 1946–1947, https://doi.org/10.1093/bioinformatics/btz823