日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SCENIC | 从单细胞数据推断基因调控网络和细胞类型

發(fā)布時間:2025/3/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SCENIC | 从单细胞数据推断基因调控网络和细胞类型 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在2019/08/07的Nature刊中,中科院景乃禾課題組發(fā)表了文章——Molecular architecture of lineage allocation and tissue organization in early mouse embryo?,我在這篇文章中發(fā)現(xiàn)了一個被湯神組 (就是Hemberg-lab單細胞轉錄組數(shù)據(jù)分析(二)- 實驗平臺中開辟了單細胞轉錄組領域的人)反復用到的R工具-SCENIC,現(xiàn)在讓我們來一起看看該工具有何妙用!

SCENIC簡介

SCENIC是一種同時重建基因調控網(wǎng)絡并從單細胞RNA-seq數(shù)據(jù)中鑒定stable cell states的工具。基于共表達和DNA模基序 (motif)分析推斷基因調控網(wǎng)絡 ,然后在每個細胞中分析網(wǎng)絡活性以鑒定細胞狀態(tài)。

  • 如何獲取目標基因的轉錄因子(上)——Biomart下載基因和motif位置信息

  • 如何獲取目標基因的轉錄因子(下)——Linux命令獲取目標基因TF

SCENIC發(fā)表于2017年的Nature method文章。具體見鏈接:

https://www.nature.com/articles/nmeth.4463

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-yQR4bdkW-1575035969741)(https://upload-images.jianshu.io/upload_images/7071112-cde9ade963f5b81c?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

要求:當前版本的SCENIC支持人類,鼠和果蠅(Drosophila melanogaster)

要將SCENIC應用于其他物種,需要手動調整第二步(例如使用新的RcisTarget數(shù)據(jù)庫或使用不同的motif-enrichment-analysis工具)。

輸入:SCENIC需要輸入的是單細胞RNA-seq表達矩陣—— 每列對應于樣品(細胞),每行對應一個基因。基因ID應該是gene-symbol并存儲為rownames (尤其是基因名字部分是為了與RcisTarget數(shù)據(jù)庫兼容);表達數(shù)據(jù)是Gene的reads count。根據(jù)作者的測試,提供原始的或Normalized UMI count,無論是否log轉換,或使用TPM值,結果相差不大。(Overall, SCENIC is quite robust to this choice, we have applied SCENIC to datasets using raw (logged) UMI counts, normalized UMI counts, and TPM and they all provided reliable results (see Aibar et al. (2017)).)

SCENIC

先安裝R,如果處理大樣本數(shù)據(jù),則建議使用Python版 (https://pyscenic.readthedocs.io/en/latest/);

SCENIC在R中實現(xiàn)基于三個R包:

  • GENIE3

    推斷基因共表達網(wǎng)絡

  • RcisTarget

    用于分析轉錄因子結合motif

  • AUCell

    用于鑒定scRNA-seq數(shù)據(jù)中具有活性基因集(基因網(wǎng)絡)的細胞

  • 運行SCENIC需要安裝這些軟件包以及一些額外的依賴包:

    if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::version() # If your bioconductor version is previous to 3.9, see the section bellow ## Required BiocManager::install(c("AUCell", "RcisTarget")) BiocManager::install(c("GENIE3")) # Optional. Can be replaced by GRNBoost ## Optional (but highly recommended): # To score the network on cells (i.e. run AUCell): BiocManager::install(c("zoo", "mixtools", "rbokeh")) # For various visualizations and perform t-SNEs: BiocManager::install(c("DT", "NMF", "pheatmap", "R2HTML", "Rtsne")) # To support paralell execution (not available in Windows): BiocManager::install(c("doMC", "doRNG")) # To export/visualize in http://scope.aertslab.org if (!requireNamespace("devtools", quietly = TRUE)) install.packages("devtools") devtools::install_github("aertslab/SCopeLoomR", build_vignettes = TRUE)

    Version:?AUCell >=1.4.1?(minimum 1.2.4),?RcisTarget>=1.2.0?(minimum 1.0.2) and?GENIE3>=1.4.0(minimum 1.2.1).

    安裝SCENIC:

    if (!requireNamespace("devtools", quietly = TRUE)) install.packages("devtools") devtools::install_github("aertslab/SCENIC") packageVersion("SCENIC")

    下載評分數(shù)據(jù)庫

    除了必要的R包之外,需要下載RcisTarget的物種特定數(shù)據(jù)庫(https://resources.aertslab.org/cistarget/;主題排名)。默認情況下,SCENIC使用在基因啟動子(TSS上游500 bp)和TSS周圍?20 kb (+/- 10kb)中對模序進行評分的數(shù)據(jù)庫。

    • For?human:
    dbFiles <- c("https://resources.aertslab.org/cistarget/databases/homo_sapiens/hg19/refseq_r45/mc9nr/gene_based/hg19-500bp-upstream-7species.mc9nr.feather","https://resources.aertslab.org/cistarget/databases/homo_sapiens/hg19/refseq_r45/mc9nr/gene_based/hg19-tss-centered-10kb-7species.mc9nr.feather")# mc9nr: Motif collection version 9: 24k motifs
    • For?mouse:
    dbFiles <- c("https://resources.aertslab.org/cistarget/databases/mus_musculus/mm9/refseq_r45/mc9nr/gene_based/mm9-500bp-upstream-7species.mc9nr.feather", "https://resources.aertslab.org/cistarget/databases/mus_musculus/mm9/refseq_r45/mc9nr/gene_based/mm9-tss-centered-10kb-7species.mc9nr.feather") # mc9nr: Motif collection version 9: 24k motifs
    • For?fly:
    dbFiles <- c("https://resources.aertslab.org/cistarget/databases/drosophila_melanogaster/dm6/flybase_r6.02/mc8nr/gene_based/dm6-5kb-upstream-full-tx-11species.mc8nr.feather") # mc8nr: Motif collection version 8: 20k motifs

    注意:下載后最好確認下載的數(shù)據(jù)是否完整,可基于MD5值評估。(參考鏈接:https://resources.aertslab.org/cistarget/databases/sha256sum.txt)

    完成這些設置步驟后,SCENIC即可運行!

    數(shù)據(jù)格式不同時如何讀入?

    最終讀入的信息有兩個,一個是前面說的表達矩陣,還有一個是樣品分組信息。

    • a) From?.loom?file

    .loom文件可以通過SCopeLoomR包直接導入SCENIC。(loom格式是用于存儲非常大的組學數(shù)據(jù)集的專屬格式,具體見 http://linnarssonlab.org/loompy/)

    ## Download:download.file("http://loom.linnarssonlab.org/clone/Previously%20Published/Cortex.loom", "Cortex.loom") loomPath <- "Cortex.loom"
    • b) From 10X/CellRanger output files

    10X/CellRanger輸出結果可用作SCENIC的輸入文件 (需要先安裝Seurat)。

    # BiocManager::install("Seurat") # 測試數(shù)據(jù)也可以從Seurat官網(wǎng)下載,自己修改路徑 # 測試數(shù)據(jù):https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/output/matrices#r-load-mat> singleCellMatrix <- Seurat::Read10X(data.dir="data/pbmc3k/filtered_gene_bc_matrices/hg19/") cellInfo <- data.frame(seuratCluster=Idents(seuratObject))
    • c) From other R objects (e.g. Seurat, SingleCellExperiment)
    sce <- load_as_sce(dataPath) # any SingleCellExperiment object exprMat <- counts(sce) cellInfo <- colData(sce)
    • d) From GEO

    從GEO下載和格式化數(shù)據(jù)集的示例(例如,GEOGSE60361:3005小鼠腦細胞數(shù)據(jù)集)

    # 獲取數(shù)據(jù)及數(shù)據(jù)標注 # dir.create("SCENIC_MouseBrain"); setwd("SCENIC_MouseBrain") # if needed # (This may take a few minutes) if (!requireNamespace("GEOquery", quietly = TRUE)) BiocManager::install("GEOquery") library(GEOquery) geoFile <- getGEOSuppFiles("GSE60361", makeDirectory=FALSE) gzFile <- grep("Expression", basename(rownames(geoFile)), value=TRUE) txtFile <- gsub(".gz", "", gzFile) gunzip(gzFile, destname=txtFile, remove=TRUE) library(data.table) geoData <- fread(txtFile, sep="\t") geneNames <- unname(unlist(geoData[,1, with=FALSE])) exprMatrix <- as.matrix(geoData[,-1, with=FALSE]) rm(geoData) dim(exprMatrix) rownames(exprMatrix) <- geneNames exprMatrix <- exprMatrix[unique(rownames(exprMatrix)),] exprMatrix[1:5,1:4] # Remove file downloaded: file.remove(txtFile)

    運行 SCENIC

    SCENIC workflow:

    建立基因調控網(wǎng)絡(Gene Regulation Network,GRN):

  • 基于共表達識別每個轉錄因子TF的潛在靶標。
    過濾表達矩陣并運行GENIE3或者GRNBoost,它們是利用表達矩陣推斷基因調控網(wǎng)絡的一種算法,能得到轉錄因子和潛在靶標的相關性網(wǎng)絡;
    將目標從GENIE3或者GRNBoost格式轉為共表達模塊。

  • 根據(jù)DNA模序分析(motif)選擇潛在的直接結合靶標(調節(jié)因子)(利用RcisTarget包:TF基序分析)

  • 確定細胞狀態(tài)及其調節(jié)因子

    3.?分析每個細胞中的網(wǎng)絡活性(AUCell)

    • 在細胞中評分調節(jié)子(計算AUC)

    SCENIC完整流程

    ### 導入數(shù)據(jù) loomPath <- system.file(package="SCENIC", "examples/mouseBrain_toy.loom") library(SCopeLoomR) loom <- open_loom(loomPath, mode="r") exprMat <- get_dgem(loom) cellInfo <- get_cellAnnotation(loom) close_loom(loom) ### Initialize settings 初始設置,導入評分數(shù)據(jù)庫 library(SCENIC) scenicOptions <- initializeScenic(org="mgi", dbDir="cisTarget_databases", nCores=10) # scenicOptions@inputDatasetInfo$cellInfo <- "int/cellInfo.Rds" saveRDS(scenicOptions, file="int/scenicOptions.Rds") ### 共表達網(wǎng)絡 genesKept <- geneFiltering(exprMat, scenicOptions) exprMat_filtered <- exprMat[genesKept, ] runCorrelation(exprMat_filtered, scenicOptions) exprMat_filtered_log <- log2(exprMat_filtered+1) runGenie3(exprMat_filtered_log, scenicOptions) ### Build and score the GRN 構建并給基因調控網(wǎng)絡(GRN)打分 exprMat_log <- log2(exprMat+1) scenicOptions@settings$dbs <- scenicOptions@settings$dbs["10kb"] # Toy run settings runSCENIC_1_coexNetwork2modules(scenicOptions) runSCENIC_2_createRegulons(scenicOptions, coexMethod=c("top5perTarget")) # Toy run settings runSCENIC_3_scoreCells(scenicOptions, exprMat_log) # Export: export2scope(scenicOptions, exprMat) # Binarize activity? # aucellApp <- plotTsne_AUCellApp(scenicOptions, exprMat_log) # savedSelections <- shiny::runApp(aucellApp) # newThresholds <- savedSelections$thresholds # scenicOptions@fileNames$int["aucell_thresholds",1] <- "int/newThresholds.Rds" # saveRDS(newThresholds, file=getIntName(scenicOptions, "aucell_thresholds")) # saveRDS(scenicOptions, file="int/scenicOptions.Rds") runSCENIC_4_aucell_binarize(scenicOptions) ### Exploring output # Check files in folder 'output' # .loom file @ http://scope.aertslab.org # output/Step2_MotifEnrichment_preview.html in detail/subset: motifEnrichment_selfMotifs_wGenes <- loadInt(scenicOptions, "motifEnrichment_selfMotifs_wGenes") tableSubset <- motifEnrichment_selfMotifs_wGenes[highlightedTFs=="Sox8"] viewMotifs(tableSubset) # output/Step2_regulonTargetsInfo.tsv in detail: regulonTargetsInfo <- loadInt(scenicOptions, "regulonTargetsInfo") tableSubset <- regulonTargetsInfo[TF=="Stat6" & highConfAnnot==TRUE] viewMotifs(tableSubset)

    舉個栗子!

    輸入表達矩陣

    在本教程中,我們提供了一個示例,樣本是小鼠大腦的200個細胞和862個基因:

    loomPath <- system.file(package="SCENIC", "examples/mouseBrain_toy.loom")

    打開loom文件并加載表達矩陣;

    library(SCopeLoomR) loom <- open_loom(loomPath, mode="r") exprMat <- get_dgem(loom) cellInfo <- get_cellAnnotation(loom) close_loom(loom) dim(exprMat)

    細胞信息/表型

    # cellInfo$nGene <- colSums(exprMat>0) head(cellInfo)

    cellInfo <- data.frame(cellInfo) cellTypeColumn <- "Class" colnames(cellInfo)[which(colnames(cellInfo)==cellTypeColumn)] <- "CellType" cbind(table(cellInfo$CellType))

    # Color to assign to the variables (same format as for NMF::aheatmap) colVars <- list(CellType=c("microglia"="forestgreen","endothelial-mural"="darkorange","astrocytes_ependymal"="magenta4","oligodendrocytes"="hotpink","interneurons"="red3","pyramidal CA1"="skyblue","pyramidal SS"="darkblue")) colVars$CellType <- colVars$CellType[intersect(names(colVars$CellType), cellInfo$CellType)] saveRDS(colVars, file="int/colVars.Rds") plot.new(); legend(0,1, fill=colVars$CellType, legend=names(colVars$CellType))

    初始化SCENIC設置

    為了在SCENIC的多個步驟中保持設置一致,SCENIC包中的大多數(shù)函數(shù)使用一個公共對象,該對象存儲當前運行的選項并代替大多數(shù)函數(shù)的“參數(shù)”。比如下面的org,dbDir等,可以在開始就將物種rog(mgi—— mouse,?hgnc?—— human,?dmel?—— fly)和RcisTarge數(shù)據(jù)庫位置分別讀給對象org,dbDir,之后統(tǒng)一用函數(shù)initializeScenic得到對象scenicOptions。具體參數(shù)設置可以用?initializeScenichelp一下。

    library(SCENIC) org="mgi" # or hgnc, or dmel dbDir="cisTarget_databases" # RcisTarget databases location myDatasetTitle="SCENIC example on Mouse brain" # choose a name for your analysis data(defaultDbNames) dbs <- defaultDbNames[[org]] scenicOptions <- initializeScenic(org=org, dbDir=dbDir, dbs=dbs, datasetTitle=myDatasetTitle, nCores=10)

    # Modify if needed scenicOptions@inputDatasetInfo$cellInfo <- "int/cellInfo.Rds" scenicOptions@inputDatasetInfo$colVars <- "int/colVars.Rds" # Databases: # scenicOptions@settings$dbs <- c("mm9-5kb-mc8nr"="mm9-tss-centered-5kb-10species.mc8nr.feather") # scenicOptions@settings$db_mcVersion <- "v8" # Save to use at a later time... saveRDS(scenicOptions, file="int/scenicOptions.Rds")

    共表達網(wǎng)絡

    SCENIC工作流程的第一步是根據(jù)表達數(shù)據(jù)推斷潛在的轉錄因子靶標。為此,我們使用GENIE3或GRNBoost,輸入文件是表達矩陣(過濾后的)和轉錄因子列表。GENIE3/GRBBoost的輸出結果和相關矩陣將用于創(chuàng)建共表達模塊(runSCENIC_1_coexNetwork2modules())。

    基因過濾/選擇

    • 按每個基因的reads總數(shù)進行過濾。

      該filter旨在去除最可能是噪音的基因。

      默認情況下,它(minCountsPerGene)保留所有樣品中至少帶有6個UMI reads的基因(例如,如果在1%的細胞中以3的值表達,則基因將具有的總數(shù))。

    • 通過基因的細胞數(shù)來實現(xiàn)過濾(例如 UMI > 0 ,或log 2(TPM)> 1 )。

      默認情況下(minSamples),保留下來的基因能在至少1%的細胞中檢測得到。

    • 最后,只保留RcisTarget數(shù)據(jù)庫中可用的基因。

    # (Adjust minimum values according to your dataset) genesKept <- geneFiltering(exprMat, scenicOptions=scenicOptions,minCountsPerGene=3*.01*ncol(exprMat),minSamples=ncol(exprMat)*.01)

    在進行網(wǎng)絡推斷之前,檢查是否有任何已知的相關基因被過濾掉(如果缺少任何相關基因,請仔細檢查filter設置是否合適):

    interestingGenes <- c("Sox9", "Sox10", "Dlx5") # any missing? interestingGenes[which(!interestingGenes %in% genesKept)]

    相關性

    GENIE33或者GRNBoost可以檢測正負關聯(lián)。為了區(qū)分潛在的激活和抑制,我們將目標分為正相關和負相關目標(比如TF與潛在目標之間的Spearman相關性)。

    runCorrelation(exprMat_filtered, scenicOptions)

    運行GENIE3得到潛在轉錄因子TF

    ## If launched in a new session, you will need to reload... # setwd("...") # loomPath <- "..." # loom <- open_loom(loomPath, mode="r") # exprMat <- get_dgem(loom) # close_loom(loom) # genesKept <- loadInt(scenicOptions, "genesKept") # exprMat_filtered <- exprMat[genesKept,] # library(SCENIC) # scenicOptions <- readRDS("int/scenicOptions.Rds") # Optional: add log (if it is not logged/normalized already) exprMat_filtered <- log2(exprMat_filtered+1) # Run GENIE3 runGenie3(exprMat_filtered, scenicOptions)

    構建并評分GRN(runSCENIC_ …)

    必要時重新加載表達式矩陣:

    loom <- open_loom(loomPath, mode="r") exprMat <- get_dgem(loom) close_loom(loom) # Optional: log expression (for TF expression plot, it does not affect any other calculation) logMat <- log2(exprMat+1) dim(exprMat)

    使用wrapper函數(shù)運行其余步驟:

    library(SCENIC) scenicOptions <- readRDS("int/scenicOptions.Rds") scenicOptions@settings$verbose <- TRUE scenicOptions@settings$nCores <- 10 scenicOptions@settings$seed <- 123 # For a very quick run: # coexMethod=c("top5perTarget") scenicOptions@settings$dbs <- scenicOptions@settings$dbs["10kb"] # For toy run # save... runSCENIC_1_coexNetwork2modules(scenicOptions) runSCENIC_2_createRegulons(scenicOptions, coexMethod=c("top5perTarget")) #** Only for toy run!! runSCENIC_3_scoreCells(scenicOptions, logMat)

    可選步驟

    將network activity轉換成ON/OFF(二進制)格式

    nPcs <- c(5) # For toy dataset # nPcs <- c(5,15,50) scenicOptions@settings$seed <- 123 # same seed for all of them # Run t-SNE with different settings: fileNames <- tsneAUC(scenicOptions, aucType="AUC", nPcs=nPcs, perpl=c(5,15,50)) fileNames <- tsneAUC(scenicOptions, aucType="AUC", nPcs=nPcs, perpl=c(5,15,50), onlyHighConf=TRUE, filePrefix="int/tSNE_oHC") # Plot as pdf (individual files in int/): fileNames <- paste0("int/",grep(".Rds", grep("tSNE_", list.files("int"), value=T), value=T)) par(mfrow=c(length(nPcs), 3)) fileNames <- paste0("int/",grep(".Rds", grep("tSNE_AUC", list.files("int"), value=T, perl = T), value=T)) plotTsne_compareSettings(fileNames, scenicOptions, showLegend=FALSE, varName="CellType", cex=.5)

    # Using only "high-confidence" regulons (normally similar) par(mfrow=c(3,3)) fileNames <- paste0("int/",grep(".Rds", grep("tSNE_oHC_AUC", list.files("int"), value=T, perl = T), value=T)) plotTsne_compareSettings(fileNames, scenicOptions, showLegend=FALSE, varName="CellType", cex=.5)

    輸出到 loom/SCope

    SCENIC生成的結果既能在http://scope.aertslab.org查看,還能用函數(shù)export2scope()(需要SCopeLoomR包)保存成.loom文件。

    # DGEM (Digital gene expression matrix) # (non-normalized counts) # exprMat <- get_dgem(open_loom(loomPath)) # dgem <- exprMat # head(colnames(dgem)) #should contain the Cell ID/name # Export: scenicOptions@fileNames$output["loomFile",] <- "output/mouseBrain_SCENIC.loom" export2scope(scenicOptions, exprMat)

    加載.loom文件中的結果

    SCopeLoomR中也有函數(shù)可以導入.loom文件中的內容,比如調節(jié)因子,AUC和封裝內容(比如regulon activity的t-SNE和UMAP結果)。

    library(SCopeLoomR) scenicLoomPath <- getOutName(scenicOptions, "loomFile") loom <- open_loom(scenicLoomPath) # Read information from loom file: regulons_incidMat <- get_regulons(loom) regulons <- regulonsToGeneLists(regulons_incidMat) regulonsAUC <- get_regulonsAuc(loom) regulonsAucThresholds <- get_regulonThresholds(loom) embeddings <- get_embeddings(loom)

    解讀結果

    1. 細胞狀態(tài)

    AUCell提供跨細胞的調節(jié)子的活性,AUCell使用“Area under Curve 曲線下面積”(AUC)來計算輸入基因集的關鍵子集是否在每個細胞的表達基因中富集。通過該調節(jié)子活性(連續(xù)或二進制AUC矩陣)來聚類細胞,我們可以看出是否存在傾向于具有相同調節(jié)子活性的細胞群,并揭示在多個細胞中反復發(fā)生的網(wǎng)絡狀態(tài)。這些狀態(tài)等同于網(wǎng)絡的吸引子狀態(tài)。將這些聚類與不同的可視化方法相結合,我們可以探索細胞狀態(tài)與特定調節(jié)子的關聯(lián)。

    將AUC和TF表達投射到t-SNE上

    logMat <- exprMat # Better if it is logged/normalized aucellApp <- plotTsne_AUCellApp(scenicOptions, logMat) # default t-SNE savedSelections <- shiny::runApp(aucellApp) print(tsneFileName(scenicOptions)) tSNE_scenic <- readRDS(tsneFileName(scenicOptions)) aucell_regulonAUC <- loadInt(scenicOptions, "aucell_regulonAUC") # Show TF expression: par(mfrow=c(2,3)) AUCell::AUCell_plotTSNE(tSNE_scenic$Y, exprMat, aucell_regulonAUC[onlyNonDuplicatedExtended(rownames(aucell_regulonAUC))[c("Dlx5", "Sox10", "Sox9","Irf1", "Stat6")],], plots="Expression")

    # Save AUC as PDF: Cairo::CairoPDF("output/Step4_BinaryRegulonActivity_tSNE_colByAUC.pdf", width=20, height=15) par(mfrow=c(4,6)) AUCell::AUCell_plotTSNE(tSNE_scenic$Y, cellsAUC=aucell_regulonAUC, plots="AUC") dev.off() library(KernSmooth) library(RColorBrewer) dens2d <- bkde2D(tSNE_scenic$Y, 1)$fhat image(dens2d, col=brewer.pal(9, "YlOrBr"), axes=FALSE) contour(dens2d, add=TRUE, nlevels=5, drawlabels=FALSE)

    #par(bg = "black") par(mfrow=c(1,2)) regulonNames <- c( "Dlx5","Sox10") cellCol <- plotTsne_rgb(scenicOptions, regulonNames, aucType="AUC", aucMaxContrast=0.6) text(0, 10, attr(cellCol,"red"), col="red", cex=.7, pos=4) text(-20,-10, attr(cellCol,"green"), col="green3", cex=.7, pos=4) regulonNames <- list(red=c("Sox10", "Sox8"),green=c("Irf1"),blue=c( "Tef")) cellCol <- plotTsne_rgb(scenicOptions, regulonNames, aucType="Binary") text(5, 15, attr(cellCol,"red"), col="red", cex=.7, pos=4) text(5, 15-4, attr(cellCol,"green"), col="green3", cex=.7, pos=4) text(5, 15-8, attr(cellCol,"blue"), col="blue", cex=.7, pos=4)

    GRN:Regulon靶標和模序

    regulons <- loadInt(scenicOptions, "regulons") regulons[c("Dlx5", "Irf1")]

    regulons <- loadInt(scenicOptions, "aucell_regulons") head(cbind(onlyNonDuplicatedExtended(names(regulons))))

    regulonTargetsInfo <- loadInt(scenicOptions, "regulonTargetsInfo") tableSubset <- regulonTargetsInfo[TF=="Stat6" & highConfAnnot==TRUE] viewMotifs(tableSubset)

    2. 細胞群的調控因子

    regulonAUC <- loadInt(scenicOptions, "aucell_regulonAUC") regulonAUC <- regulonAUC[onlyNonDuplicatedExtended(rownames(regulonAUC)),] regulonActivity_byCellType <- sapply(split(rownames(cellInfo), cellInfo$CellType),function(cells) rowMeans(getAUC(regulonAUC)[,cells])) regulonActivity_byCellType_Scaled <- t(scale(t(regulonActivity_byCellType), center = T, scale=T)) pheatmap::pheatmap(regulonActivity_byCellType_Scaled, #fontsize_row=3,color=colorRampPalette(c("blue","white","red"))(100), breaks=seq(-3, 3, length.out = 100),treeheight_row=10, treeheight_col=10, border_color=NA)

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-oeZD3EFC-1575035969758)(https://upload-images.jianshu.io/upload_images/7071112-5217e56ad796916e?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

    # filename="regulonActivity_byCellType.pdf", width=10, height=20) topRegulators <- reshape2::melt(regulonActivity_byCellType_Scaled) colnames(topRegulators) <- c("Regulon", "CellType", "RelativeActivity") topRegulators <- topRegulators[which(topRegulators$RelativeActivity>0),] viewTable(topRegulators) minPerc <- .7 binaryRegulonActivity <- loadInt(scenicOptions, "aucell_binary_nonDupl") cellInfo_binarizedCells <- cellInfo[which(rownames(cellInfo)%in% colnames(binaryRegulonActivity)),, drop=FALSE] regulonActivity_byCellType_Binarized <- sapply(split(rownames(cellInfo_binarizedCells), cellInfo_binarizedCells$CellType),function(cells) rowMeans(binaryRegulonActivity[,cells, drop=FALSE])) binaryActPerc_subset <- regulonActivity_byCellType_Binarized[which(rowSums(regulonActivity_byCellType_Binarized>minPerc)>0),] pheatmap::pheatmap(binaryActPerc_subset, # fontsize_row=5,color = colorRampPalette(c("white","pink","red"))(100), breaks=seq(0, 1, length.out = 100),treeheight_row=10, treeheight_col=10, border_color=NA)

    參考文獻

    Aibar, Sara, Carmen Bravo González-Blas, Thomas Moerman, Jasper Wouters, Van Anh Huynh-Thu, Hana Imrichová, Zeynep Kalender Atak, et al. 2017. “SCENIC: Single-Cell Regulatory Network Inference and Clustering.”?Nature Methods?14 (october): 1083–6. doi:10.1038/nmeth.4463.

    Davie, Kristofer, Jasper Janssens, Duygu Koldere, and “et al.” 2018. “A Single-Cell Transcriptome Atlas of the Aging Drosophila Brain.”?Cell, june. doi:10.1016/j.cell.2018.05.057.

    Huynh-Thu, Van Anh, Alexandre Irrthum, Louis Wehenkel, and Pierre Geurts. 2010. “Inferring Regulatory Networks from Expression Data Using Tree-Based Methods.”?PloS One?5 (9). doi:10.1371/journal.pone.0012776.

    Marbach, Daniel, James C. Costello, Robert Küffner, Nicole M. Vega, Robert J. Prill, Diogo M. Camacho, Kyle R. Allison, et al. 2012. “Wisdom of Crowds for Robust Gene Network Inference.”?Nature Methods?9 (8): 796–804. doi:10.1038/nmeth.2016.

    https://rawcdn.githack.com/aertslab/SCENIC/0a4c96ed8d930edd8868f07428090f9dae264705/inst/doc/SCENIC_Running.html#directories

    創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

    總結

    以上是生活随笔為你收集整理的SCENIC | 从单细胞数据推断基因调控网络和细胞类型的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 亚洲国产综合av | 精品国产乱码久久久久久久软件 | 日韩在线毛片 | 秋霞影院午夜丰满少妇在线视频 | 欧美综合亚洲 | 日韩中文一区二区 | 天堂av在线免费观看 | 亚洲福利二区 | 日本成人黄色片 | 欧美做受喷浆在线观看 | 亚洲六月婷婷 | 亚洲第三区 | 中文字幕有码av | 久久久性色精品国产免费观看 | 久久中文字幕高清 | 国产精品毛片一区二区三区 | 在线观看黄色动漫 | 黄色国产片 | 国产成人精品一区二区三区免费 | 午夜福利视频合集1000 | 超碰日本 | 91精品国产综合久久久蜜臀粉嫩 | 天堂网在线看 | 青青草手机视频在线观看 | 日韩性欧美 | 男人的天堂伊人 | 色偷偷影院 | 国内精品嫩模av私拍在线观看 | 久久艹av| 日韩爱爱片 | 久久丝袜美腿 | 午夜在线视频免费 | 精品人妻无码一区二区 | 久久成人午夜 | 亚洲熟妇丰满大屁股熟妇 | 先锋影音制服丝袜 | 欧美性猛交bbbbb精品 | 91在线看片 | 亚洲一区二区三区91 | 国产精品一级二级三级 | 午夜看看 | a片在线免费观看 | 日韩欧美国产亚洲 | 九色porny自拍视频 | 中文字幕不卡视频 | 五月天狠狠干 | 亚洲欧美日韩国产一区 | 五十路熟母 | 国产性70yerg老太 | 国产一区二区高清视频 | av啊啊| 青青国产在线观看 | 91麻豆免费看 | 日韩一区二区毛片 | 国产精品视频在线播放 | 国产视频a| 国产精品久久久久久一区二区三区 | 麻豆黄色一级片 | 欧美一区二区三区啪啪 | 久久这里只有精品23 | 中文字幕在线不卡视频 | 日韩一区二区不卡视频 | 午夜网页 | 天天噜日日噜 | jizz成人| 精品一区二区三区成人免费视频 | 精品无码av一区二区三区 | 香蕉成人在线视频 | 兔费看少妇性l交大片免费 日韩高清不卡 | 亚洲精品888 | 中国特级黄色大片 | 黄色在线免费看 | 影音先锋二区 | 久久经典视频 | n0659极腔濑亚美莉在线播放播放 | 97超级碰碰碰 | 欧美激情欧美激情在线五月 | 男同精品 | 亚洲色图激情 | 欧美日韩在线视频观看 | 欧美r级在线观看 | 能免费看18视频网站 | 精品国产91久久久久久 | 免费激情小视频 | 色8久久| 久久亚洲精品国产精品黑人v | 欧美日韩人妻精品一区 | 黄a网站| 真实乱视频国产免费观看 | 午夜高潮视频 | 青青视频免费 | 亚洲伦理在线 | 尤果网福利视频在线观看 | 国产精品一级片在线观看 | 色欧美88888久久久久久影院 | 欧美一级片在线看 | 一级特黄aaa大片 | 哈利波特3在线观看免费版英文版 | 麻豆久久久9性大片 |