高效统计polyA中每个序列GCT碱基数量

 文件数据格式如下:

输出格式如下:

#读取csv文件
library(data.table)
library(stringr)
library(dplyr)
print(getwd())
start<-Sys.time()
polyAData <- fread(file="./data/D10.PolyA_FL.csv",encoding='UTF-8')
#输出行列数量值
cat(nrow(polyAData),ncol(polyAData))
#获取seq列数据
print("----------创建向量,统计polyA中GCT数据,后面合成数据框添加到原始数据框中----------")
Total = c()
G = c()
C = c()
T = c()
GCT = c()
print("-------------------apply,select")
#统计碱基相关数据
statiGCT=function(x){
  polyA_Total=nchar(x)
  g_count=str_count(x,pattern = "G")
  c_count=str_count(x,pattern = "C")
  t_count=str_count(x,pattern = "T")
  gct_count = g_count+c_count+t_count;
  Total<<-c(Total,polyA_Total)
  G<<-c(G,g_count)
  C<<-c(C,c_count)
  T<<-c(T,t_count)
  GCT<<-c(GCT,gct_count)

#取第二列数据,按列取,将该列中每行数据作为变量x传入statiGCT方法中
#apply(select(polyAData,2),2,function(x) statiGCT(x) )
apply(select(polyAData,2),2,function(x) statiGCT(x) )
#将向量组合成数据框
print("将向量组合成数据框")
GCTStati = cbind(Total,G,C,T,GCT)
write.csv(GCTStati,file = "./data/output/mydataTest5.csv",row.names = F)
end<-Sys.time()

runningtime<-end-start
print(cat("程序运行时间:",runningtime) )

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值