栏目分类
热点资讯
你的位置:物联网软件开发费用 > 物联网软件开发资讯 > 物联网app开发 单个基因的拷贝数变异频率(gain or loss CNV frequency)棒棒糖图

物联网软件开发资讯

物联网app开发 单个基因的拷贝数变异频率(gain or loss CNV frequency)棒棒糖图

发布日期:2024-11-06 09:03    点击次数:181

💡专注R话语在🩺生物医学中的使用

设为“星标”,精彩可以过

众人在一些触及拷贝数变异(copy number variation,cnv)的SCI著述中可能会遭遇以下图片:

DOI:10.1007/s00011-023-01772-6

app

图片

https://doi.org/10.1186/s12943-020-01170-0

图片

这个图形展示了单个基因的拷贝数变化。如若你也曾有了数据,绘图照旧很直率的,等于一个直率的点和线的组结伴料,有多种容貌可以竣事,比如我之前就成心先容过:

R话语棒棒糖图R话语画瑕玷线的5种期间

今上帝要记载下若何通过拷贝数变异数据,取得绘图的数据。咱们就以从TCGA下载的TCGA-COAD的拷贝数变异数据为例。

加载数据

径直从TCGA下载的拷贝数变异数据是不行的,需要使用GISTIC2.0这个软件对CNV数据进行分析,取得以下成果才行:

图片

GISTIC2.0的输出

这个经由对于入门者照旧很复杂的,光是装配gistic这个软件测度就会卡住许多东说念主。可是这个经由网上有极端多的教程,咱们就未几作念先容了。这里给众人提供一个装配GISTIC软件的快速期间,可以1行代码装配,详见:王诗翔大佬的github:Install GISTIC2 by one line code

除此以外,这个分析还可以通过网页器用完成,一个是gene pattern,另一个是hiplot(不知说念当今还能不可用这个功能)。

GISTIC2.0的输出成果中有多个文献都可以用来绘制上头的图,可是它们是有区别的,其中部分红果的证据参考简书(网址:https://www.jianshu.com/p/5de9922e6b8b):

all_data_by_genes.txt:基因在不相通本中具体的拷贝数数值all_thresholded.by_genes.txt:基因在不相通本中拷贝数数值冲破化后的成果,-2代表缺失两个拷贝,-1代表缺失一个拷贝,0代表拷贝数正常,1代表加多一个拷贝,2代表扩增两个拷贝focal_data_by_genes.txt:基因在不相通本中具体的拷贝数数值(只辩论 focal events)broad_data_by_genes.txt:基因在不相通本中具体的拷贝数数值(只辩论 arm events)all_lesions.conf_90.txt:识别到的拷贝数扩增和缺失的Peak区域amp_genes.conf_90.txt:识别到的拷贝数扩增的Peak区域及区域内触及到的基因del_genes.conf_90.txt:识别到的拷贝数缺失的Peak区域及区域内触及到的基因broad_significance_results.txt:权贵发生拷贝数变异的broad区域broad_values_by_arm.txt:染色体臂在样本中的拷贝数数值scores.gistic:该算法的打分红果,可导入IGV进行可视化

其中前4个文献都可以用来绘图,可是凭证它们的具体含义我最终遴选了all_thresholded.by_genes.txt这个文献。

最初咱们详情是遴选扫数的样本,不可只辩论focal或者arm,对于这两种东西的证据,参考一个博客的证据:

在通盘基因组上,最常见的体细胞拷贝数变异(SCNA)是短的染色体变异(focal),和果然和染色体臂或整条染色体等长的染色体变异(arm-level)。arm-level的染色体变异发生的占比概况是focal的30倍,且果然扫数的癌症类型中都是这么。合计这两者发生概率不同,意味着是分手发生的。https://taozyblog.com.cn/post/2022-3-16_mechanism_of_cnv/

其次是使用具体的拷贝数数值照旧冲破化之后的数据,我都读取进来对比了一下:

1. 浦项铁人俱乐部成立于1973年,球队历史曾获得5次韩K联赛冠军,4次韩国杯冠军,2次韩国联赛杯冠军,物联网app开发1次亚冠联赛冠军,以及在96/97/和97/98连续获得亚冠前身亚洲俱乐部锦标赛冠军等诸多赛事荣誉。

# 具体的拷贝数数值df1 <- data.table::fread("G:/tcga/TCGA_COAD_results/all_data_by_genes.txt",                        data.table = F)dim(df1)
## [1] 25988   492
df1[1:4,1:4]
##   Gene Symbol Gene ID Cytoband TCGA-DM-A285-01A-11D-A16U-01## 1       ACAP3  116983  1p36.33                       -0.263## 2      ACTRT2  140625  1p36.32                       -0.263## 3        AGRN  375790  1p36.33                       -0.263## 4     ANKRD65  441869  1p36.33                       -0.263
# 冲破化后的数据df2 <- data.table::fread("G:/tcga/TCGA_COAD_results/all_thresholded.by_genes.txt",                        data.table = F)dim(df2)
## [1] 25988   492
df2[1:4,1:4]
##   Gene Symbol Locus ID Cytoband TCGA-DM-A285-01A-11D-A16U-01## 1       ACAP3   116983  1p36.33                           -1## 2      ACTRT2   140625  1p36.32                           -1## 3        AGRN   375790  1p36.33                           -1## 4     ANKRD65   441869  1p36.33                           -1

可以看到它们的数据结构是裕如一样的,仅仅暗示期间不一样。如若你遴选具体的拷贝数数值,那么你需要我方设定一个阈值(0.3,0.4,0.5等),到底这个数值大于若干是gain(也等于duplication),小于若干是loss(也等于deletion),可是如若使用冲破化之后的数据,那么凭证它的意念念,大于0的等于gain,小于0的等于loss,不需要我方设定阈值了,为了通俗,我遴选这个冲破化之后的数据。

数据整理

这个df2是长这么的:

图片

第一列是基因名字,第2和第3列咱们绘图用不到,可以径直删掉,背面的列都是样真名,其中是用数字暗示拷贝数变异,是以咱们对它进行极幼年小的整理:

去掉第2和第3列把-1和-2酿成loss,把1和2酿成gain,0酿成neutral
df2 <- df2[,-c(2,3)]rownames(df2) <- df2[,1]df2 <- df2[,-1]df2[df2>0] <- "gain"df2[df2<0] <- "loss"df2[df2 == 0] <- "neutral"

然后某个基因的CNV frequency就很好运筹帷幄了,比如第一个基因它的gain的频率,等于出现gain的样本数 / 样本总和,它的loss的频率等于出现loss的样本数 / 样本总和,先直率看下出现gain/loss/neutral的样本数目,以第一个基因为例:

table(t(df2)[,1])
## ##    gain    loss neutral ##      18     162     309

凭证这个念念路咱们就可以很平常的运筹帷幄出扫数基因的gain/loss/neutral的样本数:

df3 <- as.data.frame(t(df2))df3 <- apply(df3, 2, table)df3 <- as.data.frame(do.call(rbind,df3))
## Warning in (function (..., deparse.level = 1) : number of columns of result is## not a multiple of vector length (arg 24509)
df3$gene <- rownames(df3)head(df3)
##         gain loss neutral    gene## ACAP3     18  162     309   ACAP3## ACTRT2    18  162     309  ACTRT2## AGRN      18  162     309    AGRN## ANKRD65   18  162     309 ANKRD65## ATAD3A    18  162     309  ATAD3A## ATAD3B    18  162     309  ATAD3B

这个等于咱们的绘图数据了(我这里并莫得除以样本总和,众人有需要的可以我方运筹帷幄),有了这个数据绘图等于径直ggplot2就好了。

绘图

咱们决然取30个基因,你可以凭证我方的情况遴选我方感意思的基因,比如免疫联系的基因、铜牺牲联系的基因等。

set.seed(1567)markers <- sample(df3$gene, 30)markers
##  [1] "KRT10"         "LAMA1"         "TADA3"         "MIR663A|chr20"##  [5] "LOC100129138"  "hsa-mir-886"   "DSC2"          "KRTAP22-2"    ##  [9] "MICU3"         "LOC390705"     "ZYG11B"        "LRRC75A"      ## [13] "FAM86B1"       "TRIM52-AS1"    "LOC102723604"  "MIR4304"      ## [17] "RNF139-AS1"    "LINC00620"     "ISCA1"         "FBP1"         ## [21] "TRIAP1"        "APOA1-AS"      "MLN"           "ST6GALNAC2"   ## [25] "OR4K17"        "MIR518C"       "GABPB2"        "ZFP28"        ## [29] "MEIOC"         "CSRP1"
df4 <- df3[df3$gene %in% markers,]df4
##               gain loss neutral          gene## ZYG11B          12  130     347        ZYG11B## LOC100129138    12  151     326  LOC100129138## GABPB2         113   37     339        GABPB2## CSRP1          115   42     332         CSRP1## TADA3           39   75     375         TADA3## LINC00620       39   76     374     LINC00620## hsa-mir-886     49   99     341   hsa-mir-886## TRIM52-AS1      57   94     338    TRIM52-AS1## MLN            104   42     343           MLN## FAM86B1         92  217     180       FAM86B1## MICU3           96  216     177         MICU3## RNF139-AS1     283   12     194    RNF139-AS1## ISCA1           73   62     354         ISCA1## FBP1            76   64     349          FBP1## APOA1-AS        61   73     355      APOA1-AS## TRIAP1         101   55     333        TRIAP1## MIR4304        102   55     332       MIR4304## OR4K17          42  149     298        OR4K17## LOC102723604    41  149     299  LOC102723604## LOC390705      131   16     342     LOC390705## LRRC75A         13  276     200       LRRC75A## KRT10          120   52     317         KRT10## MEIOC          108   59     322         MEIOC## ST6GALNAC2     112   62     315    ST6GALNAC2## LAMA1           25  279     185         LAMA1## DSC2            28  288     173          DSC2## MIR518C         97   56     336       MIR518C## ZFP28          102   53     334         ZFP28## MIR663A|chr20  290   29     170 MIR663A|chr20## KRTAP22-2       30  141     318     KRTAP22-2

绘图是最直率的一步:

library(ggplot2)ggplot(df4)+  geom_linerange(aes(x=gene,ymin=0,ymax=ifelse(gain>loss,gain,loss)),                 linewidth=2,color="grey")+  geom_point(aes(x=gene, y=gain), color="red",size=4)+  geom_point(aes(x=gene, y=loss), color="blue",size=4)+  labs(x=NULL,y="CNV frequency")+  theme_bw()+  theme(axis.text.x = element_text(angle = 45,hjust = 1))

图片

你还可以先排个序再画,这么看起来更整王人极少物联网app开发,我这里就不演示了。

本站仅提供存储奇迹,扫数本色均由用户发布,如发现存害或侵权本色,请点击举报。