RNA 42. 基于转录组及转录因子库构建转录因子调控网络 (NetAct)

8376183226347534ea71fce910a6fb2b.png

简     介

系统生物学的一个主要问题是如何识别控制生物过程决策的核心基因调控回路。一个名为NetAct的计算平台,用于使用转录组学数据和基于文献的转录因子目标数据库构建核心转录因子调控网络。NetAct使用目标表达稳健地推断调控因子的活性,基于转录活性构建网络,并集成数学模型进行验证。我们的计算机基准测试表明,NetAct在推断转录活性和基因网络方面优于 现有算法。我们演示了应用NetAct来模拟驱动TGF-β诱导的上皮-间质转化和巨噬细胞极化的网络。

7bde950964240dadf380377d60424edf.png

NetAct是一个计算平台,使用转录组数据和基于文献的转录因子靶点数据库来构建核心转录因子调控网络。本教程旨在演示NetAct的核心功能组件,以及如何使用它来构建和建模转录因子调节网络。本工作流程中使用的实验RNA-seq数据来自Sheridan等人(2015),包括从雌性处女小鼠的乳腺中分选的三个细胞群(基底、腔祖细胞(LP)和成熟腔细胞(ML))。使用GEO:GSE63310,这些样品的count数据可以从Gene Expression Omnibus (GEO)下载。

4f821ffdca6d49afeb2212a40a4a0ffe.png

软件包安装

软件包安装非常简单,但是需要注意一下Rtools,R,BiocManager版本号,这种问题经常出现,更新匹配一直就没问题了。

if(!require(Scissor))
  devtools::install_github("lusystemsbio/NetAct")

BiocManager::install("org.Mm.eg.db")

数据读取

数据是从GEO上下载,但是这里给了一段代码用于下载数据,但是如果网速很慢还是直接从网站上下载吧:

url <- "https://www.ncbi.nlm.nih.gov/geo/download/?acc=GSE63310&format=file"
utils::download.file(url, destfile="GSE63310_RAW.tar", mode="wb") 
utils::untar("GSE63310_RAW.tar", exdir = ".")
files <- c("GSM1545535_10_6_5_11.txt", "GSM1545536_9_6_5_11.txt", "GSM1545538_purep53.txt",
           "GSM1545539_JMS8-2.txt", "GSM1545540_JMS8-3.txt", "GSM1545541_JMS8-4.txt",
           "GSM1545542_JMS8-5.txt", "GSM1545544_JMS9-P7c.txt", "GSM1545545_JMS9-P8c.txt")
for(i in paste(files, ".gz", sep="")){
  R.utils::gunzip(i, overwrite=TRUE)
}

对数据进行整理,预处理等操作:

files <- c("GSM1545535_10_6_5_11.txt", "GSM1545536_9_6_5_11.txt", "GSM1545538_purep53.txt",
    "GSM1545539_JMS8-2.txt", "GSM1545540_JMS8-3.txt", "GSM1545541_JMS8-4.txt", "GSM1545542_JMS8-5.txt",
    "GSM1545544_JMS9-P7c.txt", "GSM1545545_JMS9-P8c.txt")

x <- edgeR::readDGE(files, columns = c(1, 3))
group <- as.factor(c("LP", "ML", "Basal", "Basal", "ML", "LP", "Basal", "ML", "LP"))
x$samples$group <- group
samplenames <- c("LP1", "ML1", "Basal1", "Basal2", "ML2", "LP2", "Basal3", "ML3",
    "LP3")
colnames(x) <- samplenames
head(x)
## An object of class "DGEList"
## $samples
##                           files group lib.size norm.factors
## LP1    GSM1545535_10_6_5_11.txt    LP 32863052            1
## ML1     GSM1545536_9_6_5_11.txt    ML 35335491            1
## Basal1   GSM1545538_purep53.txt Basal 57160817            1
## Basal2    GSM1545539_JMS8-2.txt Basal 51368625            1
## ML2       GSM1545540_JMS8-3.txt    ML 75795034            1
## LP2       GSM1545541_JMS8-4.txt    LP 60517657            1
## Basal3    GSM1545542_JMS8-5.txt Basal 55086324            1
## ML3     GSM1545544_JMS9-P7c.txt    ML 21311068            1
## LP3     GSM1545545_JMS9-P8c.txt    LP 19958838            1
## 
## $counts
##            Samples
## Tags        LP1 ML1 Basal1 Basal2  ML2 LP2 Basal3 ML3 LP3
##   497097      1   2    342    526    3   3    535   2   0
##   100503874   0   0      5      6    0   0      5   0   0
##   100038431   0   0      0      0    0   0      1   0   0
##   19888       0   1      0      0   17   2      0   1   0
##   20671       1   1     76     40   33  14     98  18   8
##   27395     431 771   1368   1268 1564 769    818 468 342

实例操作

1. 建立比较和表型数据

library(org.Mm.eg.db)
library(NetAct)
compList <- c("Basal-LP", "Basal-ML", "LP-ML")
phenoData = new("AnnotatedDataFrame", data = data.frame(celltype = group))
rownames(phenoData) = colnames(x$counts)
head(x)
## An object of class "DGEList"
## $samples
##                           files group lib.size norm.factors
## LP1    GSM1545535_10_6_5_11.txt    LP 32863052            1
## ML1     GSM1545536_9_6_5_11.txt    ML 35335491            1
## Basal1   GSM1545538_purep53.txt Basal 57160817            1
## Basal2    GSM1545539_JMS8-2.txt Basal 51368625            1
## ML2       GSM1545540_JMS8-3.txt    ML 75795034            1
## LP2       GSM1545541_JMS8-4.txt    LP 60517657            1
## Basal3    GSM1545542_JMS8-5.txt Basal 55086324            1
## ML3     GSM1545544_JMS9-P7c.txt    ML 21311068            1
## LP3     GSM1545545_JMS9-P8c.txt    LP 19958838            1
## 
## $counts
##            Samples
## Tags        LP1 ML1 Basal1 Basal2  ML2 LP2 Basal3 ML3 LP3
##   497097      1   2    342    526    3   3    535   2   0
##   100503874   0   0      5      6    0   0      5   0   0
##   100038431   0   0      0      0    0   0      1   0   0
##   19888       0   1      0      0   17   2      0   1   0
##   20671       1   1     76     40   33  14     98  18   8
##   27395     431 771   1368   1268 1564 769    818 468 342

2. 预处理和DEG分析

对于RNA-seq数据,NetAct提供了一个有用的预处理函数,称为preprocess_counts(),可以过滤掉低表达的基因,并为原始计数数据检索相关的基因。然后使用limma/DESeq2包鉴定差异表达基因(DEG)。生成的规范化表达式数据与phenoData元数据一起保存到标准ExpressionSet对象中,以便进行下游分析。

limma
counts <- Preprocess_counts(counts = x$counts, groups = group, mouse = TRUE)
DErslt = RNAseqDegs_limma(counts = counts, phenodata = phenoData, complist = compList,
    qval = 0.05)
##        Basal-LP Basal-ML LP-ML
## Down       4308     4568  2570
## NotSig     7071     6728 11506
## Up         4882     4965  2185
neweset = Biobase::ExpressionSet(assayData = as.matrix(DErslt$Overall$e), phenoData = phenoData)
DESeq2
DErslt2 = RNAseqDegs_DESeq(counts = counts, phenodata = phenoData, complist = compList,
    qval = 0.05)
neweset2 = Biobase::ExpressionSet(assayData = as.matrix(DErslt2$Overall$e), phenoData = phenoData)

3. 鉴定显著富集的TF

采用置换的方法,通过GSEA算法选择显著富集的TF。通过考虑q值截止值,从多个比较中汇总TF。此步骤通常耗时最长,因此建议通过提供文件名来保存输出。

data("mDB")
calc <- FALSE

if (calc) {
    gsearslts <- TF_Selection(GSDB = mDB, DErslt = DErslt, minSize = 5, nperm = 10000,
        qval = 0.05, compList = compList, nameFile = "gsearslts_tutorial")
} else {
    gsearslts <- readRDS(file = "gsearslts_tutorial.RDS")
}

tfs <- gsearslts$tfs
tfs
##  [1] "Ar"     "Cebpa"  "Chd7"   "Ctnnb1" "E2f1"   "Egr1"   "Esr1"   "Ets1"  
##  [9] "Foxo1"  "Foxo3"  "Gli1"   "Gli2"   "Hnf1a"  "Hoxc8"  "Lef1"   "Myocd" 
## [17] "Myod1"  "Nfatc1" "Nfkb1"  "Npas2"  "Pgr"    "Pou2f1" "Ppara"  "Pparg" 
## [25] "Sfn"    "Smad3"  "Smad4"  "Sox2"   "Sp1"    "Sp3"    "Srf"    "Tfap2a"
## [33] "Trp53"

Reselect_TFs(GSEArslt = gsearslts$GSEArslt, qval = 0.01)
##  [1] "Ar"     "Cebpa"  "Ctnnb1" "Foxo1"  "Foxo3"  "Gli1"   "Gli2"   "Myocd" 
##  [9] "Myod1"  "Pou2f1" "Ppara"  "Pparg"  "Smad4"  "Sp1"    "Tfap2a"

4. 计算所选TF的活性

NetAct根据其目标的表达来推断所选监管机构的活动。结果显示与继承基因表达相比,TF活性模式更清晰。

act.me <- TF_Activity(tfs, mDB, neweset, DErslt$Overall)
acts_mat = act.me$all_activities
Activity_heatmap(acts_mat, neweset)

2dee57e11af6f148b92976319e263b08.png

5. 构建基因调控网络

在这一步中,通过基于互信息和熵的链路关系过滤,输出基因调控网络拓扑结构。plot_network()函数提供网络拓扑的交互式视图。

tf_links = TF_Filter(acts_mat, mDB, miTh = 0.05, nbins = 8, corMethod = "spearman",
    DPI = T)
## [1] 0
## [1] 0.5

plot_network(tf_links)

8c991874ddc37237365744a1998b1a56.png

6. RACIPE模拟

然后,使用RACIPE算法对构建的网络的动态行为进行建模。建议模拟10000个模型。

racipe_results <- sRACIPE::sracipeSimulate(circuit = tf_links, numModels = 200, plots = TRUE)

1da77144051f60361e20c2a91bd740c8.png

1da6076e0648023df3bcaed09ffadb75.png

6e6861ee343df51844fc52fc2d05ec5e.png

Reference

Su K, et al (2022) NetAct: a computational platform to construct core transcription factor regulatory networks using gene activity, Genome Biology, 23:270.

桓峰基因,铸造成功的您!

未来桓峰基因公众号将不间断的推出单细胞系列生信分析教程,

敬请期待!!

桓峰基因官网正式上线,请大家多多关注,还有很多不足之处,大家多多指正!http://www.kyohogene.com/

桓峰基因和投必得合作,文章润色优惠85折,需要文章润色的老师可以直接到网站输入领取桓峰基因专属优惠券码:KYOHOGENE,然后上传,付款时选择桓峰基因优惠券即可享受85折优惠哦!https://www.topeditsci.com/

4b44b993841d7540e77c5eee0d206180.png

  • 18
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Netcat是一个功能强大的网络工具,它可以用于创建TCP/IP连接、发送/接收数据等。在网络安全领域中,利用Netcat进行反弹链接实验是一种常见的漏洞检测和入侵测试方法。下面是一个使用Netcat进行反弹链接实验的简单示例: 1. 首先,需要两台计算机,称为A和B。A将用作攻击者的计算机,B将用作受害者的计算机。 2. 在A计算机上,打开一个终端窗口,并使用以下命令创建一个监听器,将A设置为攻击者计算机的IP地址(例如192.168.0.1)和端口号(例如8888): `nc -lvp 8888` 这将创建一个监听器,等待来自B计算机的反弹链接。 3. 在B计算机上,打开一个终端窗口,并使用以下命令连接到A计算机的IP地址和端口号: `nc 192.168.0.1 8888` 这将与A计算机建立一个反弹链接。 4. 一旦链接成功,你就可以在A计算机上执行命令,并将结果发送到B计算机上。例如,输入`ls`命令来列出目录内容。 5. 在B计算机上,你将看到A计算机上`ls`命令的输出结果。 通过反弹链接实验,攻击者可以利用Netcat与目标计算机建立连接,获取远程访问权限,并执行各种命令。因此,要注意在网络中保护好自己的计算机,避免被攻击者利用Netcat等工具进行恶意活动。 ### 回答2: 使用 Netcat 进行反弹链接实验是一种常见的网络安全测试方法,用于模拟黑客攻击中的反弹链接技术。反弹链接是指攻击者在目标系统上开启一个网络服务,并将该服务绑定到一个指定的端口上。然后,攻击者通过向该端口发送数据包来建立与目标系统之间的连接,从而得以进一步进行攻击。 在实施反弹链接实验之前,首先需要在一台主机上安装 Netcat 工具。然后,可以按照以下步骤进行反弹链接实验: 1. 打开命令行终端,并通过命令`nc -nvlp <监听端口>`在主机上启动 Netcat 监听器,其中`<监听端口>`为要监听的端口号。 2. 运行该命令后,Netcat 监听器将开始等待与其建立连接的攻击者。 3. 在另一台主机上,使用命令`nc <目标主机IP> <监听端口>`来连接 Netcat 监听器,其中`<目标主机IP>`为 Netcat 监听器所在主机的 IP 地址,`<监听端口>`为 Netcat 监听器所监听的端口号。 4. 连接成功后,攻击者将能够与 Netcat 监听器进行通信,并利用该连接执行各种操作,如传输文件、执行命令等。 通过上述步骤,我们可以模拟黑客攻击中的反弹链接技术,并在实验过程中观察网络安全漏洞和潜在风险。然而,使用 Netcat 进行反弹链接实验可能涉及非法入侵行为,因此在进行任何实验或测试时,请务必遵守法律法规,并获得明确的授权和许可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值