Mercurial > repos > artbio > ngsplot
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") |