#1.WGCNA这两种类型(networkType及TOMType)该如何选择?
#2.从网上及个视频学习网站所查阅的资料如下,下列unsigned与signed的各自所代表的意义?
#3.还有就是我的数据集中是包含负值的,所以依据网络上大神的代码,应该选择unsigned还是signed?
1、WGCNA是一种基于共表达网络构建的基因聚类分析方法。在使用WGCNA时,需要选择网络类型(networkType)和TOM类型(TOMType)。
networkType: 用于定义如何构建共表达网络,常见的networkType有"unsigned"和"signed"两种类型。unsigned类型适用于基于Pearson相关系数构建的无向共表达网络;signed类型适用于基于Spearman相关系数构建的有向共表达网络。一般情况下,使用unsigned网络即可。
TOMType: 用于定义如何计算基于Topological Overlap Measure(TOM)的相似性矩阵。常见的TOMType有"unsigned"和"signed"两种类型。unsigned类型适用于构建无向TOM相似性矩阵;signed类型适用于构建有向TOM相似性矩阵。在大多数情况下,使用unsigned类型即可。
2、unsigned和signed是两种数据类型,它们分别表示有符号数和无符号数。在使用这两种数据类型时,需要注意以下几点:
signed表示有符号数,取值范围为-2^(n-1)到2^(n-1)-1,其中n表示该数据类型的位数。
unsigned表示无符号数,取值范围为0到2^n-1,其中n表示该数据类型的位数。
在处理数据时,如果需要使用负数,则应使用signed数据类型。如果只需要使用非负数,则可以使用unsigned数据类型。
在使用WGCNA时,如果需要处理包含负值的数据集,则应该使用signed数据类型。
3、因为您的数据集中包含负值,所以建议您使用signed数据类型。
以下答案由GPT-3.5大模型与博主波罗歌共同编写:
WGCNA的网络类型(networkType)和TOM类型(TOMType)的选择取决于您的数据集以及您的研究问题。对于较小的数据集或者已知有基因表达差异的实验,可以选择Pearson系数或者Spearman系数来计算基因的相关性,并以此构建无向的基因共表达网络(unweighted gene co-expression network)。对于更大的数据集或者不确定哪些基因参与了共表达,可以选择相似度矩阵法或者WGCNA中的TOM算法来构建基因共表达网络,其中TOM(Type of network topology)算法是一种用来分析基因共表达网络的算法,可以在较快的时间内大规模计算基因相关性。
unsigned和signed表示的是数据类型的范围,unsigned表示只能存储正整数,而signed可以存储正数、负数和0。在WGCNA中,TOMType SIGNED和TOMType UNSIGNED 表示无向的基因共表达网络(TOM-Signed)和基因共表达网络的权值矩阵(TOM-Unsigned)的数据类型。
如果您的数据集中包含负值,建议选择TOMType signed。使用WGCNA构建基因共表达网络时,数据类型的选择与您的数据集中是否存在负数有关。如果数据集中包含负数,建议选择有符号(signed)的数据类型,并对数据进行平移处理,平移处理可以把数据移到全为正数的区间来,并且可以防止负值对聚类结果的影响。以下是平移处理代码的示例:
library(WGCNA)
# 读取数据
data <- read.table("data.txt", header = TRUE, row.names = 1, sep = "\t")
# 平移处理
data <- log1p(data)
在这个示例中,log1p()函数表示log(1+x)转换,此转换可以将数据覆盖整个数轴,以避免出现负值。
关于networkType和TOMType的选择,您可以根据数据集的大小和研究问题来选择。以下是使用WGCNA 代码示例:
# 加载数据
datExpr <- read.csv("exprMatrix.csv", header=TRUE, row.names=1)
# 基因表达矩阵的处理
powers <- c(c(1:10), seq(from=12, to=20, by=2))
sft <- pickSoftThreshold(datExpr, verbose=5, powerVector=powers, networkType="signed")
cIndex <- chooseTopologicalCriterion(sft$fitIndices, verbose=5)
softPower <- powers[cIndex]
TOM <- TOMsimilarityFromExpr(datExpr, power=softPower, verbose=5, TOMType="signed")
# 随机抽取样本
sampleSize <- 300
sampleRows <- sample(nrow(datExpr), sampleSize)
datExprSubset <- datExpr[sampleRows, ]
TOM_Subset <- TOM[sampleRows, sampleRows]
# 层次聚类
dissTOM_Subset <- 1-TOM_Subset
geneTree <- hclust(as.dist(dissTOM_Subset), method="average")
在这个示例中,我们使用了signed的参数设置,并使用TOMsimilarityFromExpr函数计算基因共表达网络,根据所选软阈值值,NMC(Network Type & Module Connectivity)和其他拟合指数选择最优的soft-threshold值,并返回共表达关系矩阵(即基因共表达网络)TOM。接下来,我们从数据集中随机抽取样本进行偏最小二乘回归分析,并对基因共表达网络执行层次聚类。
希望能对您有所帮助!
如果我的回答解决了您的问题,请采纳!
networkType 用于指定生成基因共表达网络(Gene Co-expression Network)的算法类型,可选的值有 unsigned 和 signed,分别对应着 unsigned hybrid 和 signed hybrid 算法。unsigned 算法用于将不同基因之间的共表达程度转换为正相关性系数,而 signed 算法则用于区分共表达程度的正负。在选择时,应根据具体数据集的性质和分析目的来决定。
TOMType 用于指定计算基于拓扑重叠的模块性矩阵(Topological Overlap Matrix,TOM)的方法类型,可选的值有 unsigned 和 signed,分别对应着 unsigned TOM 和 signed TOM。在选择时,同样应根据具体数据集的性质和分析目的来决定。
unsigned 表示无符号,即只能表示非负整数,而 signed 表示带符号,即可以表示正负整数。
如果数据集中包含负值,应该选择 signed,否则会导致错误的计算结果。
该回答引用ChatGPTR
# 加载WGCNA包
library(WGCNA)
# 读取数据
data <- read.table("data.txt", header=TRUE)
# 构建网络
network <- blockwiseModules(data, power=6, TOMType="signed", networkType="signed")
# 可视化网络
plotDendroAndColors(network$dendrograms[[1]], network$colors[[1]])