首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

蛋白质组学数据填充 | DEP包的使用

我们获得的蛋白质组学的原始表达矩阵一般都是会有不少的缺失值,那么我们怎样去进行填充呢?接下来我将展示下蛋白质组学处理【DEP】包的使用。

01

先把格式改成DEP包需要的,需要有两列:name和ID

library(DEP)library(tidyverse)

data <- read.delim("tao/protein_matrix.txt") %>% mutate(Genes= .$protein)

#  去掉gene/蛋白名中的重复值,这里是以分号分割的:data_unique <- make_unique(data,"Genes","protein",delim = ";")colnames(data_unique)

构建DEP包的对象

# experiment_design <- data.frame(label=colnames(data_unique)[2:32], condition=c(rep("T",23),rep("N",8)) , replicate=c(1:23,1:8))

# 构建对象 data_se <- make_se(data_unique,grep("N|T",colnames(data_unique)) ,experiment_design)

绘制每个样本已鉴定蛋白质数量的条形图

plot_numbers(data_se)

绘制样品间蛋白质鉴定重叠的条形图

数据标准化

data_norm <- normalize_vsn(data_se)meanSdPlot(data_norm)

所有样本标准化前后可视化箱线图

plot_normalization(data_se,data_norm)

查看缺失值情况

plot_missval(data_norm)

plot_detect(data_norm)

可以看到缺失的蛋白是相对低丰度蛋白,

第一种方法,这个文章中用的蛮多的:

从手动定义的left-shift高斯分布随机中抽取来估算缺失数据:

data_imp_man <- impute(data_norm,fun = "man",shift = 1.8,scale = 0.3)

plot_imputation(data_norm,data_imp_man)

这个是填充完了的数据:

还有一种方法 使用knn的方法:

通过距离测量来识别数据集中空间相似或相近的 k个样本。然后,使用这些样本来估计缺失数据点的值。每个样本的缺失值使用数据集中找到的 k 邻域的平均值进行插补:

library(impute)#使用 impute填补缺失值T_data <- data[,grep("T",colnames(data))]ncol(T_data)

T_impute <- impute::impute.knn(as.matrix(T_data), #矩阵 k=20, #预设近邻数,默认10 rowmax=0.8, #当某行的缺失值占比超过50%,则用整个样本的均值填充 colmax=0.8)[[1]] %>% #当任何一列中缺失值占比80%,计算终止并报错 as.data.frame(.)

N_data <- data[,grep("N",colnames(data))]ncol(N_data)

N_impute <- impute::impute.knn(as.matrix(N_data), #矩阵 k=6, #预设近邻数,默认10 rowmax=0.8, #当某行的缺失值占比超过50%,则用整个样本的均值填充 colmax=0.8)[[1]] %>% #当任何一列中缺失值占比80%,计算终止并报错 as.data.frame(.)

data_impute <- merge(T_impute,N_impute,by = "row.names",all = FALSE )

# 结果 (data_impute_knn <- data_impute %>% mutate(protein = data$protein)

write.csv(data_impute_knn,"imputeknn.csv")

至此,数据填充完成。根据我的经验,蛋白组中数据缺失倾向于低丰度数据,所以,基本上使用最小值填充的策略就比较适合。(我一般会手动定义一个以最小值为为中心的高斯分布数据进行填充)

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OsdBib_VEO36SiO_Iw1ao8pQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券