comparison bin/install.db.tables.r @ 0:3ca58369469c draft

planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/ngsplot commit b'e9fcc157a7f2f2fa9d6ac9a58d425ff17c975f5c\n'
author artbio
date Wed, 06 Dec 2017 19:01:53 -0500
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:3ca58369469c
1 #!/usr/bin/env Rscript
2 # Install the newly obtained DB tables into two ngs.plot system files:
3 # default.tbl and dbfile.tbl.
4
5 args <- commandArgs(T)
6 # args <- c('/tmp/tmpLXAGXl', '/tmp/tmpUJduMe')
7 default.tbl <- args[1]
8 db.list <- args[2]
9
10 # Genome-region default values.
11 anno.tbl <- read.table(default.tbl, header=TRUE, sep="\t",
12 blank.lines.skip=TRUE, stringsAsFactors=FALSE)
13 row.names(anno.tbl) <- paste(anno.tbl$Genome, anno.tbl$Region, sep=".")
14
15 # Database table list.
16 anno.db.tbl <- read.table(db.list,
17 col.names=c("db.file", "Genome", "DB", "Region",
18 "FI.1", "FI.2", "FI.3"),
19 sep="\t", blank.lines.skip=TRUE,
20 stringsAsFactors=FALSE)
21 tss.tbl <- anno.db.tbl[anno.db.tbl$Region=="genebody", ]
22 tss.tbl$Region <- "tss"
23 tes.tbl <- anno.db.tbl[anno.db.tbl$Region=="genebody", ]
24 tes.tbl$Region <- "tes"
25 anno.db.tbl <- rbind(anno.db.tbl, tss.tbl, tes.tbl)
26 anno.db.tbl$URL <- NA # reserve for future use.
27
28 # Extract further info columns.
29 default.fi <- anno.tbl[, c("DefaultFI1", "DefaultFI2", "DefaultFI3")]
30 db.fi <- anno.db.tbl[, c("FI.1", "FI.2", "FI.3")]
31 db.fi$tag <- paste(anno.db.tbl$Genome, anno.db.tbl$Region, sep=".")
32
33 # DB scores.
34 getScore <- function(v.fi) {
35 # Calculate DB score based on intersection with default values.
36 # Args:
37 # v.fi: character vector of further infos.
38 # Returns: integer of DB score.
39
40 default.vals <- default.fi[v.fi["tag"], ]
41 fi.vals <- v.fi[c("FI.1", "FI.2", "FI.3")]
42 3 - length(intersect(default.vals, fi.vals))
43 }
44 db.score <- apply(db.fi, 1, getScore)
45 anno.db.tbl$dbScore <- db.score
46
47 # Save to text output.
48 progpath <- Sys.getenv('NGSPLOT')
49 if(progpath == "") {
50 stop("Set environment variable NGSPLOT before run the program. See README for details.\n")
51 }
52 def.f <- file.path(progpath, 'database', 'default.tbl')
53 db.f <- file.path(progpath, 'database', 'dbfile.tbl')
54 org.anno.tbl <- read.delim(def.f)
55 org.anno.db.tbl <- read.delim(db.f)
56 anno.tbl <- rbind(org.anno.tbl, anno.tbl)
57 anno.tbl <- unique(anno.tbl)
58 anno.db.tbl <- rbind(org.anno.db.tbl, anno.db.tbl)
59 anno.db.tbl <- unique(anno.db.tbl)
60 write.table(anno.tbl, file=def.f, row.names=F, sep="\t", quote=F)
61 write.table(anno.db.tbl, file=db.f, row.names=F, sep="\t", quote=F)
62
63 # getScore <- function(i, db.fi, default.fi){
64 # score <- 3 - length(intersect(as.matrix(default.fi[db.fi[i, "tag"], ]), as.matrix(db.fi[i, ])))
65 # return(score)
66 # }
67
68 # for (i in (1:dim(db.fi)[1])){
69 # anno.db.tbl[i, "dbScore"] <- getScore(i, db.fi, default.fi)
70 # }
71
72 # anno.version="0.01"
73 # save(anno.tbl, anno.db.tbl, anno.version, file="database.RData")