CPTAC蛋白质差异分析详细步骤

CPTAC蛋白质差异分析

1. CPTAC数据下载

根据自己的需求选择对应的癌症,然后下载,这里就不展开讲了。以下为下载的数据目录

在这里插入图片描述

2. 数据补缺校正

从CPTAC下载的蛋白质数据很多都是有缺失值的,这样不利于我们后期分析,所以需要对这些缺失值进行补缺,然后校正(归一化)。

  • 首先新建空文件夹名为1_数据补缺校正,将下载的第二个文件(肿瘤文件)复制到空文件夹中

  • 然后新建的txt文件,名为input.txt,将复制到空文件夹的表格内容粘贴到input.txt中,然后保存

  • 之后在新建的空文件夹新建脚本,脚本代码如下所示:

    if (!requireNamespace("BiocManager", quietly = TRUE))
       install.packages("BiocManager")
    BiocManager::install("impute")
    
    if (!requireNamespace("BiocManager", quietly = TRUE))
       install.packages("BiocManager")
    BiocManager::install("limma")
    
    library(impute)
    library(limma)
    setwd("C:\\Users\\Administrator\\Desktop\\cptac\\1_数据补缺校正")           #设置工作目录
    file="input.txt"                                                  #输入文件名字       
    
    #读取file并对基因整理
    rt=read.table(file,sep="\t",header=T,check.names=F,row.names=1)
    rt=as.matrix(rt)
    
    #选取数值,需要修改
    #selectCol=seq(2,ncol(rt),2)        #保留列号为偶数的列,如果需要保留列号为奇数的列,把第一个2改成1
    #rt=rt[,selectCol]
    
    #数据补缺
    mat=impute.knn(rt)
    rt=mat$data
    
    #对数据进行矫正
    normalizeData=normalizeBetweenArrays(as.matrix(rt))
    
    #输出结果
    normalizeData=rbind(geneNames=colnames(normalizeData),normalizeData)
    write.table(normalizeData,file="normalize.txt",sep="\t",quote=F,col.names=F)
    
  • 最后将上述代码复制到R中运行,运行完在名为1_数据补缺校正的文件夹中就会有normalize.txt了。至此就实现了数据补缺和校正

3. 数据分组

差异分析肯定是对某个类别进行的分析,比如对性别、癌症的诊断方式等,这里我们以癌症患者的性别进行分组演示。

  • 首先新建文件夹为2_分组分析,将数据补缺校正得到的normalize.txt文件和数据库下载的临床文件复制到该文件夹中

  • 打开临床文件,对性别这一列进行排序,得到的结果如下图所示:在这里插入图片描述

  • 接着新建文本文件sample1.txt和sample2.txt,将排序之后的临床文件的female对应的id复制粘贴到sample1.txt中,将male对应的id复制粘贴到sample2.txt中

  • 然后建立perl脚本文件cptac_group.pl,在此文件夹目录下打开powershell,输入perl cptac_group.pl,(此脚本太大了,代码就先不放了)程序运行完即可显示sample1和sample2对应的样本数,并且在文件夹下按照sample1和sample2的顺序生成了新的样本表达文件sampleExp.txt
    在这里插入图片描述

  • 至此,样本分组完毕

4. 蛋白质组差异分析

在进行完上面三步之后,接下来就可以进行差异分析了,步骤如下:

  • 新建空白文件夹3_差异分析,并将数据分组之后的结果sampleExp.txt复制到该文件夹下

  • 新建R语言脚本cpta_diff.R,其代码如下:

    setwd("C:\\Users\\Administrator\\Desktop\\cptac\\3_差异分析")            #设置工作目录
    inputFile="sampleExp.txt"                                     #输入文件
    pFilter=0.05                                                  #p值临界值
    logFCfilter=0                                                 #logFC临界值
    conNum=56                                                    #sample1组样品数目
    treatNum=41                                                  #sample2组样品数目
    
    #读取输入文件
    outTab=data.frame()
    group=c(rep(1,conNum),rep(2,treatNum))
    data=read.table(inputFile,sep="\t",header=T,check.names=F,row.names=1)
    data=as.matrix(data)
    
    #差异分析
    for(i in row.names(data)){
      geneName=i
      rt=rbind(expression=data[i,],group=group)
      rt=as.matrix(t(rt))
      tTest<-t.test(expression ~ group, data=rt)
      pvalue=tTest$p.value
      conGeneMeans=mean(data[i,1:conNum])
      treatGeneMeans=mean(data[i,(conNum+1):ncol(data)])
      logFC=treatGeneMeans-conGeneMeans
      conMed=median(data[i,1:conNum])
      treatMed=median(data[i,(conNum+1):ncol(data)])
      diffMed=treatMed-conMed
    	if( ((logFC>0) & (diffMed>0)) | ((logFC<0) & (diffMed<0)) ){  
    		  outTab=rbind(outTab,cbind(gene=i,conMean=conGeneMeans,treatMean=treatGeneMeans,logFC=logFC,pValue=pvalue))
    	 }
    }
    
    #输出所有蛋白的差异情况
    write.table(outTab,file="all.xls",sep="\t",row.names=F,quote=F)
    
    #输出差异表格
    outDiff=outTab[( abs(as.numeric(as.vector(outTab$logFC)))>logFCfilter & as.numeric(as.vector(outTab$pValue))<pFilter),]
    write.table(outDiff,file="diff.xls",sep="\t",row.names=F,quote=F)
    
    #输出差异蛋白表达
    heatmap=rbind(ID=colnames(data[as.vector(outDiff[,1]),]),data[as.vector(outDiff[,1]),])
    write.table(heatmap,file="diffProteinExp.txt",sep="\t",col.names=F,quote=F)
    
  • 然后打开R软件,粘贴此代码运行,最终在文件夹下即可得到结果,如下图所示:
    在这里插入图片描述

    其中:

    • all.xls为所有基因的差异数据,如下图所示:

    在这里插入图片描述

    • diff.xls为满足p值小于0.05的蛋白质的差异数据,如下图所示:

      在这里插入图片描述

      • diffProteinExp.txt为差异蛋白的表达量数据,如下图所示:

        在这里插入图片描述

至此,蛋白质组的差异分析就结束了,如果需要作图,用表格的差异数据在graphpad可自行作图

  • 5
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值