根据拿到的表达矩阵设为exprSet

1、用scale 进行标准化

数据中心化:数据集中的各个数字减去数据集的均值

数据标准化:中心化之后的数据在除以数据集的标准差。

在R中利用scale方法来对数据进行中心化和标准化

1 scale(data, center=T, scale=F)
2
3 其中,center为T,表示数据中心化
4
5 scale为T,表示数据标准化
6
7 对一个data frame的每一列进行计算

并不是表达矩阵里面的所有基因都可以进行相关性分析,首先去除reads count >1 小于5个的基因(测试样品共有6个)

1 ##过滤reads count >1 小于5
2 exprSet <- exprSet[apply(exprSet,1, function(x) sum(x>1) >5,]
3 ##reads count 差距较大,用log以及scale 缩小差距
4 M <- scale(cor(llog2(exprSet+1)))
5 ##热图
6 pheatmap(M)

2、另一种标准化

 1 exprSet <- exprSet[apply(exprSet,1, function(x) sum(x>1) >5,]
2
3 ##去除文库大小差异
4 exprSet <- log(edgeR::cpm(exprSet)+1)
5
6 ##取mad(绝对中位差)(类似sd)的前50%
7 exprSet <- exprSet[names(sort(apply(exprSet,1,mad),decreasing = T)[1:500]),] ##取前500
8 M <-cor(log2(exprSet+1))
9
10 ##添加group_list
11 tem = data.frame(g=group_list)
12 rownames(tem) <- colnames(M)
13 pheatmap::pheatmap(M, annotation_col = tem,filename = 'cor.png')

3、hclust 聚类分析

欧式距离(Euclidean Distance)

欧式距离是最易于理解的一种距离计算方法,源自欧式空间中两点间的距离公式。

用R语言计算距离主要是dist函数。若X是一个M×N的矩阵,则dist(X)将X矩阵M行的每一行作为一个N维向量,然后计算这M个向量两两间的距离。

表达矩阵是每一行为基因,列为样品名称,所以要进行转至才能计算每个样品之间基因表达量的距离

为了得到更好的聚类分析,也可以将表达矩阵标准化,譬如,log,或者 scale等

1 hc <- hclust(dist(t(exprSet)))
 2 plot(hc)

参考:生信技能树

RNA-seq 生物学重复相关性验证的更多相关文章

  1. 无生物学重复RNA-seq分析 CORNAS: coverage-dependent RNA-Seq analysis of gene expression data without biological replicates

    无生物学重复RNA-seq分析 CORNAS: coverage-dependent RNA-Seq analysis of gene expression data without biologic ...

  2. RNA-seq要做几次生物学重复?找出来的100%都是真正的应答基因

    尹师妹:“哈师兄,做验证实验好辛苦,老板让我提高筛选差异基因的条件,尽量降低假阳性,我该怎么筛?” 小哈打开Evernote,给尹师妹看张表: “瞧见那个100%了吗?30 million mappe ...

  3. RNA seq 两种计算基因表达量方法

    两种RNA seq的基因表达量计算方法: 1. RPKM:http://www.plob.org/2011/10/24/294.html 2. RSEM:这个是TCGAdata中使用的.RSEM据说比 ...

  4. RNA -seq

    RNA -seq RNA-seq目的.用处::可以帮助我们了解,各种比较条件下,所有基因的表达情况的差异. 比如:正常组织和肿瘤组织的之间的差异:检测药物治疗前后,基因表达的差异:检测发育过程中,不同 ...

  5. 使用RDCMan管理SharePoint虚拟机的重复要求验证的问题

    首先,这个软件可以从这里下载: Remote Desktop Connection Manager 同类型的软件还有很多,我没有很多复杂功能的要求,就选择了这款微软官方的,虽然很久都没有更新过了. 为 ...

  6. easy UI的密码长度以及重复输入验证

    自己些项目的时候找的时候也找了一会,所以存下来下次用的时候可以直接用了. 话不多说,直接上代码 <tr> <td>密码:</td> <td><in ...

  7. seq去除重复数据

    DELETE FROM temp_fjh_2 a WHERE a.rowid!=(SELECT MAX(b.rowid) FROM temp_fjh_2 b WHERE a.a=b.a); 表名和列名 ...

  8. 知乎Live总结-重复nature文章笔记Single-cell

    来自知乎Live-孟浩巍 1.文章重要技术及图讲解 首先在转录组RNA-seq中,有基因表达差异.基因融合.可变剪切.RNA单点突变. 在基因组中,单点变异.结构变异,CNV变异(拷贝数变异) 三类基 ...

  9. Circular RNA的产生机制、功能及RNA-seq数据鉴定方法

    推荐关注微信公众号:AIPuFuBio,和使用免费生物信息学资源和工具AIPuFu:http://www.aipufu.com. [Circular RNA的产生机制] Circular RNA,缩写 ...

随机推荐

  1. [no code][scrum meeting] Beta 10

    $( "#cnblogs_post_body" ).catalog() 例会时间:5月25日15:00,主持者:伦泽标 下次例会时间:5月26日11:30,主持者: 一.工作汇报 ...

  2. js--数组的 fill() 填充方法详解

    前言 我们知道了很多了初始化数组的方法,但是初始化数组之后,数组中的每一项元素默认为 empty 空位占位,如何对数组这些空位添加默认的元素,ES6提供了 fill() 方法实现这一操作.本文总结数组 ...

  3. spring security整合QQ登录

    最近在了解第三方登录的内容,尝试对接了一下QQ登录,此次记录一下如何实现QQ登录的过程,在这个例子中是和spring secuirty整合的,不整合spring secuirty也是一样的. 需求: ...

  4. 在浏览器上开发GO和Vue!(基于code-server)

    在浏览器上开发GO和Vue!(基于code-server) 曾几何时,开发者们都被安装编程环境苦恼,尽管现在很多语言的开发环境已经不难装了,但是如果我们能有一个运行在云端的编译器,那么我们就可以随时随 ...

  5. 大厂面试题分享:如何让(a===1&&a===2&&a===3)的值为true?

    当我第一次看到这一题目的时候,我是比较震惊的,分析了下很不合我们编程的常理,并认为不大可能,变量a要在同一情况下要同时等于1,2和3这三个值,这是天方夜谭吧,不亚于哥德巴赫1+1=1的猜想吧,不过一切 ...

  6. SpringCloud微服务实战——搭建企业级开发框架(十一):集成OpenFeign用于微服务间调用

    作为Spring Cloud的子项目之一,Spring Cloud OpenFeign以将OpenFeign集成到Spring Boot应用中的方式,为微服务架构下服务之间的调用提供了解决方案.首先, ...

  7. 关于把RTL工程代码封装成IP时对define宏定义参数的处理

    在把RTL工程封装成IP的时候,如果工程中的代码中含有global include中定义的参数,则vivado不支持该参数文件的封装.出现IP_FLOW 19-4646的错误代码,解决方法: 1.在用 ...

  8. JAVA笔记3__字符串String类/对象一对一关联

    import java.lang.String; import java.util.Scanner; public class Main { public static void main(Strin ...

  9. docker file 笔记

    FROM    # FROM scratch,  FROM centos, FROM ubuntu:latest LABEL RUN  # 每运行一次RUN,image都会生成新的一层,为了美观,避免 ...

  10. Java学习(十)

    今天学习的是参数的传入,感觉这个和c++差不多. 传一个参数进去,要看这个参数是地址还是一个值,如果是值的话那无论在方法中如何加减,也只是另一个局部变量的事情了,与该参数无关,在原方法中参数的值保持不 ...