|||
统计碱基组成的R语言小程序Rjuan 1.03 (核心代码函数化封装)
熊荣川
六盘水师范学院生物信息学实验室
http://blog.sciencenet.cn/u/Bearjazz
之前我们所开发的一段R语言代码——Rjuan 1.0可用于一段序列的各个碱基数量的统计。(详见“统计碱基组成的R语言小程序Rjuan 1.0” http://bbs.sciencenet.cn/home.php?mod=space&uid=508298&do=blog&id=553110)
我们的第一次升级解决了输入序列长度限制的问题
http://bbs.sciencenet.cn/home.php?mod=space&uid=508298&do=blog&id=553147
第二次升级在程序的后面加上一段具有打印功能的代码,并将信息保存为矩阵,并与输出为表格文件
http://bbs.sciencenet.cn/home.php?mod=space&uid=508298&do=blog&id=553163
现在我们对核心代码部分进行函数化封装,这样的在处理新的输入序列时,只需要使用调用函数的方式就可以输出结果了。同时也避免了每次都要进行计数器清零操作。
|
nucount=function(x){ na=0 nt=0 ng=0 nc=0 for (i in 1:length(x)) ( if(x[i]=="A") na=na+1 else if(x[i]=="T") nt=nt+1 else if(x[i]=="G") ng=ng+1 else if(x[i]=="C") nc=nc+1 ) namen=c("na","nt","ng","nc") numbern=c(na,nt,ng,nc) shown=data.frame(namen,numbern) print(shown) } |
|
> |
data<-read.csv("D:\ziliao\zhuanye\R bear\test2.csv") |
导入test2.csv数据存在矩阵data中 |
> |
length(data[,1]) [1] 602 |
查看行数,理论上应该和我们序列中碱基数一致 |
|
|
|
|
z=data[,1] |
为了增加我们基础代码的通用性(较少改动),我们首先将序列数据格式又矩阵转为向量格式 |
|
> nucount(z) namen numbern 1 na 139 2 nt 182 3 ng 109 4 nc 172 |
调用函数并输出结果 |
|
|
|
> |
data<-read.csv("D:\ziliao\zhuanye\R bear\test3.csv") |
导入第二条序列 |
> |
length(data[,1]) [1] 17962 |
序列长度17962bp |
|
z=data[,1] |
序列向量化 |
> |
nucount(z) namen numbern 1 na 5111 2 nt 5272 3 ng 2667 4 nc 4912
|
调用函数nucount() 统计碱基数 |
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-24 19:44
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社