Mr.Purple324 2023-02-19 23:00 采纳率: 100%
浏览 241
已结题

TCGA数据库建模后GEO数据库或ICGC数据库验证

使用TCGA 的 LIHC数据构集建了一个包含5个lncRNA的生存预后模型,内部数据集验证挺不错的,但是使用外部数据集(GSE14520以及ICGC肝癌)做验证时居然找不到这5个lncRNA,谁能帮帮我哈?模型如下: risk score = AL031722.1 expression* (-0.246917061576047) + AC015908.3 expression* (-0.178616640082393) + AL031985.3expression* 0.317991474159641 + LUCAT1 expression* 0.110874567602666 + PCCA-DT* 0.0266570817050312

  • 写回答

8条回答 默认 最新

  • CodeBytes 2023-02-19 23:04
    关注

    该回答引用ChatGPT

    有可能是由于两个数据集的差异性导致的。虽然两个数据集都是肝癌数据,但是不同的实验条件、处理方法、测序平台等都会导致基因表达的差异。在使用外部验证数据集时,可以进行以下步骤来解决问题:

    1、确认外部数据集中是否存在这5个lncRNA。可以使用基因表达数据进行一次基本的筛选,看看是否有这些基因的表达数据。如果没有,那么这个结果很可能就是假阳性的。

    2、如果外部数据集中确实有这些基因,那么可以考虑使用一些数据归一化方法,使得两个数据集具有更好的可比性。例如,可以使用一些常用的归一化方法,如RPKM、TPM等。

    3、如果上述方法仍然无法解决问题,可以考虑使用一些基于转移学习的方法,将已有的内部数据集的知识迁移到新的外部数据集上,从而得到更准确的预测结果。

    、、、、、、、、、、、、、、、、、、、、、、、、、、、、
    以下代码只是提供一种思路,具体实现需要根据数据进行相应的调整。

    1、首先,需要检查一下GSE14520以及ICGC肝癌数据集中是否包含这5个lncRNA,可以使用以下代码:

    
    # 读取GSE14520数据集的表达矩阵
    library(GEOquery)
    gse <- getGEO("GSE14520")
    exprs <- exprs(gse[[1]])
    
    # 检查表达矩阵中是否包含这5个lncRNA
    lncRNA_list <- c("AL031722.1", "AC015908.3", "AL031985.3", "LUCAT1", "PCCA-DT")
    colnames(exprs) %in% lncRNA_list
    
    

    2、如果GSE14520中包含这5个lncRNA,则可以直接使用模型进行验证;如果不包含,则需要在GSE14520中查找与这5个lncRNA高度相关的基因,作为代替品进行模型验证。

    
    # 在GSE14520中查找与这5个lncRNA高度相关的基因
    library(biomaRt)
    ensembl <- useMart("ensembl")
    ensembl <- useDataset("hsapiens_gene_ensembl", mart=ensembl)
    lncRNA_list <- c("AL031722.1", "AC015908.3", "AL031985.3", "LUCAT1", "PCCA-DT")
    result_list <- list()
    
    for (i in lncRNA_list) {
      # 通过基因名获取基因ID
      gene_id <- getBM(attributes = "ensembl_gene_id", filters = "external_gene_name", 
                       values = i, mart = ensembl)
      if (nrow(gene_id) == 0) {
        next
      }
      # 通过基因ID获取与之高度相关的基因
      result <- getBM(attributes = c("ensembl_gene_id", "external_gene_name"), 
                      filters = "correlation_with_" + as.character(gene_id[1,1]), 
                      values = list(c(-1, 1)), mart = ensembl)
      result_list[[i]] <- result$external_gene_name
    }
    
    # 对每个lncRNA的相关基因列表去重并合并
    related_genes <- unique(unlist(result_list))
    
    

    3、对GSE14520的样本进行预测,计算生存风险得分,并进行生存曲线分析。

    
    # 获取GSE14520数据集的临床信息
    library(Survival)
    gse_clinical <- GSE14520_clinical_data
    gse_clinical$OS_MONTHS <- as.numeric(gse_clinical$OS_MONTHS)
    gse_clinical$OS_EVENT <- as.numeric(gse_clinical$OS_EVENT)
    
    # 对GSE14520的样本进行预测
    exprs <- exprs[,colnames(exprs) %in% related_genes]  # 只选取与这5个lncRNA高度相关的基因
    risk_score <- rowSums(exprs * c(-0.246917061576047, -0.178616640082393, 0.317991474159641, 
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(7条)

报告相同问题?

问题事件

  • 系统已结题 3月2日
  • 已采纳回答 2月22日
  • 创建了问题 2月19日

悬赏问题

  • ¥500 寻找一名机械工程师完成pcb主板设计(拒绝AI生成式答案)
  • ¥15 关于#mysql#的问题:UNION ALL(相关搜索:sql语句)
  • ¥15 matlab二位可视化能否针对不同数值范围分开分级?
  • ¥15 已经创建了模拟器但是不能用来运行app 怎么办😭自己搞两天了
  • ¥15 关于#极限编程#的问题,请各位专家解答!
  • ¥20 win11账户锁定时间设为0无法登录
  • ¥45 C#学生成绩管理系统
  • ¥30 matlab appdesigner私有函数嵌套整合
  • ¥15 vb6.0使用jmail接收smtp邮件并另存附件到D盘
  • ¥30 vb net 使用 sendMessage 如何输入鼠标坐标