oncoPredict:根据细胞系筛选数据预测体内或癌症患者药物反应和生物标志物

news2024/9/19 15:13:07

在14年的时候,oncoPredict函数的开发团队在Genome Biology上发了一篇文章。

这篇文章的核心目的是阐释了使用治疗前基线肿瘤基因表达数据去预测患者化疗反应。开发团队发现使用细胞系去预测临床样本的药物反应是可行的。

鉴于之前的理论,该研究团队首先提出了pRRophetic算法用于评价不同药物治疗临床样本的敏感性。

之后再原有的基础之上,该研究团队提出了R包oncoPredict。

该R包的优势主要有两个,分别是预测患者的临床药物反应和将这些预测与临床特征关联起来从而发现有价值的生物标志物。

其中使用最多的就是去预测患者的临床药物反应,其中的函数是calcPhenotype,这个功能是使用基线肿瘤基因表达数据,实现了预测临床药物反应。该函数使用了大规模基因表达和药物筛选数据(训练数据集)来构建了Ridge regression模型,然后将其应用于新的基因表达数据集(测试数据集),以产生新的药物敏感性分析结果。

开发团队也提示使用者除了可以用他们预打包的GDSC或CTRP数据作为训练数据集,也可以使用自己的训练数据从而预测任何表达矩阵情况下的药物反应。

在使用该分析流程之前,需要去https://osf.io/c6tfx/ 下载DataFile文件夹下作者准备好的数据,用作药物预测的训练集。

这里边有两个重要的数据库的数据,分别是CTRP和GDSC。

CTRP全称是癌症治疗反应门户(https://portals.broadinstitute.org/ctrp/),其通过连接癌细胞系的基因、家族以及其他细胞特征与小分子药物敏感性信息进而加速与患者相匹配的癌症治疗药物的发现。

GDSC全称是癌症药物敏感性基因组学数据库(https://www.cancerrxgene.org/),该数据库时关于癌症细胞药物敏感性和分子标志物信息的最大公共数据库之一,该数据库整合了细胞、药物和分子的三个不同层次,阐述了不同肿瘤细胞对药物的敏感性。

分析步骤

1、加载R包和数据
rm(list = ls())
library(oncoPredict)
library(data.table)
library(gtools)
library(reshape2)
library(ggpubr)
library(openxlsx)

dir.create("onco_drug")
setwd("onco_drug")

dir='~/Training Data/'
dir(dir)

# [1] "CTRP2_Expr (RPKM, not log transformed).rds"         
# [2] "CTRP2_Expr (TPM, not log transformed).rds"          
# [3] "CTRP2_Res.rds"                                      
# [4] "GDSC1_Expr (RMA Normalized and Log Transformed).rds"
# [5] "GDSC1_Res.rds"                                      
# [6] "GDSC2_Expr (RMA Normalized and Log Transformed).rds"
# [7] "GDSC2_Res.rds"
2、选择训练集数据
# GDSC2数据
#exp = readRDS(file=file.path(dir,'GDSC2_Expr (RMA Normalized and Log Transformed).rds'))
#exp[1:4,1:4]
#dim(exp)
#drug = readRDS(file = file.path(dir,"GDSC2_Res.rds"))
#drug <- exp(drug) #下载到的数据是被log转换过的,用这句代码逆转回去
#drug[1:4,1:4]
#dim(drug)
#identical(rownames(drug),colnames(exp))

#CTRP2数据
exp <- readRDS(file = file.path(dir,"CTRP2_Expr (TPM, not log transformed).rds"))
exp[1:4,1:4]
dim(exp)
drug <- readRDS(file = file.path(dir,"CTRP2_Res.rds"))
drug[1:4,1:4]
identical(rownames(drug),colnames(exp))

两个数据库的数据都可以使用,CTRP2中的数据会多一点。

drug是药物IC50值,exp是对应细胞系基因的表达矩阵。

3、导入表达矩阵数据并进行分析-这一步会耗费很长时间
load("~/TCGA-LIHC_sur_model.Rdata")
test = exprSet

calcPhenotype(trainingExprData = exp,
                trainingPtype = drug,
                testExprData = test,
                batchCorrect = 'standardize',  #   "eb" for array,standardize  for rnaseq
                powerTransformPhenotype = TRUE,
                removeLowVaryingGenes = 0.2,
                minNumSamples = 10, 
                printOutput = TRUE, 
                removeLowVaringGenesFrom = 'rawData' )
4、查看结果
# 运行之后的结果,被存在固定文件夹calcPhenotype_Output下。文件名也是固定的DrugPredictions.csv。
testPtype <- read.csv('./calcPhenotype_Output/DrugPredictions.csv', 
                      row.names = 1,check.names = F)
testPtype[1:4, 1:4]
dim(testPtype)
identical(colnames(testPtype),colnames(drug))
5、结合高低风险分组画图
# 需参照这个代码自行修改哦~ 

load("~/model_parameters.Rdata")
TCGA_LIHC <- rs[[1]]
identical(rownames(TCGA_LIHC),colnames(exprSet))
TCGA_LIHC$group <- ifelse(TCGA_LIHC$RS > median(TCGA_LIHC$RS),"high","low")
TCGA_LIHC$group <- factor(TCGA_LIHC$group,levels = c("low","high"))
rsurv <- TCGA_LIHC


identical(rownames(testPtype),rownames(rsurv))
a = apply(testPtype, 2, function(x){
  #x = testPtype[,1]
   wilcox.test(x~rsurv$group)$p.value
})
head(a)
#p值最小的10个药物
dg = names(head(sort(a),10))

library(tinyarray)
library(tidyr)
library(dplyr)
library(ggplot2)
library(ggpubr)
library(ggsci)

group <- rsurv$group
testPtype[,dg] %>% 
  bind_cols(group = group) %>% 
  pivot_longer(1:10,names_to = "drugs",values_to = "ic50")  %>% 
ggplot(., aes(group,ic50))+
  geom_boxplot(aes(fill=group))+
  scale_fill_jama()+
  theme(axis.text.x = element_text(angle = 45,hjust = 1),
        axis.title.x = element_blank(),
        legend.position = "none")+
  facet_wrap(vars(drugs),scales = "free_y",nrow = 2)+
  stat_compare_means()+
  theme_bw()
ggsave("box_drug.pdf",width = 14,height = 9)

致谢:感谢曾老师,小洁老师以及生信技能树团队全体成员。

:若对内容有疑惑或者有发现明确错误的朋友,请联系后台(欢迎交流)。更多内容可关注公众号:生信方舟

- END -

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

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

相关文章

docker Docs相关使用文档链接

Docker Docshttps://docs.docker.com/ docker compose | Docker Docshttps://docs.docker.com/reference/cli/docker/compose/docker | Docker Docshttps://docs.docker.com/reference/cli/docker/

【计算机网络】静态路由实验

一&#xff1a;实验目的 1&#xff1a;掌握通过静态路由方法实现网络的连通性。 二&#xff1a;实验仪器设备及软件 硬件&#xff1a;RCMS-C服务器、网线、Windows 2019/2003操作系统的计算机等。 软件&#xff1a;记事本、WireShark、Chrome浏览器等。 三&#xff1a;实验方…

linux集群架构--高可用--keepalived(13985字详解)

linux架构高可用 a.概述 高可用&#xff1a;HA HighAvailablity —>Keepalived生成VIP&#xff0c;DNS解析到这个IP地址即可 b.原理 keepalived 是基于VRRP协议实现高可用VRRP虚拟路由器冗余协议&#xff0c;最开始是给网络设备实现高可用&#xff0c;目前keepalive实现v…

企业公户验证API如何使用JAVA、Python、PHP语言进行应用

在纷繁复杂的金融与商业领域&#xff0c;确保每笔交易的安全与合规是至关重要的。而企业公户验证API&#xff0c;正是这样一位默默守护的数字卫士&#xff0c;它通过智能化的手段&#xff0c;简化了企业对公账户验证流程&#xff0c;让繁琐的审核变得快捷且可靠。 什么是企业公…

NLP-使用Word2vec实现文本分类

Word2Vec模型通过学习大量文本数据&#xff0c;将每个单词表示为一个连续的向量&#xff0c;这些向量可以捕捉单词之间的语义和句法关系。本文做文本分类是结合Word2Vec文本内容text&#xff0c;预测其文本标签label。以下使用mock商品数据的代码实现过程过下&#xff1a; 1、…

关闭Xshell后,任务将结束-tmux

Xshell标签中的会话结束后&#xff0c;会话中运行的进程也将被结束。 关闭标签 解释&#xff1a; xshell在断开连接后会中止所有正在运行的进程和任务&#xff0c;因为xshell客户端是通过ssh协议连接到远程服务器的&#xff0c;一旦连接断开&#xff0c;所有与该会话相关的进程…

数据结构 - 红黑树

文章目录 前言一、红黑树介绍1、红黑树的概念2、红黑树的性质 二、实现红黑树1、基本框架2、插入3、删除4、查找5、测试红黑树6、红黑树代码 三、红黑树性能四、AVL树和红黑树的差别 前言 红黑树是一种二叉搜索树&#xff0c;所以学习前需要学会基本的二叉搜索树&#xff0c;并…

超越源自内省:《自卑与超越》

作者主页&#xff1a; &#x1f517;进朱者赤的博客 精选专栏&#xff1a;&#x1f517;经典算法 作者简介&#xff1a;阿里非典型程序员一枚 &#xff0c;记录在大厂的打怪升级之路。 一起学习Java、大数据、数据结构算法&#xff08;公众号同名&#xff09; ❤️觉得文章还…

JS 改造数组对象,将其不确定的key作为value,并合并相同key的value值

const data [{"苹果": 3839,"小米": 1423,"华为": 4965,"oppo": 3334,"vivo": 2820,"一加": 4751},{"苹果": 3560,"小米": 2099,"华为": 3192,"oppo": 4210,"vivo…

anaconda 安装

环境 win 11 安装 下载安装包 https://www.anaconda.com/download 2.打开安装包&#xff0c;这里基本上就是下一步下一步 3.配置环境变量 对应自己安装的目录文件夹 D:\anaconda3 D:\anaconda3\Scripts D:\anaconda3\Library\bin4.打开命令行测试 常用命令 初始化 co…

python毕业设计选题求职招聘系统-可视化大屏

✌网站介绍&#xff1a;✌10年项目辅导经验、专注于计算机技术领域学生项目实战辅导。 ✌服务范围&#xff1a;Java(SpringBoo/SSM)、Python、PHP、Nodejs、爬虫、数据可视化、小程序、安卓app、大数据等设计与开发。 ✌服务内容&#xff1a;免费功能设计、免费提供开题答辩P…

【限免】16PAM、16PSK、16QAM、16CQAM星座图及误码率【附MATLAB代码】

​微信公众号&#xff1a;智能电磁频谱算法 QQ交流群&#xff1a;949444104 主要内容 MATLAB代码 % Parameters M 16; N 4; % Number of circles for CQAM SNR_dB 0:2:25; % Extended SNR range to reach higher values num_symbols 1e5; % Total number of symbols for s…

静态路由学习笔记

1. 静态路由应用场景 &#xff08;1&#xff09;静态路由由网络管理员手动配置&#xff0c;配置方便&#xff0c;对系统要求低&#xff0c;适用于拓扑结构简单并且稳定的小型网络。 &#xff08;2&#xff09;缺点是不能自动适应网络拓扑的变化&#xff0c;需要人工干预过多。…

保险丝(常见元器件及电路基础知识)

分类&#xff1a;简单分为熔断式和非熔断式 电压&#xff1a;保险丝的额定电压是指它的公称额定电压, 通常就是保险丝断开后能够承受的最大电压值保险丝通电时两端所承受的电压大大小于其额定电压&#xff0c;因此额定电压基本上无关紧要。 电流&#xff1a; PFC为功率因数矫…

Java之开发 系统设计 分布式 高性能 高可用

1、restful api 基于rest构建的api 规范&#xff1a; post delete put get 增删改查路径 接口命名 过滤信息状态码 2、软件开发流程 3、命名规范 类名&#xff1a;大驼峰方法名&#xff1a;小驼峰成员变量、局部变量&#xff1a;小驼峰测试方法名&#xff1a;蛇形命名 下划…

语言模型及数据集

一、定义 1、语言模型的目标是估计序列的联合概率&#xff0c;一个理想的语言模型就能够基于模型本身生成自然文本。 2、对一个文档&#xff08;词元&#xff09;序列进行建模&#xff0c; 假设在单词级别对文本数据进行词元化。 3、计数建模 &#xff08;1&#xff09;其中…

AI绘画;喂饭进阶!教你如何用Stable Diffusion生成高清建筑手工模型图,一篇文章搞懂什么是Lora模型和CKPT主模型!

前言 刚接触Stable Diffusion不久的你&#xff0c;是否有这样的疑问&#xff1a; Q1: Stable Diffusion中的主模型CKPT是什么&#xff1f; Q2: Stable Diffusion中的Lora模型又是什么&#xff1f; Q3: 在哪儿可以下载好用的AI绘图模型&#xff1f; Q4: Stable Diffusion 如…

【SpringBoot】2 项目搭建

创建项目 1&#xff09;确实本地 jdk 版本 打开命令行窗口&#xff1a;快捷键 Windows R&#xff0c;输入 CMD&#xff0c;敲回车 执行命令&#xff1a;java -version 2&#xff09;在项目 clone 的位置创建 Spring Boot 项目&#xff0c;使用 Maven 进行依赖管理&#xff…

最新爆火的开源AI项目 | LivePortrait 本地安装教程

LivePortrait 本地部署教程&#xff0c;强大且开源的可控人像AI视频生成 1&#xff0c;准备工作&#xff0c;本地下载代码并准备环境&#xff0c;运行命令前需安装git 以下操作不要安装在C盘和容量较小的硬盘&#xff0c;可以找个大点的硬盘装哟 2&#xff0c;需要安装FFmp…

大疆创新2025校招内推

大疆2025校招-内推 一、我们是谁&#xff1f; 大疆研发软件团队&#xff0c;致力于把大疆的硬件设备和大疆用户紧密连接在一起&#xff0c;我们的使命是“让机器有温度&#xff0c;让数据会说话”。 在消费和手持团队&#xff0c;我们的温度来自于激发用户灵感并助力用户创作…