数据挖掘期末作业做了乳腺癌预后模型的建立,包括如下板块:
但是啥也不会,所以每个板块都要学。理论上应该是理论走在代码前面,先学理论再用代码,但是因为时间赶+新领域,代码走在理论前面了,因此现在是一个知识回溯。
今天先复数据获取
这次是用TCGA数据库获取的,跟的教程是,网站是UCSC Xena https://xenabrowser.net
超详细!TCGA数据库的数据下载方法 - 知乎 (zhihu.com)
TCGA数据挖掘实战(一)——数据下载和差异分析(主要参考)(BTW这个老师出了四五篇预后模型建立的文章,把全流程讲清楚了,好好用)
流程:
1. 下载counts文件和注释文件
- ucsc的数据相对来说是滞后的,版本是2019-7-18
- 下面矩阵的行名还不是最终想要的基因名,所以同时下载ID/Gene Mapping,将行名转化为想要的基因名
数据的格式是60489identifiers(需要转换为gene)*1217samples
如何转换:代码来自:TCGA数据挖掘实战(一)——数据下载和差异分析
rm(list = ls())
library(readr)
library(tidyverse)
# read_tsv自动解压
data <- read_tsv("data/TCGA-COAD.htseq_counts.tsv.gz")
probeMap <- read.table("data/gencode.v22.annotation.gene.probeMap", header = T)
exprSet_log <- data %>%
inner_join(probeMap, by = c("Ensembl_ID" = "id")) %>%
select(gene, starts_with("TCGA"))
head(sort(table(exprSet_log[,1]), decreasing = T))
table(sort(table(exprSet_log[,1]), decreasing = T))
exprSet_log <- exprSet_log %>%
mutate(rowmean = rowMeans(.[,-1]), .before = 2) %>% # "."代表传入的数据
arrange(desc(rowmean)) %>% # 按rowmean降序排列,重复基因取平均值最大的那个
distinct(gene, .keep_all = T) %>% # 保留唯一值
select(-rowmean) %>% # 去除rowmean列
column_to_rownames(var = "gene") # 将symbol列变成行名
exprSet <- 2^exprSet_log - 1
# write.table(exprSet_log, file = "data/COAD_expr_log.txt", quote = F)
# write.table(exprSet, file = "data/COAD_expr.txt", quote = F)
代码解释:总体来说,这段代码看起来是对一个数据集进行处理,首先计算了每行除第一列外的平均值,然后根据这个平均值进行降序排列,保留每个基因的最大平均值,并将这些唯一值作为新的数据集,并最后将 gene
列作为行索引。
部分结果截图:
可以看到最开始是6w+的,后面经过去重【重复基因取平均值最大】,变成了不足6w
表达矩阵怎么解释
HTSeq-Counts,这通常是一种用于RNA测序数据处理的工具。HTSeq是一个常用于计算基因表达水平的软件,它用于对RNA测序数据进行处理,生成基因表达矩阵。
HTSeq-Counts表示的是在处理RNA测序数据时,HTSeq所计算得到的基因的计数值。这些计数值代表了对应基因在不同样本中的计数,即该基因的片段或reads在每个样本中出现的次数。
对给定的基因组参考区域计算比对上的read数意味着统计在基因组中特定区域的DNA序列上映射的测序片段(reads)的数量。这通常是通过基因组比对工具(比如Bowtie、BWA、STAR等)将测序数据与参考基因组进行比对来完成的。
具体步骤包括:
测序数据比对到参考基因组: 将测序数据(DNA片段序列)与已知的参考基因组进行比对,寻找这些片段在基因组中的位置。
计算比对上的read数: 对于给定的基因组参考区域,统计映射到该区域的测序片段(reads)的数量。这个过程可以通过软件工具进行,例如,通过计算命中该特定区域的reads的数量来得到这一信息。
解释结果: 结果通常以数字形式表示,表明在给定的基因组区域内有多少reads被成功地比对上。这个数字可以反映出基因组区域的覆盖度或者是在不同样本中的特定区域的表达水平。
这种类型的分析对于了解基因组的覆盖度、基因的表达水平、变异位点的检测以及其他基因组学研究都非常有用。