RNA 36. SCI 文基于转录组数据识别CNV并可视化 (CaSpER)

dfa4b0b931365721b6c04d8e6073dcf9.png


转录组生信分析教程

桓峰基因公众号推出转录组分析教程,有需要生信的老师可以联系我们!转录分析教程整理如下:

RNA 1. 基因表达那些事--基于 GEO

RNA 2. SCI文章中基于GEO的差异表达基因之 limma

RNA 3. SCI 文章中基于T CGA 差异表达基因之 DESeq2

RNA 4. SCI 文章中基于TCGA 差异表达之 edgeR

RNA 5. SCI 文章中差异基因表达之 MA 图

RNA 6. 差异基因表达之-- 火山图 (volcano)

RNA 7. SCI 文章中的基因表达——主成分分析 (PCA)

RNA 8. SCI文章中差异基因表达--热图 (heatmap)

RNA 9. SCI 文章中基因表达之 GO 注释

RNA 10. SCI 文章中基因表达富集之--KEGG

RNA 11. SCI 文章中基因表达富集之 GSEA

RNA 12. SCI 文章中肿瘤免疫浸润计算方法之 CIBERSORT

RNA 13. SCI 文章中差异表达基因之 WGCNA

RNA 14. SCI 文章中差异表达基因之 蛋白互作网络 (PPI)

RNA 15. SCI 文章中的融合基因之 FusionGDB2

RNA 16. SCI 文章中的融合基因之可视化

RNA 17. SCI 文章中的筛选 Hub 基因 (Hub genes)

RNA 18. SCI 文章中基因集变异分析 GSVA

RNA 19. SCI 文章中无监督聚类法 (ConsensusClusterPlus)

RNA 20. SCI 文章中单样本免疫浸润分析 (ssGSEA)

RNA 21. SCI 文章中单基因富集分析

RNA 22. SCI 文章中基于表达估计恶性肿瘤组织的基质细胞和免疫细胞(ESTIMATE)

RNA 23. SCI文章中表达基因模型的风险因子关联图(ggrisk)

RNA 24. SCI文章中基于TCGA的免疫浸润细胞分析 (TIMER)

RNA 25. SCI文章中估计组织浸润免疫细胞和基质细胞群的群体丰度(MCP-counter)

RNA 25. SCI文章中只有生信没有实验该怎么办?

RNA 26. SCI文章中基于转录组数据的基因调控网络推断 (GENIE3)

RNA 27 SCI文章中转录因子结合motif富集到调控网络 (RcisTarget)

RNA 28 SCI 文章中基于RNA-seq数据反褶积揭示肿瘤免疫结构的分子和药理学 (quanTIseq)

RNA 29. SCI文章中基于TCGA的免疫浸润细胞分析 (TIMER2.0)

RNA 30. SCI文章中基于TCGA和GTEx数据挖掘神器(GEPIA2)

RNA 31. SCI文章临床蛋白质组肿瘤在线数据挖掘神器(CPTAC)

RNA 32. SCI文章临床多组学肿瘤在线数据挖掘神器(UALCAN)

RNA 33. SCI文章肿瘤在线数据挖掘神器(cBioportal)

RNA 34. SCI 文章基因蛋白表达时间趋势分析及划分聚类群 (Mfuzz)

RNA 35. SCI 文章基于RNA-seq推断CNVs (RNAseqCNV)


简  介

RNA 测序实验产生大量关于基因表达水平的信息。虽然它们主要用于量化表达水平,但它们包含更多重要的生物学信息,如拷贝数变异 (CNVs)。CaSpER 提出了一种信号处理方法,用于识别,可视化和综合分析多尺度分辨率的焦点和大规模 CNV 事件,使用大量或单细胞 RNA 测序数据。CaSpER 融合了表达信号和等位基因移位信号的多尺度平滑,用于CNV 调用。等位基因位移信号测量杂合度损失 (LOH) 对 CNV 鉴定有价值。CaSpER 采用了一种有效的方法,从 reads 中产生全基因组 B 等位基因频率 (BAF) 信号谱,并用来校正 CNVs 识别。CaSpER 增加了 RNA 测序数据集的实用性,并用于完整表征和可视化单细胞或 RNA-seq 数据的基因组和转录组学分布情况。

B-allele frequency (BAF) is the proportion of hybridized sample that carries the B allele as designated by the Infinium assay. In a normal sample, discrete BAFs of 0.0, 0.5, and 1.0 are expected for each locus (representing AA, AB, and BB).

443d7a7dd9ebc2859976681153914dfd.png

该软件包的设计思路及流程如下:

4b8946104634f331279c49d7eb5b096e.png

c63fdff088f49998035a82a87615d2ca.png

软件包安装

软件包 CaSpER 安装非常简单,直接安装即可:

install.packages("remotes")
remotes::install_github("akdess/CaSpER")

数据读取

CaSpER 的输入由对齐的 RNA-Seq reads 和规范化的表达矩阵组成。CaSpER 使用来自 RNA-Seq reads的表达值和 B-allele frequencies (BAF)来估计CNV事件。

基因表达数据

表达值应该使用 TPM 或 FPKM 进行规范化。下面是一个规范化基因表达输入的例子:

library(CaSpER)
library(data.table)
library(knitr)
data <- yale_meningioma$data
loh <- yale_meningioma$loh
loh.name.mapping <- yale_meningioma$loh.name.mapping
control.sample.ids <- yale_meningioma$control.sample.ids
genoMat <- yale_meningioma$genoMat
samps <- yale_meningioma$samps

基因组注释文件

归一化基因表达矩阵行表示具有 Ensembl 基因id 或 hgnc 基因符号的基因。列表示样本或细胞。细胞带信息可从UCSC下载。

# http://hgdownload.cse.ucsc.edu/goldenPath/hg19/database/cytoBand.txt.gz
data(hg19_cytoband)
kable(cytoband[1:5, ])

注释数据包含基因组中每个基因沿每条染色体的位置,可以使用以下功能生成:

annotation <- generateAnnotation(id_type = "ensembl_gene_id", genes = rownames(yale_meningioma$data),ishg19 = T, centromere)
kable(annotation[1:5, ])

SNP文件

使用以下函数读取 BAFExtract 输出文件:

loh <- readBAFExtractOutput(path = "./meningioma_baf\\", sequencing.type = "bulk")
names(loh) <- gsub(".snp", "", names(loh))

实例操作

识别CNV事件

用来识别CNV事件的主要函数是CreateCasperObject()和runCaSpER(casper_object)。

创建casper对象

casper对象是执行单细胞和大量RNA-Seq的CNV分析所必需的。Casper对象是使用以下函数创建的:

object <- CreateCasperObject(raw.data = data, loh.name.mapping = loh.name.mapping,sequencing.type = "bulk", cnv.scale = 3, loh.scale = 3, matrix.type = "normalized",expr.cutoff = 4.5, annotation = annotation, method = "iterative", loh = loh,filter = "median", control.sample.ids = control.sample.ids, cytoband = cytoband)kable(yale_meningioma$loh.name.mapping[1:5, ])

BAF和表达信号的两两比较

在创建casper对象后,对表达信号的所有尺度执行HMM,并将HMM分段状态与等位基因频移信息相结合。CaSpER算法使用表达式信号和BAF信号分解的所有成对比较来输出CNV调用。

## runCaSpER
final.objects <- runCaSpER(object, removeCentromere = T, cytoband = cytoband, method = "iterative")
## sample plot orders
order.sampleNames <- c("MN-1171", "MN-60835", "MN-1236", "MN-1237", "MN-1137", "MN-1161","MN-60", "MN-5")

多个BAF和表达信号成对比较的CNV识别的方法

CNV 识别的两两比较和分配产生了大量的信号信息,必须对这些信息进行总结,以便为基因组的每个位置分配关于其 CNV 状态的结果,即amp/del/neutral 。我们使用基于一致性的方法来协调两两比较: 将事件放在一起,如果 CNV 调用在至少一定数量的两两规模比较中是一致的,我们就为一个基因或大型事件分配最终的CNV。CaSpER 通过将 CNV 调用分为大规模的、基于基因的和基于片段的CNV调用来协调和总结CNV调用

a. Large-Scale CNV Summarization.

为每条染色体臂分配了一个大规模的CNV调用,用于每个N×M两两规模比较。接下来,对于每个染色arm,识别大规模CNV调用在至少γ次N×M大规模CNV调用中是否一致。N为表达式信号最高平滑尺度的指标。M为BAF信号的最高平滑尺度指数。THR 代表最小百分比,75%(9个量表中至少7个),一致的CNV调用(在N×M表达量表和BAF量表的比较中),同时将最终的CNV (amp/del/neutral)调用分配给片段/基因/染色arm。

## large scale event summary
finalChrMat <- extractLargeScaleEvents(final.objects, thr = 0.75)
common <- intersect(order.sampleNames, intersect(rownames(finalChrMat), rownames(genoMat)))
finalChrMat <- finalChrMat[match(common, rownames(finalChrMat)), ]
genoMat <- genoMat[match(common, rownames(genoMat)), ]
## calculate TPR and FPR using genotyping array as gold standard
calcROC(chrMat = finalChrMat, chrMat2 = genoMat)

b. Segment based CNV Summarization

基于片段的摘要旨在为通过尺度比较计算的最终片段集生成最终的CNV调用集。首先比较来自不同表达尺度的片段,生成一致的片段集。对于最终集合中的每个片段,如果在N×M CNV调用中有超过γ(默认=6)个一致的CNV调用,将一致的CNV调用分配给片段。当调用之间不存在一致性时,给segment分配一个中性的CNV状态。

library(GenomicRanges)
gamma <- 7
all.segments <- do.call(rbind, lapply(final.objects, function(x) x@segments))
segment.summary <- extractSegmentSummary(final.objects)
loss <- segment.summary$all.summary.loss
gain <- segment.summary$all.summary.gain
loh <- segment.summary$all.summary.lohloss.final <- loss[loss$count >= gamma, ]
gain.final <- gain[gain$count >= gamma, ]
loh.final <- loh[loh$count >= gamma, ]

c. Gene based CNV Summarization

与大规模总结类似,生成一个矩阵,其中行是样本(细胞),列是基因。矩阵项0表示没有改变,1表示扩增,-1表示删除。如果一个变化在超过γ尺度的比较中是一致的(在N×M比较之外),报告该样本的变化事件。

all.summary <- rbind(loss.final, gain.final)
colnames(all.summary)[2:4] <- c("Chromosome", "Start", "End")
rna <- GRanges(seqnames = Rle(gsub("q", "", gsub("p", "", all.summary$Chromosome))),IRanges(all.summary$Start, all.summary$End))
ann.gr <- makeGRangesFromDataFrame(final.objects[[1]]@annotation.filt, keep.extra.columns = TRUE,seqnames.field = "Chr")
hits <- findOverlaps(rna, ann.gr)
genes <- splitByOverlap(ann.gr, rna, "GeneSymbol")
genes.ann <- lapply(genes, function(x) x[!(x == "")])
all.genes <- unique(final.objects[[1]]@annotation.filt[, 2])
all.samples <- unique(as.character(final.objects[[1]]@segments$ID))
rna.matrix <- gene.matrix(seg = all.summary, all.genes = all.genes, all.samples = all.samples,genes.ann = genes.ann)

数据可视化

为了全面地可视化CNV事件,CaSpER首先生成结合所有样本的视觉效果,以便用户可以在所有样本上共同查看事件,并且可以直观地检查共现和互斥模式。为了表征这些模式,CaSpER对样本和检测到的CNVs进行聚类,并生成聚类图。我们在下面总结了这些可视化效果。

A. plotHeatmap

不同平滑尺度下全基因组基因表达信号图的可视化CaSpER输出不同尺度下的表达信号。在这些图中,每一行是一个样本,每一列是染色体。这些对于使用表达信号的全景检查来比较来自不同尺度的输出是有用的。

obj <- final.objects[[9]]
plotHeatmap(object = obj, fileName = "heatmap.png", cnv.scale = 3, cluster_cols = F,cluster_rows = T, show_rownames = T, only_soi = T)

0aff81b40ca19c809d1711c212ba9916.png

B. plotLargeScaleEvent

所有样本/细胞间大规模CNV事件的可视化。大尺度事件摘要用于总结多个样本上检测到的大尺度CNV事件(删除和扩增)。该图总结了大尺度的CNVs,并可能揭示在较小尺度上可视化数据时可能遗漏的模式。

## plot large scale events
plotLargeScaleEvent(object = obj, fileName = "large.scale.events.pdf")

cc3e53e3c69781716a40dd07a1ca7bbe.png

C. plotGEAndGT

绘制从基因分型和RNA-Seq中调用的大规模事件(仅适用于小样本量)

## plot large scale events called from genotyping and rna-seq (can be used only
## with small sample size)
plotGEAndGT(chrMat = finalChrMat, genoMat = genoMat, fileName = "RNASeqAndGT.png")

e903ec09809757ade56425a8219899a3.png

D. plotBAFAllSamples

所有样品的BAF移位信号的可视化。检测BAF移位信号对于分析CNV和LOH事件非常有用,特别是当与表达信号进行比较时。BAF移位图显示了BAF移位信号,使得每一行都是全基因组的BAF移位信号谱。

## plot BAF deviation for all samples together in one plot (can be used only
## with small sample size)
plotBAFAllSamples(loh = obj@loh.median.filtered.data, fileName = "LOHAllSamples.png")

1e15b911e78f257fd0737b485ea17d80.png

E. plotBAFOneSample

一个样本在不同尺度下BAF移位信号的可视化。该选项绘制了一个样本在不同尺度下的BAF移位信号。类似于表达信号的多尺度平滑,该信息可以全景评估和识别CNV和LOH事件。

## plot BAF signal in different scales for all samples
plotBAFOneSample(object, fileName = "LohPlotsAllScales.pdf")

d6d04b287d0a93e16dc382967cd0cf54.png

F. plotBAFInSeperatePages

在单独的页面上显示每个样品的BAF偏差。该选项分别为每个样本创建BAF移位信号。这样,用户可以可视化每个样本本身。

plotBAFInSeperatePages(loh = obj@loh.median.filtered.data, folderName = "LOHPlots")

194407a6bea1ff469fba019895b498f3.png

G. plotGEAndBAFOneSample

一个样地中一个样品的基因表达和BAF信号。该选项同时生成基因表达信号和BAF移位信号的可视化,以便用户可以在一个页面中共同评估。

plotGEAndBAFOneSample(object = obj, cnv.scale = 3, loh.scale = 3, sample = "MN-5")

8e1cb9b9b17e629abc884a464e168212.png

Reference

  1. Serin Harmanci A, Harmanci AO, Zhou X. CaSpER identifies and visualizes CNV events by integrative analysis of single-cell or bulk RNA-sequencing data. Nat Commun. 2020;11(1):89. Published 2020 Jan 3. doi:10.1038/s41467-019-13779-x

这个工具是不是非常好用?

学会了轻松拿捏数据分析,顿时觉得自己也行了,关注桓峰基因公众号,轻松学生信,高效写文章!

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

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

敬请期待!!

桓峰基因官网正式上线,请大家多多关注,还有很多不足之处,大家多多指正!

http://www.kyohogene.com/

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

7f9783bfead76326d08cbc65a7d7a681.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/74399.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python28种极坐标绘图函数总结

文章目录 基础图误差线等高线polar场图polar统计图非结构坐标图 &#x1f4ca;python35种绘图函数总结&#xff0c;3D、统计、流场&#xff0c;实用性拉满 matplotlib中的画图函数&#xff0c;大部分情况下只要声明坐标映射是polar&#xff0c;就都可以画出对应的极坐标图。但…

基于SSM的校园美食交流系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用Vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

2023-9-10 集合-Nim游戏

题目链接&#xff1a;集合-Nim游戏 #include <iostream> #include <cstring> #include <algorithm> #include <unordered_set>using namespace std;const int N 110, M 10010;int n, m; int s[N], f[M];int sg(int x) {if(f[x] ! -1) return f[x];//…

【补】代码随想录算法训练营day38|动态规划 |509. 斐波那契数|70. 爬楼梯|746. 使用最小花费爬楼梯

动态规划&#xff0c;英文&#xff1a;Dynamic Programming&#xff0c;简称DP&#xff0c;如果某一问题有很多重叠子问题&#xff0c;使用动态规划是最有效的。所以动态规划中每一个状态一定是由上一个状态推导出来的&#xff0c;这一点就区分于贪心&#xff0c;贪心没有状态推…

【初阶C语言】操作符1--对二进制的操作

前言&#xff1a;本节内容介绍的操作符&#xff0c;操作的对象是二进制位。所以前面先介绍整数的二进制位 一、二进制位介绍 1.二进制介绍 &#xff08;1&#xff09;整数的二进制表示形式有三种&#xff1a;原码、反码和补码。 &#xff08;2&#xff09;原码、反码和补码的…

conda的使用教程

conda的介绍 简单来说&#xff0c;conda软件就是来管理包的软件。以Python为例&#xff0c;在实际生活中&#xff0c;我们要处理多个不同的项目&#xff0c;因此&#xff0c;要安装不同的项目所需要的包&#xff0c;为了管理方便&#xff0c;conda就是用来打理不同项目的包&…

Kafka3.0.0版本——消费者(消费者组详细消费流程图解及消费者重要参数)

目录 一、消费者组详细消费流程图解二、消费者的重要参数 一、消费者组详细消费流程图解 创建一个消费者网络连接客户端&#xff0c;主要用于与kafka集群进行交互&#xff0c;如下图所示&#xff1a; 调用sendFetches发送消费请求&#xff0c;如下图所示&#xff1a; (1)、Fet…

什么是50ETF期权开户条件,怎么开期权交易权限?

50ETF期权是指上证50ETF期权&#xff0c;标的物是上证50ETF&#xff0c;代码是&#xff08;510500&#xff09;&#xff0c;期权是一种在上证50ETF基础上进行衍生品交易的金融工具&#xff0c;下文科普什么是50ETF期权开户条件&#xff0c;怎么开期权交易权限&#xff1f;本文来…

FFmpeg入门之FFmpeg源码编译

1.源码下载: git clone https://github.com/FFmpeg/FFmpeg.git windows : macos: ubuntu: 2.编译FFmpeg CompilationGuide – FFmpeg windows: 1.下载yasm并安装 : Download - The Yasm Modular Assembler Project 下载后复制到c:/windows 2.下载SDL 3.下载H264/265源码 git…

css画一条渐变的虚线

效果展示 原理&#xff1a;给元素设置一个渐变的背景色&#xff0c;画一条白色的虚线盖住背景&#xff0c;就达到了渐变虚线的效果 代码&#xff1a; <div class"pending-line"></div>.pending-line{width: 101px;border-top: 2px dashed #fff; // do…

C语言之指针进阶篇(2)

目录 函数指针 函数名和&函数名 函数指针的定义 函数指针的使用 函数指针陷阱 代码1 代码2 注意 函数指针数组定义 函数指针数组的使用 指向函数指针数组的指针 书写 终于军训圆满结束了&#xff0c;首先回顾一下指针进阶篇&#xff08;1&#xff09;主要是…

Vivado 添加FPGA开发板的Boards file的添加

1 digilent board file 下载地址 下载地址 &#xff1a; https://github.com/Digilent/vivado-boards 2 下载后 3 添加文件到 vivado 安装路径 把文件复制到 Vivado\2019.1\data\boards\board_files4 创建工程查看是否安装成功

Java EE企业级开发学习 -- day1

什么是Java EE? 它是基于Java语言的一种软件设计体系结构&#xff0c;它是一种标准中间件体系结构。它的作用在于能标准化企业级多层结构应用系统的部署&#xff0c;并且简化开发环境。 具体环境的搭建 1.下载压缩包于安装包 jdk-8u261-windows-x64 eclipse-jee-2018-12-…

pytorch再次学习

目录 基础数据可视化切换设备device定义神经网络类打印每层的参数大小自动微分计算梯度禁用梯度追踪优化模型参数 模型保存模型加载 进阶padding更准确的补法ReLU增加计算量但是减少内存消耗的办法输出合并自适应平均池化&#xff08;将输入shape变成指定的输出shape&#xff0…

一个产品级MCU菜单框架设计

分享一个用单色屏做的菜单框架。代码托管在github&#xff1a; https://github.com/wujique/stm32f407/tree/sw_arch 1、概述 本处所说的菜单是用在128*64这种小屏幕的菜单&#xff0c;例如下面这种&#xff0c;不是彩屏上的GUI。 2、菜单框架设计 作为一个底层驱动工程师&a…

单片机-LED介绍

简介 LED 即发光二极管。它具有单向导电性&#xff0c;通过 5mA 左右电流即可发光 电流 越大&#xff0c;其亮度越强&#xff0c;但若电流过大&#xff0c;会烧毁二极管&#xff0c;一般我们控制在 3 mA-20mA 之间&#xff0c;通常我们会在 LED 管脚上串联一个电阻&#xff0c…

汇编语言Nasmide编辑软件

用来编写汇编语言源程序&#xff0c;Windows 记事本并不是一个好工具。同时&#xff0c;在命令行编译源程序也令很多人迷糊。毕竟&#xff0c;很多年轻的朋友都是用着 Windows 成长起来的&#xff0c;他们缺少在 DOS和 UNIX 下工作的经历。 我一直想找一个自己中意的汇编语言编…

文件导入之Validation校验List对象数组

背景&#xff1a; 我们的接口是一个List对象&#xff0c;对象里面的数据基本都有一些基础数据校验的注解&#xff0c;我们怎么样才能校验这些基础规则呢&#xff1f; 我们在导入excel文件进行数据录入的时候&#xff0c;数据录入也有基础的校验规则&#xff0c;这个时候我们又…

PaddleOCR学习笔记1-初步尝试

尝试使用PaddleOCR方法&#xff0c;如何使用自定义的模型方法&#xff0c;参数怎么配置&#xff0c;图片识别尝试简单提高识别率方法。 目前仅仅只是初步学习下如何使用PaddleOCR的方法。 一&#xff0c;测试识别图片&#xff1a; 1.png : 正确文本内容为“哲学可以帮助辩别现…

在很多公司里面会使用打tag的方式保留版本

&#xff1a;git tag|grep "xxx-dev“等分支来查看 2&#xff1a;git cherry-pick XXXXX 然后就是查看有冲突这些 git status 会出现相关的异常 然后解决相关的冲突 git add . git cherry-pick --continue git push XXX HEAD:refs/for/XXX 第一&#xff1a;git ta…