专栏名称: 生信菜鸟团
生信菜鸟团荣誉归来,让所有想分析生物信息学数据的小伙伴找到归属,你值得拥有!
目录
相关文章推荐
BioArt  ·  Cell | SMC蛋白调控DNA的挤压和方向转换 ·  2 天前  
生物学霸  ·  一个 80 后高校教师的苦闷 ·  3 天前  
BioArt  ·  Science丨神经元- ... ·  3 天前  
51好读  ›  专栏  ›  生信菜鸟团

转录组差异分析代码(1)数据读取与整理

生信菜鸟团  · 公众号  · 生物  · 2024-09-23 18:28

正文

学习笔记总结于『生信技能树』马拉松课程

本篇学习转录组差异分析的代码,以TCGA的CHOL疾病为例。用较为基础的代码学习,以便理解。后续再学习更流畅的方法

上一篇学习了怎么获取数据后,请将下载的文件放在工作目录下,下面开始代码学习环节

1.项目命名

TCGA的数据,统一叫TCGA-xxxx;非TCGA的数据随意起名

不要有特殊字符即可,文件名不能有空格,TCGA CHOL不行,TCGA-CHOL可以

proj = "TCGA-CHOL"

2.读取和整理数据

2.1 表达矩阵

dat = read.table("TCGA-CHOL.htseq_counts.tsv.gz",
                 check.names = F,#不要检查列名。如果检查,列名会变,对后续有影响
                 row.names = 1,#将第一列作为行名。第一列一般会有文字,如果不将其作为行名,表达矩阵就会掺入文字
                 header = T#同理,否则表达矩阵会掺入文字
                 )
#读取表达矩阵的时候,不推荐data.table()因为不方便设置行名
图1
图2

读取文件的时候,不是每次都能用这个函数、这些参数,而要具体情况具体分析


range(dat)
dat = as.matrix(2^dat - 1)#逆转log,发现需要逆转,才逆转,否则不要运行这句代码

count的数值范围,正常范围在成千上万不等,为什么此处结果是0到24之间呢,因为整个表达矩阵被log了,于是我们需要逆转log(在文件的下载页面也有介绍表达矩阵是否被取了log)

图3

dat[97,9]
as.character(dat[97,9])
# 转换为整数矩阵
exp = round(dat)
# 检查
as.character(exp[97,9])

log后,还有一个坑需要注意:眼见不一定为实,要用代码检查。看似整数但不是整数,所以要转换成整数

图4

2.2 临床信息

一般情况其实用不上临床信息,此处是按照惯例读取进来了。(不过有的临床信息包含了分组,这个可能有用)

clinical = read.delim("TCGA-CHOL.GDC_phenotype.tsv.gz")
clinical[1:4,1:4]

3.表达矩阵行名ID转换

library(tinyarray)
exp = trans_exp_new(exp)#小洁老师写的函数,任何以ensemble ID为行名的表达矩阵,都可以用这个函数直接转换;损失不到30%甚至50%的ID都没关系
exp[1:4,1:4]

4.基因过滤

需要过滤那些,在很多样本里表达量都为0或者表达量很低的基因。过滤标准不唯一

# 过滤之前基因数量:






请到「今天看啥」查看全文