昨天写的关于处理LBLGXE的一段R程序
2017-01-09 19:12
393 查看
LBLprocess <- function(inputFile, rootDir){ dt <- read.table(inputFile, colClasses = "character") cov <- sample(c(0, 1), dim(dt)[1], replace = T) vec <- matrix(0, dim(dt)[1], 202) for(i in 1:dim(dt)[1]){ x <- strsplit(dt[i,1], "") for(j in 1:(length(x[[1]])-1)){ vec[i, 2*j+1] <- as.numeric(x[[1]][j]) if(vec[i, 2*j+1] == 1){ prob <- runif(1, 0.0, 1.0) if(prob >= 0.8) vec[i, 2*(j+1)] <- 1 if(prob < 0.8) vec[i, 2*(j+1)] <- 0 } } if(x[[1]][length(x[[1]])] == 'A'){ vec[i, 1] = 0 } else{ vec[i, 1] = 1 } } vec[,2] <- cov dvec <- as.data.frame(vec) #save(dvec, file = "LBL/LBLdata.rda") for(i in 1:20){ col <- c(1, 2, ((i-1)*10+3):(i*10+2)) head <- c("affected", "cov", "M1.1", "M1.2", "M2.1", "M2.2", "M3.1", "M3.2", "M4.1", "M4.2", "M5.1", "M5.2") LBL.data <- dvec[, col] path <- paste(rootDir, "LBLdata", i, ".rda", sep = "") #LBL.data <- as.data.frame(LBLmat) names(LBL.data) <- head save(LBL.data, file = path) } } comb <- function(str){ if(length(str) == 0){ res = "00000" return(res) } if(length(str) == 1){ return(str) } else{ ch <- strsplit(str[1], "") for(i in 2:length(str)){ for(j in 1:5){ x <- strsplit(str[i], "") if(x[[1]][j] == '1' | ch[[1]][j] == 1){ ch[[1]][j] = '1' } } } s <- paste(ch[[1]][1], ch[[1]][2], ch[[1]][3], ch[[1]][4], ch[[1]][5], sep = "") return(s) } } LBLprocess("LBL/00000000001", "LBL/") library(hapassoc) library(dummies) library(LBLGXE) final <- "" for(i in 1:20){ path <- paste("LBL/LBLdata", i, ".rda", sep = "") load(path) out.LBL<-LBL(LBL.data, numSNPs=5, burn.in=100, num.it=1000) bf <- out.LBL$BF s <- names(bf) zo <- c() for(j in 1:length(bf)){ if(nchar(s[j]) == 6){ if(nchar(bf[j]) == 4){ next } if(as.numeric(bf[j]) >= 2.0){ zo[length(zo)+1] <- substr(s[j], 2, 6) } } } s <- comb(zo) final <- paste(final, s, sep = "") } write.table(final, "LBL/LBLfinal.txt", row.names = F, col.names = F, quote = F)
相关文章推荐
- 分享一段关于处理迈克尔逊干涉仪大学物理实验(吉林大学)实验数据的c程序。
- 昨天初中老同学用奖金来“诱惑”我写个程序,今天毕设老师打电话来让我帮忙处理个她那的程序.....
- 一段关于从HTML文件找出资源地址的小程序(不断更新)
- 关于程序中异常的处理
- 关于java异常处理程序的陋习
- 关于六种Java异常处理程序的陋习
- 关于程序加载错误的处理
- 关于ubuntu的“没有为此类型文件注册相应的处理程序”
- 一段关于fork的小程序的启示
- 关于运行web程序的几点错误处理方法
- 写一段适用于单片机和上位机的蜂鸣器处理程序~
- 关于六种Java异常处理程序的陋习
- 关于VFP如何将SQL后台数据按周备份到前台的一段程序
- 关于六种Java异常处理程序的陋习
- 关于六种Java异常处理程序的陋习
- MFC程序中关于命令行的处理
- 昨天写了一段代码,关于ajax的,一直没有取到从另一个页面response出来的XML值。
- 关于 WinForm程序的登陆处理
- 重要的经典的贴子:关于M8程序时运行中一些意外事件的处理
- DELPHI中关于系统日期格式及程序处理