统计方法

RSEM的TPM,FPKM,COUNT数据整合

2022-04-17  本文已影响0人  可能性之兽

RSEM的数据整合只能整合count内容
所以简单写了个函数整合RSEM的TPM,FPKM,COUNT

Rsem_get<-function(isoforms_results,Types){
if (Types=="count"){
    outtab=data.frame()
for(i in 1:length(isoforms_results)){
    iso_name=str_split(isoforms_results[i], "\\.")[[1]][1]
    print(iso_name)
    if(i==1){
    
    data=read.table(isoforms_results[i],sep="\t",header=T)
    data_count=data[,c(1,2,3,5)]
    colnames(data_count)[4]<-paste(iso_name,"_count",sep="")
    outtab=rbind(outtab,data_count)
    }else{
    data=read.table(isoforms_results[i],sep="\t",header=T)
    data_count=data.frame(data[,c(5)])
    names(data_count)=paste(iso_name,"_count",sep="")
    outtab=cbind(outtab,data_count[,1])
    colnames(outtab)[length(colnames(outtab))]<-paste(iso_name,"_count",sep="")
    }
    }
}

else if(Types=="TPM"){
    outtab=data.frame()
 for(i in 1:length(isoforms_results)){
    iso_name=str_split(isoforms_results[i], "\\.")[[1]][1]
    print(iso_name)
    if(i==1){
    
    data=read.table(isoforms_results[i],sep="\t",header=T)
    data_count=data[,c(1,2,3,6)]
    colnames(data_count)[4]<-paste(iso_name,"_TPM",sep="")
    outtab=rbind(outtab,data_count)
    }else{
    data=read.table(isoforms_results[i],sep="\t",header=T)
    data_count=data.frame(data[,c(6)])
    names(data_count)=paste(iso_name,"_TPM",sep="")
    outtab=cbind(outtab,data_count[,1])
    colnames(outtab)[length(colnames(outtab))]<-paste(iso_name,"_TPM",sep="")
    }
    }
}   




else if (Types=="FPKM"){
    outtab=data.frame()
 for(i in 1:length(isoforms_results)){
    iso_name=str_split(isoforms_results[i], "\\.")[[1]][1]
    print(iso_name)
    if(i==1){
    
    data=read.table(isoforms_results[i],sep="\t",header=T)
    data_count=data[,c(1,2,3,7)]
    colnames(data_count)[4]<-paste(iso_name,"_FPKM",sep="")
    outtab=rbind(outtab,data_count)
    }else{
    data=read.table(isoforms_results[i],sep="\t",header=T)
    data_count=data.frame(data[,c(7)])
    names(data_count)=paste(iso_name,"_FPKM",sep="")
    outtab=cbind(outtab,data_count[,1])
    colnames(outtab)[length(colnames(outtab))]<-paste(iso_name,"_FPKM",sep="")
    }
    }

}



else if (Types=="ISO"){
    outtab=data.frame()
 for(i in 1:length(isoforms_results)){
    iso_name=str_split(isoforms_results[i], "\\.")[[1]][1]
    print(iso_name)
    if(i==1){
    
    data=read.table(isoforms_results[i],sep="\t",header=T)
    data_count=data[,c(1,2,3,8)]
    colnames(data_count)[4]<-paste(iso_name,"_IsoPct",sep="")
    outtab=rbind(outtab,data_count)
    }else{
    data=read.table(isoforms_results[i],sep="\t",header=T)
    data_count=data.frame(data[,c(8)])
    names(data_count)=paste(iso_name,"_IsoPct",sep="")
    outtab=cbind(outtab,data_count[,1])
    colnames(outtab)[length(colnames(outtab))]<-paste(iso_name,"_IsoPct",sep="")
    }
    }

}

return(outtab)
}

list.files(pattern = "*isoforms.results")->isoforms_results

data_tpm<-Rsem_get(isoforms_results,"TPM")
上一篇下一篇

猜你喜欢

热点阅读