• 主页
  • 课程

    关于课程

    • 课程归档
    • 成为一名讲师
    • 讲师信息
    教学以及管理操作教程

    教学以及管理操作教程

    ¥1,000.00 ¥100.00
    阅读更多
  • 特色
    • 展示
    • 关于我们
    • 问答
  • 事件
  • 个性化
  • 博客
  • 联系
  • 站点资源
    有任何问题吗?
    (00) 123 456 789
    weinfoadmin@weinformatics.cn
    注册登录
    恒诺新知
    • 主页
    • 课程

      关于课程

      • 课程归档
      • 成为一名讲师
      • 讲师信息
      教学以及管理操作教程

      教学以及管理操作教程

      ¥1,000.00 ¥100.00
      阅读更多
    • 特色
      • 展示
      • 关于我们
      • 问答
    • 事件
    • 个性化
    • 博客
    • 联系
    • 站点资源

      生信星球

      • 首页
      • 博客
      • 生信星球
      • 宝藏R包:TCGA的转录组数据挖掘一站搞定

      宝藏R包:TCGA的转录组数据挖掘一站搞定

      • 发布者 weinfoeditor
      • 分类 生信星球
      • 日期 2020年6月29日
      测试开头

       今天是生信星球陪你的第662天


         大神一句话,菜鸟跑半年。我不是大神,但我可以缩短你走弯路的半年~

         就像歌儿唱的那样,如果你不知道该往哪儿走,就留在这学点生信好不好~

         这里有豆豆和花花的学习历程,从新手到进阶,生信路上有你有我!

      最近在整ceRNA。看到了一个宝藏R包,写包简化了芯片数据下游分析之后,我正想着写转录组下游分析的简化版,就看到了它。用起来~

      0.R包和数据准备

      if(!require(GDCRNATools))BiocManager::install("GDCRNATools")
      library(GDCRNATools)

      这里使用的是作者给的示例数据,RNA-seq是1000行,miRNAseq是2588个。

      # mRNA 和miRNA的表达矩阵
      data(rnaCounts);dim(rnaCounts)
      ## [1] 1000   45
      rnaCounts[1:3,1:3]
      ##                 TCGA-3X-AAV9-01 TCGA-3X-AAVA-01
      ## ENSG00000003989            1520             960
      ## ENSG00000004799            7659             957
      ## ENSG00000005812            2246            1698
      ##                 TCGA-3X-AAVB-01
      ## ENSG00000003989            2177
      ## ENSG00000004799            2295
      ## ENSG00000005812            2454
      data(mirCounts);dim(mirCounts)
      ## [1] 2588   45
      mirCounts[1:3,1:3]
      ##                 TCGA-3X-AAV9-01 TCGA-3X-AAVA-01
      ## hsa-let-7a-5p            165141          132094
      ## hsa-let-7a-3p               204             169
      ## hsa-let-7a-2-3p              30              26
      ##                 TCGA-3X-AAVB-01
      ## hsa-let-7a-5p            210259
      ## hsa-let-7a-3p               298
      ## hsa-let-7a-2-3p              50
      #临床信息
      metaMatrix.RNA <- gdcParseMetadata(project.id = 'TCGA-CHOL',
                                         data.type  = 'RNAseq',
                                         write.meta = FALSE)
      metaMatrix.RNA <- gdcFilterDuplicate(metaMatrix.RNA)
      metaMatrix.RNA <- gdcFilterSampleType(metaMatrix.RNA) 
      metaMatrix.RNA[1:4,1:4]
      ##                                                             file_name
      ## TCGA-3X-AAV9-01A 725eaa94-5221-4c22-bced-0c36c10c2c3b.htseq.counts.gz
      ## TCGA-3X-AAVA-01A b6a2c03a-c8ad-41e9-8a19-8f5ac53cae9f.htseq.counts.gz
      ## TCGA-3X-AAVB-01A c2765336-c804-4fd2-b45a-e75af2a91954.htseq.counts.gz
      ## TCGA-3X-AAVC-01A 8b20cba8-9fd5-4d56-bd02-c6f4a62767e8.htseq.counts.gz
      ##                                               file_id
      ## TCGA-3X-AAV9-01A 85bc7f81-51fb-4446-b12d-8741eef4acee
      ## TCGA-3X-AAVA-01A 42b8d463-6209-4ea0-bb01-8023a1302fa0
      ## TCGA-3X-AAVB-01A 6e2031e9-df75-48df-b094-8dc6be89bf8b
      ## TCGA-3X-AAVC-01A 19e8fd21-f6c8-49b0-aa76-109eef46c2e9
      ##                       patient          sample
      ## TCGA-3X-AAV9-01A TCGA-3X-AAV9 TCGA-3X-AAV9-01
      ## TCGA-3X-AAVA-01A TCGA-3X-AAVA TCGA-3X-AAVA-01
      ## TCGA-3X-AAVB-01A TCGA-3X-AAVB TCGA-3X-AAVB-01
      ## TCGA-3X-AAVC-01A TCGA-3X-AAVC TCGA-3X-AAVC-01

      1.差异分析

      gdcDEAnalysis函数,需要表达矩阵、分组信息向量以及比较顺序。可以获取所有的差异基因。

      这里method用了limma,还有edgeR和DESeq2可选。

      table(metaMatrix.RNA$sample_type)
      ## 
      ##      PrimaryTumor SolidTissueNormal 
      ##                36                 9
      DEGAll <- gdcDEAnalysis(counts     = rnaCounts, 
                              group      = metaMatrix.RNA$sample_type, 
                              comparison = 'PrimaryTumor-SolidTissueNormal', 
                              method     = 'limma');dim(DEGAll)
      ## [1] 565   8
      head(DEGAll)
      ##                  symbol          group     logFC   AveExpr
      ## ENSG00000143257   NR1I3 protein_coding -6.916825  7.023129
      ## ENSG00000205707  ETFRF1 protein_coding -2.492182  9.515997
      ## ENSG00000134532    SOX5 protein_coding -4.871118  6.228227
      ## ENSG00000141338   ABCA8 protein_coding -5.653794  7.520581
      ## ENSG00000066583   ISOC1 protein_coding -2.370131 10.466194
      ## ENSG00000164188 RANBP3L protein_coding -5.624376  4.356284
      ##                         t       PValue          FDR        B
      ## ENSG00000143257 -17.29086 4.244355e-22 2.419282e-19 40.04288
      ## ENSG00000205707 -16.06753 8.353256e-21 2.380678e-18 37.19751
      ## ENSG00000134532 -15.03589 1.168746e-19 2.220617e-17 34.49828
      ## ENSG00000141338 -14.86069 1.851519e-19 2.638414e-17 34.11581
      ## ENSG00000066583 -14.56532 4.053959e-19 4.621513e-17 33.35640
      ## ENSG00000164188 -14.22477 1.013592e-18 9.629125e-17 32.25659

      可以获取全部差异基因,也可以单独获取mRNA和lncRNA的差异分析结果

      deALL <- gdcDEReport(deg = DEGAll, gene.type = 'all');dim(deALL)
      ## [1] 283   8
      deLNC <- gdcDEReport(deg = DEGAll, gene.type = 'long_non_coding');dim(deLNC)
      ## [1] 47  8
      dePC <- gdcDEReport(deg = DEGAll, gene.type = 'protein_coding');dim(dePC)
      ## [1] 222   8

      可以看到,这里总共有283个差异基因,mRNA有222个,lncRNA有47个。看了一下帮助文档,默认的logFC阈值是1,p值是0.01,虽然帮助文档中没有提到校正,但我探索到了,它使用的是矫正后的P值(FDR)。

      table(DEGAll$PValue<0.01 & DEGAll$FDR>0.01)
      ## 
      ## FALSE  TRUE 
      ##   550    15
      table(deALL$PValue<0.01 & deALL$FDR>0.01)
      ## 
      ## FALSE 
      ##   283

      logFC和p值的阈值有参数可以修改。

      2.ceRNAs network 分析

      整个过程就只用gdcCEAnalysis这个函数来完成。

      参数rna.expr 和mir.expr要求是经过voom转换的表达矩阵;

      lnc 和 pc 是lncRNA和miRNA的ensambelid,也就是前面的差异分析结果表格的行名。

      lnc.target 是预测lncRNA-miRNA使用的数据库,支持:’spongeScan’, ‘starBase’, and ‘miRcode’。

      pc.target 是预测miRNA-mRNA关系的数据库,支持”mirTarBase”,”miRcode”和”starBase”(作者帮助文档写错啦,从文章里找的)。

      这个函数鉴定ceRNA的标准有4个:

      (1)lncRNA和mRNA之间共享的miRNA数量;

      (2)lncRNA与mRNA的表达相关性;

      (3)共享miRNA对lncRNA和mRNA的调控相似性;

      (4)(sensitivity)灵敏度相关性

      rnaExpr <- gdcVoomNormalization(counts = rnaCounts, filter = FALSE)
      mirExpr <- gdcVoomNormalization(counts = mirCounts, filter = FALSE)

      ceOutput <- gdcCEAnalysis(lnc         = rownames(deLNC), 
                                pc          = rownames(dePC), 
                                lnc.targets = 'starBase', 
                                pc.targets  = 'starBase', 
                                rna.expr    = rnaExpr, 
                                mir.expr    = mirExpr)
      ceOutput[1:3,1:5]
      ##           lncRNAs           Genes Counts listTotal popHits
      ## 1 ENSG00000234456 ENSG00000107864      2         2      95
      ## 2 ENSG00000234456 ENSG00000135111      2         2      24
      ## 3 ENSG00000234456 ENSG00000165672      2         2       8

      3.输出cytoscape可视化使用的文件

      输出数据根据超几何分布检验和相关性分析的p值、调控相关性分数做了筛选。

      ceOutput2 <- ceOutput[ceOutput$hyperPValue<0.01 
          & ceOutput$corPValue<0.01 & ceOutput$regSim != 0,]
      dim(ceOutput);dim(ceOutput2)
      ## [1] 453  13
      ## [1] 124  13
      edges <- gdcExportNetwork(ceNetwork = ceOutput2, net = 'edges')
      nodes <- gdcExportNetwork(ceNetwork = ceOutput2, net = 'nodes')
      nrow(edges);nrow(nodes)
      ## [1] 452
      ## [1] 187
      table(nodes$type)
      ## 
      ## lnc mir  pc 
      ##  16  56 115
      write.table(edges, file='edges.txt', sep='t', quote=F)
      write.table(nodes, file='nodes.txt', sep='t', quote=F)
      edges[1:4,]
      ##           fromNode          toNode altNode1Name
      ## 1  ENSG00000234456 hsa-miR-374b-5p    MAGI2-AS3
      ## 2  ENSG00000234456 hsa-miR-374a-5p    MAGI2-AS3
      ## 47 ENSG00000234741     hsa-miR-137         GAS5
      ## 50 ENSG00000255717  hsa-miR-377-3p        SNHG1
      nodes[1:3,1:3]
      ##              gene symbol type
      ## 1 ENSG00000003989 SLC7A2   pc
      ## 2 ENSG00000004799   PDK4   pc
      ## 3 ENSG00000021826   CPS1   pc

      这样就得到了452个关系对、187个节点,其中lncRNA、miRNA、mRNA的数量分别是16,56和115。其中,edges作为网络文件输入,nodes作为特征表格输入,下次给大家讲放进cytoscape如何美化~

      其他的下游分析例如cox回归,生存分析,富集分析,也是有相应函数的,可以说是个大宝藏啦,打call!

      插个小广告!

      生信零基础入门学习小组

      全国巡讲全球听(生信线上直播课)

      数据挖掘线上班第3期(两天变三周,实力加量,长期开班)

      一起来学单细胞吗?

      答疑公告:生信星球答疑公告-2020年全年有效

      测试结尾

      请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!

      • 分享:
      作者头像
      weinfoeditor

      上一篇文章

      单细胞交响乐1-理解scRNA常用数据结构
      2020年6月29日

      下一篇文章

      生存分析,简单粗暴!
      2020年7月1日

      你可能也喜欢

      8-1651673488
      生信零基础入门学习小组长期报名中(2022仍继续)
      7 4月, 2022
      2-1651673738
      简化版的ROC曲线
      21 2月, 2022
      8-1651674718
      支持向量机模型
      19 11月, 2021

      搜索

      分类

      • R语言
      • TCGA数据挖掘
      • 单细胞RNA-seq测序
      • 在线会议直播预告与回放
      • 数据分析那些事儿分类
      • 未分类
      • 生信星球
      • 老俊俊的生信笔记

      投稿培训

      免费

      alphafold2培训

      免费

      群晖配置培训

      免费

      最新博文

      Nature | 单细胞技术揭示衰老细胞与肌肉再生
      301月2023
      lncRNA和miRNA生信分析系列讲座免费视频课和课件资源包,干货满满
      301月2023
      如何快速批量修改 Git 提交记录中的用户信息
      261月2023
      logo-eduma-the-best-lms-wordpress-theme

      (00) 123 456 789

      weinfoadmin@weinformatics.cn

      恒诺新知

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      链接

      • 课程
      • 事件
      • 展示
      • 问答

      支持

      • 文档
      • 论坛
      • 语言包
      • 发行状态

      推荐

      • iHub汉语代码托管
      • iLAB耗材管理
      • WooCommerce
      • 丁香园论坛

      weinformatics 即 恒诺新知。ICP备案号:粤ICP备19129767号

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      要成为一名讲师吗?

      加入数以千计的演讲者获得100%课时费!

      现在开始

      用你的站点账户登录

      忘记密码?

      还不是会员? 现在注册

      注册新帐户

      已经拥有注册账户? 现在登录

      close
      会员购买 你还没有登录,请先登录
      • ¥99 VIP-1个月
      • ¥199 VIP-半年
      • ¥299 VIP-1年
      在线支付 激活码

      立即支付
      支付宝
      微信支付
      请使用 支付宝 或 微信 扫码支付
      登录
      注册|忘记密码?