根据samtool 统计的reads数计算tpm值

library(data.table)
library(dplyr)
#DNAtpm计算
SMP<-c(123,98,126,4,128,32,134,8,130,29,131,42,119,19,139,24,125,37,144,14,117,5,142,13,127,22,129,48,138,47,140,20,132,18,149,73,120,105,148,44,122,30,124,26,143,34,133,12,145,21,152,10,118,102,147,80,121,1,151,35,135,38,136,2,150,17,146,55,141,11,137,97)
a<-fread("123.DNA.abd",header=F)
a[,1:2]->a #获得表头
colnames(a)<-c("ORF","length")
for (i in SMP){
fread(paste(i,".DNA.abd",sep=""),header=F)->b
left_join(a,b[,c(1,3)],by=c("ORF"="V1"))->a
}
colnames(a)[3:(length(SMP)+2)]<-SMP
a[-which(a[,1]=="*"),]->a
write.table(a,"DNA.reads",sep="\t",quote=F,row.names=F)
t(t(1e6*a[,3:(length(SMP)+2)]/t(a[,2]))/colSums(a[,3:(length(SMP)+2)]/t(a[,2])))->c
data.frame(a[,1],c)->c
c[-which(rowSums(c[,-1])==0),]->d
write.table(d,file="DNAtpm.tsv",quote=F,sep="\t",row.names=F)

#RNAtpm
SMP<-c(123,98,126,107,128,32,134,8,130,29,131,42,119,108,139,24,125,37,144,83,117,5,142,74,127,22,129,81,138,99,140,20,132,82,149,73,120,105,148,44,122,101,124,100,143,76,133,12,145,79,152,77,118,102,147,80,121,106,151,104,135,38,136,2,150,78,146,55,141,11,137,97)
a<-fread("123.RNA.abd",header=F)
a[,1:2]->a
colnames(a)<-c("ORF","length")
for (i in SMP){
fread(paste(i,".RNA.abd",sep=""),header=F)->b
left_join(a,b[,c(1,3)],by=c("ORF"="V1"))->a
}
colnames(a)[3:(length(SMP)+2)]<-SMP
a[-which(a[,1]=="*"),]->a
write.table(a,"RNA.reads",sep="\t",quote=F,row.names=F)
t(t(1e6*a[,3:(length(SMP)+2)]/t(a[,2]))/colSums(a[,3:(length(SMP)+2)]/t(a[,2])))->c
data.frame(a[,1],c)->c
c[-which(rowSums(c[,-1])==0),]->d
write.table(d,file="RNAtpm.tsv",quote=F,sep="\t",row.names=F)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值