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")