前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >? TCseq | 它可以做的不仅仅是RNA-seq的时间趋势分析!~(一文拿捏!~)

? TCseq | 它可以做的不仅仅是RNA-seq的时间趋势分析!~(一文拿捏!~)

作者头像
生信漫卷
发布2023-12-13 08:21:14
2940
发布2023-12-13 08:21:14
举报

1写在前面

又到周末了,一周开4天刀真的累啊!~?

最近也是真的很忙,根本没有时间好好地整理一下这些东西,翻一下以前写的东西分享给大家吧。?

今天介绍的是TCseq包,可以用于RNA-seq, ATAC-seq, ChIP-seq。?

RNA-seq不同,ATAC-seqChIP-seq数据的基因组感兴趣区域不是预先确定的,而是特定于每个实验条件的,限制了条件之间的后续差异分析。

今天就试试表观遗传学的time course分析吧。?

2用到的包

代码语言:javascript
复制
rm(list = ls())
library(tidyverse)
library(TCseq)

3示例数据

载入BED文件。?

代码语言:javascript
复制
data("genomicIntervals")
head(genomicIntervals)

载入实验设计。?

代码语言:javascript
复制
data("experiment_BAMfile")
head(experiment_BAMfile)

4创建TCA文件

这个包自己设计了一个TCA的格式,大家来试一下吧。?

代码语言:javascript
复制
tca <- TCA(design = experiment_BAMfile, genomicFeature = genomicIntervals)
tca

有的实验设计是没有bam文件的。?

代码语言:javascript
复制
data("experiment")

data("countsTable")

代码语言:javascript
复制
tca <- TCA(design = experiment, genomicFeature = genomicIntervals, counts = countsTable)
tca

counts文件也可以后续加入到TCA文件中去。?

代码语言:javascript
复制
counts(tca) <- countsTable

还有一种就是把已有的RangedSummarizedExperimentSummarizedExperiment 文件转为TCA文件。

安全无痛,一键完成。?

代码语言:javascript
复制
library(SummarizedExperiment)

se <- SummarizedExperiment(assays=list(counts = countsTable), colData = experiment)

tca <- TCAFromSummarizedExperiment(se = se, genomicFeature = genomicIntervals)

5差异分析

这里是基于edgeR实现的。?

小试牛刀!~??

代码语言:javascript
复制
tca <- DBanalysis(tca)

当然你也可以过滤一下表达比较低的。?

这里的过滤条件是仅保留具有两个或更多样本read counts超过10的基因组区域。??

代码语言:javascript
复制
tca <- DBanalysis(tca, filter.type = "raw", filter.value = 10, samplePassfilter = 2)

接着我们获取一下指定时间点之间的差异分析结果:?

代码语言:javascript
复制
DBres <- DBresult(tca, group1 = "0h", group2 = c("24h","40h","72h"))

str(DBres, strict.width = "cut")

再选取一下有意义的,这里的默认条件是log2-fold > 2 or log2-fold < -2, adjusted p-value < 0.05

代码语言:javascript
复制
DBres.sig <- DBresult(tca, group1 = "0h", group2 = c("24h","40h","72h"), top.sig = TRUE)
str(DBres.sig, strict.width = "cut")

6时间模式分析

6.1 创建相关文件

先建个timecourseTable。?

这里value可以是counts也可以是logFC?


1?? logFC

代码语言:javascript
复制
# values are logFC
tca <- timecourseTable(tca, value = "FC", control.group = "0h", norm.method = "rpkm", filter = TRUE)

2?? counts

代码语言:javascript
复制
# values are normalized read counts
tca <- timecourseTable(tca, value = "expression", norm.method = "rpkm", filter = TRUE)

前面的filter设置会顾虑掉任意两个时间点之间没有显着变化的基因区域。?

tcTable可以查看一下结果。?

代码语言:javascript
复制
t <- tcTable(tca)
head(t)

6.2 聚类分析

聚类方式有几种可供大家选择:?

"km" (kmeans); "pam" (partitioning around medoids); "hc" (hierachical clustering); "cm" (cmeans)'

代码语言:javascript
复制
tca <- timeclust(tca, algo = "cm", k = 6, standardize = TRUE)

6.3 可视化

代码语言:javascript
复制
p <- timeclustplot(tca, value = "z-score(PRKM)", cols = 3)

7小作业

大家试试如何根据membership挑选各个cluster最重要的基因区域。?


最后祝大家早日不卷!~


本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-12-10,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 生信漫卷 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1写在前面
  • 2用到的包
  • 3示例数据
  • 4创建TCA文件
  • 5差异分析
  • 6时间模式分析
    • 6.1 创建相关文件
      • 6.2 聚类分析
        • 6.3 可视化
        • 7小作业
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
        http://www.vxiaotou.com