跑这个脚本是总是显示 if(!is.na(dat[i,2])) {错误,参数长度为0,不知怎么改了,求帮助(以下是R脚本)。

######################################################
######################################################
#################VIGS片段相似性检测###################
######################################################
######################################################
install.packages("seqinr")
install.packages("ade4")
### wangpeipei@ibcas.ac.cn


setwd("D:/zhang lab/数据/还亮草/还亮草序列/VIGS")
library(seqinr) ###将字符串拆分的函数包
library(ade4)


#####滑动窗口
dat <- read.table("VIGS regions-sliding window2.txt",head=F, stringsAsFactors=F)
similar <- function(x,y)
  {
   xx <- s2c(x)
   yy <- s2c(y)
   num <- 0
   for(i in 1:length(xx)) if(xx[i]==yy[i]) num=num+1
   rat <- num/length(xx)
   return(rat)
  }
  
similar_sw <- function(x,y,wsize)
  {
    x2 <- s2c(x)
    y2 <- s2c(y)    
    mkwin <- function(seqe, wsize, wstep) 
     {
        sapply(seq(from = 1, to = length(seqe) - wsize + 1, by = wstep),
        function(i) c2s(seqe[i:(i + wsize - 1)]))
     }
    wseq1 <- mkwin(x2, wsize, 1)
    wseq2 <- mkwin(y2, wsize, 1)
    x_y <- 0
    for(i in 1:length(wseq1))
        {
            for(j in 1:length(wseq2))
            {
                x_y <- max(x_y, similar(wseq1[i],wseq2[j]))
            }
        }
    return(x_y)
  }
  
  
  
out <- c()
for(i in 1:3)   ##### 用基因数目替换13
  {
   if(!is.na(dat[i,2]))
   { 
    for(j in 1:3)  ##### 用基因数目替换13
      {
        if(j!=i) 
        {
          aa <- similar_sw(dat[i,2],dat[j,4],21)
          print(paste(dat[i,1],dat[j,3],aa*100,sep="_"))
          out <- rbind(out,paste(dat[i,1],dat[j,3],aa*100,sep="_"))
        }          
      }  
    }
 }
write.table(out,"VIGS_AGL6-1a&1b&2-sliding window_result.txt")

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值