这是进行任何网络分析的第一步。我们在这里展示如何加载典型的表达数据,将其预处理成适用于网络分析的格式,并通过删除明显的异常样本和基因来清理数据。
Input data format
我们将原始表达数据以及相关信息以AnnData格式存储在名为geneExpr
的变量中。基因表达数据、基因元数据和样本元数据可以作为 AnnData 对象一起传递给 PyWGCNA,也可以分别作为一系列矩阵传递。
AnnData 数据格式
如果您已经将表达数据存储在 AnnData 格式中,您可以通过将变量以 AnnData 格式传递来定义 PyWGCNA 对象。请注意,AnnData.X 应该是表达矩阵,AnnData.var 应该包含每个基因的信息,而 AnnData.obs 应该包含每个样本的信息。您可以在此处阅读有关 AnnData 格式的更多信息。点击这里-->
基因表达、样本元数据和基因元数据的单独矩阵
用户可以传递各自的文件路径,分别用于基因表达、样本元数据和基因元数据,格式如下所示。
基因表达矩阵
表达矩阵应按照样本对应行,基因对应列的格式进行排列。第一列应表示样本ID或样本名称。接下来的列应包含唯一的基因ID或基因名称。
sample_id | ENSMUSG00000000003 | ENSMUSG00000000028 | ENSMUSG00000000031 | ENSMUSG00000000037 |
---|---|---|---|---|
sample_11615 | 12.04 | 11.56 | 16.06 | 13.18 |
sample_11616 | 1.35 | 1.63 | 1.28 | 1 |
Gene metadata
基因元数据是一个表格,包含有关每个基因的其他信息,例如基因生物类型或基因长度。每一行应表示一个基因,每一列应表示一个基因特征,其中第一列包含与基因表达矩阵中使用的相同基因标识符。行的顺序应与基因表达矩阵的列相同,或者用户可以指定 order=False
。
gene_id | gene_name | gene_type |
---|---|---|
ENSMUSG00000000003 | Pbsn | protein_coding |
ENSMUSG00000000028 | Cdc45 | protein_coding |
ENSMUSG00000000031 | H19 | lncRNA |
ENSMUSG00000000037 | Scml2 | protein_coding |
Sample metadata
样本元数据是一个表格,包含有关每个样本的其他信息,例如时间点或基因型。每一行应表示一个样本,每一列应表示一个元数据特征,其中第一列包含与基因表达矩阵中使用的相同样本标识符。行的顺序应与基因表达矩阵的行相同,或者用户可以指定 order=False
。
Sample_id | Age | Tissue | Sex | Genotype |
---|---|---|---|---|
sample_11615 | 4mon | Cortex | Female | 5xFADHEMI |
sample_11616 | 4mon | Cortex | Female | 5xFADWT |
其他参数
以下是可以指定的其他参数。
-
name: 用于可视化数据的WGCNA的名称(默认:
WGCNA
) -
save: 是否保存重要步骤的结果(如果要设置为
True
,您应该对输出目录具有写访问权限) - outputPath: 要保存数据的位置,否则将存储在与代码相同的目录中。
- TPMcutoff: 用于删除基因的TPM截断值
-
networkType: 生成网络的类型({
unsigned
,signed
,signed hybrid
},默认:signed hybrid
) -
adjacencyType: 使用的邻接矩阵类型({
unsigned
,signed
,signed hybrid
},默认:signed hybrid
) -
TOMType: 使用的拓扑重叠矩阵(TOM)的类型({
unsigned
,signed
},默认:signed
)
有关这些参数的详细文档,请参阅此处。
数据清理和预处理
PyWGCNA可以根据以下标准清理输入数据:
- 删除所有样本中表达量低于
TPMcutoff
值(默认值)的基因。 - 使用
goodSamplesGenes()
函数查找具有过多缺失值的基因和样本。 - 对样本进行聚类(使用来自scipy的hierarchical clustering),以查看是否存在明显的异常值。用户可以通过指定
cut
值来定义层次聚类的高度。默认情况下,通过层次聚类不删除任何样本。