diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bin/install.db.tables.r	Wed Dec 06 19:01:53 2017 -0500
@@ -0,0 +1,73 @@
+#!/usr/bin/env Rscript
+# Install the newly obtained DB tables into two ngs.plot system files:
+# default.tbl and dbfile.tbl.
+
+args <- commandArgs(T)
+# args <- c('/tmp/tmpLXAGXl', '/tmp/tmpUJduMe')
+default.tbl <- args[1]
+db.list <- args[2]
+
+# Genome-region default values.
+anno.tbl <- read.table(default.tbl, header=TRUE, sep="\t",
+                       blank.lines.skip=TRUE, stringsAsFactors=FALSE)
+row.names(anno.tbl) <- paste(anno.tbl$Genome, anno.tbl$Region, sep=".")
+
+# Database table list.
+anno.db.tbl <- read.table(db.list, 
+                          col.names=c("db.file", "Genome", "DB", "Region", 
+                                      "FI.1", "FI.2", "FI.3"),
+                          sep="\t", blank.lines.skip=TRUE, 
+                          stringsAsFactors=FALSE)
+tss.tbl <- anno.db.tbl[anno.db.tbl$Region=="genebody", ]
+tss.tbl$Region <- "tss"
+tes.tbl <- anno.db.tbl[anno.db.tbl$Region=="genebody", ]
+tes.tbl$Region <- "tes"
+anno.db.tbl <- rbind(anno.db.tbl, tss.tbl, tes.tbl)
+anno.db.tbl$URL <- NA  # reserve for future use.
+
+# Extract further info columns.
+default.fi <- anno.tbl[, c("DefaultFI1", "DefaultFI2", "DefaultFI3")]
+db.fi <- anno.db.tbl[, c("FI.1", "FI.2", "FI.3")]
+db.fi$tag <- paste(anno.db.tbl$Genome, anno.db.tbl$Region, sep=".")
+
+# DB scores.
+getScore <- function(v.fi) {
+# Calculate DB score based on intersection with default values.
+# Args:
+#   v.fi: character vector of further infos.
+# Returns: integer of DB score.
+
+    default.vals <- default.fi[v.fi["tag"], ]
+    fi.vals <- v.fi[c("FI.1", "FI.2", "FI.3")]
+    3 - length(intersect(default.vals, fi.vals))
+}
+db.score <- apply(db.fi, 1, getScore)
+anno.db.tbl$dbScore <- db.score
+
+# Save to text output.
+progpath <- Sys.getenv('NGSPLOT')
+if(progpath == "") {
+	stop("Set environment variable NGSPLOT before run the program. See README for details.\n")
+}
+def.f <- file.path(progpath, 'database', 'default.tbl')
+db.f <- file.path(progpath, 'database', 'dbfile.tbl')
+org.anno.tbl <- read.delim(def.f)
+org.anno.db.tbl <- read.delim(db.f)
+anno.tbl <- rbind(org.anno.tbl, anno.tbl)
+anno.tbl <- unique(anno.tbl)
+anno.db.tbl <- rbind(org.anno.db.tbl, anno.db.tbl)
+anno.db.tbl <- unique(anno.db.tbl)
+write.table(anno.tbl, file=def.f, row.names=F, sep="\t", quote=F)
+write.table(anno.db.tbl, file=db.f, row.names=F, sep="\t", quote=F)
+
+# getScore <- function(i, db.fi, default.fi){
+#     score <- 3 - length(intersect(as.matrix(default.fi[db.fi[i, "tag"], ]), as.matrix(db.fi[i, ])))
+#     return(score)
+# }
+
+# for (i in (1:dim(db.fi)[1])){
+#     anno.db.tbl[i, "dbScore"] <- getScore(i, db.fi, default.fi)
+# }
+
+# anno.version="0.01"
+# save(anno.tbl, anno.db.tbl, anno.version, file="database.RData")