谢大飞

V1

2023/04/29阅读:16主题:默认主题

转录组数据整理、导入及处理

转录组数据整理

转录组数据整理的话,主要就是获得read counts数

公司返回来的数据,一般是一个整体的表,全部的counts数都在这个表格里面,基因(列)和测序的时间及生物学重复(行)及其对应的counts值

gene_count
gene_count

那我们在进行处理之前,需要将其按照基因和每个时期的生物学重复进行整理,整理成一个个单独的表格

分开整理
分开整理

整理方法是将其传输到服务器中,然后使用cut命令取出相应的列,再保存为相应的文件

cut -f 1,2 >> MD1_1.mappedCount.txt

还需要整理样品的信息表,其中“files”指明文件的存放位置(相对位置即可),“stages”指明其所处的时期,因为每个时期都有四个生物学重复,所以按照每个时期将其整理在一起

样品信息表
样品信息表

加载R包

需要用到的R包主要有edgeR、RColorBrewer、limma

#下载安装R包
install.packages("edgeR")
install.packages("RColorBrewer")
install.packages("limma")

library(edgeR)

library(RColorBrewer)

library(limma)

options(digits=3)           #指定只保留小数点后面三位
加载需要的R包
加载需要的R包

导入需要的数据

根据样品信息表将全部的数据进行导入

#导入样本信息表
MD.targets <- read.delim("./male/fileDesc_MD.txt", stringsAsFactors=F)

MD.targets    #查看一下样本信息表

#根据样本信息表导入所有的样本信息文件,因为使用readEDG函数导入的,所以再查看的时候有一系列DGEList列表的内容

MD.orig  <- readDGE(MD.targets, header=T)

MD.orig  #确认MD.roig

## DGEList至少需要的元素:counts、samples(包含group分组信息和lib.size文库大小),counts用来存放表达矩阵,samples用来标记样本信息和库的大小,group声明组别 

# 拷贝一份拿来进行处理,并计算一下里面的reads数
MD <- MD.orig

dim(MD)
导入样本信息表
导入样本信息表

读取counts数

MD.rawCount <- MD$counts    #取出所有的原始的counts数

colnames(MD.rawCount) <- c("MD1_1","MD1_2","MD1_3","MD1_4","MD2_1","MD2_2","MD2_3","MD2_4","MD3_1","MD3_2","MD3_3","MD3_4")                #根据样本信息来更改列名

write.table(MD.rawCount, file="./output/MD.rawCount.txt", sep="\t", quote=F)    
#将表格写出存储
读取reads数
读取reads数

将counts数转变cpm指数

用来消除测序深度的影响,可以去除低表达量的基因,以及探索样本的分组信息,有助于挖掘潜在的差异样本

MD.allCPM <- cpm(calcNormFactors(MD))

colnames(MD.allCPM) <- c("MD1_1","MD1_2","MD1_3","MD1_4","MD2_1","MD2_2","MD2_3","MD2_4","MD3_1","MD3_2","MD3_3","MD3_4"

View(MD.allCPM)

write.table(MD.allCPM, file="./output/MD.norm_allCPM.txt", sep="\t", quote=F)

手动过滤cpm

MD.keep4 <- rowSums(cpm(MD)>4) >=4

table(MD.keep4)

MD$samples$lib.size

MD$samples

MD <- MD[MD.keep4,]

colSums(MD$counts)

dim(MD)
[1] 19078    12

MD$samples$lib.size <- colSums(MD$counts)

MD$samples

MD <- calcNormFactors(MD)       #有效库大小——原始库大小与缩放因子的乘积称为有效库大小,会替换掉原始库的大小

MD$samples      #样本的相关性信息  可以根据样本之间的相关性来画热图
过滤
过滤

不同的过滤系数得到的不同的值,选择合适的过滤系数,我这边过滤选择的系数是4(尝试之后选定一个合适的过滤系数即可,然后按照上面的流程走完)

MD.keep4 <- rowSums(cpm(MD)>4) >=4
> table(MD.keep4)
MD.keep4
FALSE  TRUE 
14041 19078 

> MD.keep5 <- rowSums(cpm(MD)>5) >=4
> table(MD.keep5)
MD.keep5
FALSE  TRUE 
14671 18448 

> MD.keep6 <- rowSums(cpm(MD)>6) >=4
> table(MD.keep6)
MD.keep6
FALSE  TRUE 
15234 17885 

> MD.keep7 <- rowSums(cpm(MD)>7) >=4
> table(MD.keep7)
MD.keep7
FALSE  TRUE 
15750 17369 

> MD.keep8 <- rowSums(cpm(MD)>8) >=4
> table(MD.keep8)
MD.keep8
FALSE  TRUE 
16210 16909 

> MD.keep9 <- rowSums(cpm(MD)>9) >=4
> table(MD.keep9)
MD.keep9
FALSE  TRUE 
16699 16420 

小声明:

  1. 命名方式按照自己的习惯来即可。
  2. 图片和代码中命名不一致是因为我有两个样品,刚开始是分开处理的,找不到MD处理的R脚本了,所以截图中显示的是FD。emmm,问题不大就是一个名字而已

分类:

其他

标签:

其他

作者介绍

谢大飞
V1