标准流程,一文搞懂转录组测序数据分析!

学术   健康   2024-11-17 00:06   上海  
一流的团队做标准,二流的团队做品牌,三流的团队做产品!芒果团队很多地方不完善,但我们一直在努力。感谢各位支持和关注。说来我们已经推出多个系列课程,不过从没有把上游数据分析融入进来,一直挺遗憾!为了弥补这块内容,我们推出Linux 21天教程,将转录组原始测序数据分析和数据可视化整合在一起,分享出来。

肿瘤免疫12讲,掌握肿瘤大方向!

2024-06-28

纯生信21天汇总版!可以操作的肿瘤免疫学!转发朋友圈,30点赞可获得PPT!

2024-07-28

R 语言21天教程,致敬坚持的你!

2024-03-24

转录组学是研究生物体所有转录RNA(mRNA和非编码RNA)总体表达及其调控的学科。通过高通量测序技术,全面分析和识别细胞或组织中的转录本,并通过生物信息学方法对其进行定量和功能分析。尽管相关文章很多,2012年3月,Nature Protocol杂志发表题为Differential gene and transcript expression analysis of RNA-seq experiments with TopHat and Cufflinks的方法学论文,可能是转录组测序数据分析的标准流程吧!
转录组测序技术主要用于分析细胞或组织中的所有基因的转录活动。早期的转录组测序以芯片测序为主,平台有Affymetrix、Agilent等。受限于芯片设计,只能检测已知基因,不适用于发现新基因或未知转录本。目前主打是常规转录组测序,即二代测序,平台包括Illumina等。大趋势是单细胞转录组测序和空间转录组测序。平台包括10 x Genomics 、Drop-seq等,能够揭示单个细胞的表达谱,发现罕见细胞类型。空间组测序保留空间信息的同时进行RNA测序,平台包括10x Genomics Visium、NanoString GeoMx DSP等。因此,转录组测序数据分析是贯穿生信分析技术始终的,值得学!

转录组数据分析流程通常包括几个主要步骤:(1) 实验设计和样本准备。(2) 转录组测序:根据实际需求,选择合适的测序技术和平台(如Illumina HiSeq、NovaSeq等),需确保测序数据的质量和可靠性,包括测序深度、覆盖度等。(3) 数据预处理:数据质控和过滤,序列比对(Linux)。(4) 基因表达分析和数据可视化(R)。

在数据分析过程中,通过处理原始测序数据,我们能够获得更多数据信息,这就涉及上游数据的分析。由于原始测序数据通常很大,需要借助 Linux 来完成数据获取,数据质控和基因组比对等,《Linux就该这么学》是值得推荐的!

获得的基因表达信息,我们可以通过 R 读取数据,再进行数据清洗和可视化

向量(Vector)是用于存储数值型、字符型和逻辑型数据的一位数组,用函数c ()来创建。个人理解,c是英语单词“command”的首字母,可以理解为我们中学数据解题时候的“令”。这种类型的数据是我们入门R数据结构的基础。
####----向量Vector是一维数据----####
a <- c(1, 2, 5, 3, 6, -2, 4) #数值型,直接输入,不用双引号b <- c("one", "two", "three", "ten") #字符型,有双引号c <- c(TRUE, TRUE, FALSE, TRUE, FALSE) #逻辑型,判断真假用的,属于逻辑判断## 只有一个元素的向量,叫做标量,用于保存常量,很少用到。d <- -3f <-"five"g <- TRUE
## 用方括号给定位置,从而访问向量中的元素a <- c(1, 2, 5, 3, 6, -2, 4) #数值型向量a中有7个元素a[3] #访问一个元素a[c(1, 3, 5)] #访问不连续的元素a[c(2:5)] #访问连续的元素
a <-c(1:20) #冒号用处大,可用于生成连续的数值变量

矩阵(Matrix)是二维数据,通过函数matrix ()创建。一个矩阵可以有多个元素,元素之间可以数据类型不同,但是一个元素只有一种类型,数值型、字符型和逻辑型均可。

#### ----矩阵Matrix是二维数据----####
## 一个矩阵可以有多个元素,元素之间可以数据类型不同,但是一个元素只有一种类型## matrix的一般使用格式:Matrix <- matrix(vector, nrow = number_of_rows, ncol = number_of_columns, byrow = logical_value,dimnames = list( char_vector_rownames, char_vector_colnames))
## vector指矩阵的向量元素,nrow和ncol指定行和列的维数## dimnames包含可选的、以字符型向量表示的行名和列名## byrow表明矩阵是按行填充(byrow=TRUE)还是按列填充(byrow=FALSE)
## 举例子Matrix1<-matrix(1:20, nrow = 5, ncol = 4) #创建一个5x4的简单矩阵
vector2 <- c(1,26,24,68,12, 100) #创建一个数值型向量rnames <- c("R1", "R2", "R3") #行的命名cnames <- c("C1", "C2") #列的命名Matrix2 <- matrix(vector2, nrow = 3, ncol = 2, byrow = TRUE, dimnames = list(rnames,cnames)) #按行填充的3x2矩阵
Matrix3 <- matrix(vector2, nrow = 3, ncol = 2, byrow = FALSE, dimnames = list(rnames,cnames)) #按列填充的3x2矩阵
## 同样,用下标和方括号可以给定位置,从而访问向量中的元素
x<-matrix(1:20, nrow = 5) #创建一个名称为“x"的5x4简单矩阵x #展示x矩阵的数据x[2,] #访问x矩阵的第2行x[,2] #访问x矩阵的第2列x[2,2] #访问x矩阵的第2行,第2列x[1,c(2,3)] #访问第1行的第2列和第3列
数组(Array)是由相同类型元素集合组成的一种数据结构,数据可以是二维,也可以是二维及其以上(多维)。数组通过函数array ()来创建。
####----数组Array是多维数据(二维及其以上)---####
## array的一般使用格式:Array <- array (vector, dimensions, dimnames)## vector包含数组中的数据,dimensions是一个数值型变量,给出各个维度下标的最大值## dimnames是可选的、各维度标签的列表## 数组与矩阵类似,只是处理的行、列数增多而已
## 举例子dim1 <- c("A1", "A2", "A3", "A4")dim2 <- c("b1", "b2", "b3")dim3 <- c("C1", "C2")y <- array(1:36, c(4,3,2), dimnames = list(dim1,dim2,dim3)) #创建数组y #展示数组的数据
## 跟矩阵一样,可以用下标和方括号给定位置,访问向量中的元素


数据框(Dataframe)是在R中最常处理的数据结构。数据框可以处理不同列、不同数据结构(数值型、字符型等)的数据,与我们通常在SAS、SPSS和Stata中看到的数据类似。数据框通过函数data.frame ()来创建。
####----数据框Dataframe处理不同类型数据--####
## data.frame的一般使用格式:Dataframe <- data.frame(col1,col2,col3,...)## 列向量col1、col2、col3等可为任何类型(如字符型、逻辑性和数字型等)## 每一列的名称可以用函数names指定## 数据框每一列的数据必须唯一,但是可以将多个模式的不同列放到一起组成数据框
## 举例子patientID <- c(1,2,3,4)age <- c(15,34,28,52)diabetes <- c("Type1","Type2","Type1","Type1")status <- c("Poor", "Improved","Excellent","Poor")z <- data.frame(patientID, age, diabetes, status) #创建数据框z #展示数据框
## 数据框的数据如何访问?可以用下标的方法,但是很繁琐,不推荐## 推荐直接指明列名z$age         #直接范文z数据框的age变量
以上关于向量,矩阵、数组和数据框的内容,相对来说比较容易,能够应对数据比较少的情况,对于GEO芯片或者二代测序的高通量数据,上述数据类型就极不方便。因此,我们还需要掌握更高级的数据类型处理函数,比如因子(Factor)和列表(List)。


我们知道,变量分为连续型变量和非连续型变量。在R情境下,变量可以归结为有序型、连续型和名义型(在R中没有非连续型的说法)。有序型变量是一种顺序关系,不是数量关系;连续型变量可以是某范围内的任意值,同时表明数量和顺序;名义型变量没有顺序之分。在R中,所有有序型、连续型和名义型的变量,统称为因子(Factor)。因子在R中非常重要,因为它决定了数据分析和呈现的方式。
####----因子Factor处理不同变量--####
## 函数factor()以一个整数向量的形式存储类别值,整数的取值范围是[1...k]## 用一个由字符串组成的内部向量将映射到这些整数上## 对于字符型向量,因子的水平默认依字母顺序创建,也可以通过指定levels覆盖默认排序## 数值型变量可以用levels和labels来编码成因子
## 举例子patientID <- c(1,2,3,4)age <- c(15,34,28,52)diabetes <- c("Type1","Type2","Type1","Type1")status <- c("Poor", "Improved","Excellent","Poor") #以向量形式创建数据diabetes <- factor(status, ordered = TRUE)patientdata <-data.frame(patientID, age, diabetes, status)
str(patientdata)                                      #显示数据的结构
summary(patientdata)                                  #显示数据的统计概要
列表(List)是R语言中最复杂的数据类型,它包含不同类型的元素,可能是若干向量、矩阵、数据框,甚至其他列表的组合。使用list ()函数创建列表。对象可以是上述任何结构。
####----列表List处理任何数据--####
## 列表list()是最为复杂的数据类型,可以整合各种数据类型到单个对象下。## list的一般使用格式:List <-list(object1, object2, object3, ...)## 或者List2 <- list(name1=object1, name2=object2,...)
## 举例子g <- "Mango List"h <- c(25, 26, 18, 39)j <- matrix(1:10, nrow = 5)k <- c ("one", "two", "three")list1 <- list(title=g, ages=h, j, k) #创建列表list1                                  #显示列表$title #显示列表的成分$ages[[3]]list1[[2]]list1[["ages"]]                    


处理数据对象的函数


数学函数


统计函数

图形函数
plot()是R中为对象作图的一个泛型函数(输出根据绘制对象的类型) 。

par( )是修改图形参数的函数。

用于指定符号和线条类型的函数


pch指定的绘图符号类型


Ity指定的线条类型


用于指定颜色的函数


用于指定文本大小、字体的函数


坐标轴选项


算术运算符


逻辑运算符


日期格式


类型转换函数

参考资料

  1. https://mp.weixin.qq.com/s/4HJFB6FqDpuppuvARtm1uQ

  2. 《R 语言实战》和《R 数据科学》

芒果师兄聊生信
1.生信技能和基因编辑。2.论文发表和基金写作。3. 健康管理和医学科研资讯。4.幸福之路,读书,音乐和娱乐。
 最新文章