#input format: all results for a TF in txt or csv file: 
#format: tf, matrix, maxscore, fileindex, sourceindex, case

rm(list = ls())
#for greater 80 percent: 
setwd("input")
base <- database"

library("klaR") 
library("stringr") # for chopping strings (for filenames)

#read all files in directory
allfiles <- list.files()

for (i in 1:length(allfiles)) {

  #filename: file at position i
  filename <- allfiles[[i]]
  # read in data
  dat <- read.table(filename, header=T, sep="\t", stringsAsFactors=T)

  outfilename <- str_sub(filename, 1, -5) #crop filename to get rid of .txt
 
  # cross-validation:
  #randomize data
  #dat_rand <- dat[order(runif(nrow(dat))),]
  #define train and test sets: train=90%, test=10%
  #train <- dat_rand[1:(length(dat_rand$index)*0.9),]
  #test <- dat_rand[(length(train$index)+1):length(dat_rand$index),]
  #define and test with entire testset
  #train <- dat_rand
  #test <- dat_rand
  
  train <- dat
  test <- dat


  #use column 3 (maxscore) as predictor, classify by indices given in column 6 (case)
  naiveTrain <- NaiveBayes(train[,3, drop=FALSE], train[,6], usekernel=T)
  naiveTest <- predict(naiveTrain,test[,-6, drop=FALSE], usekernel=T)


  #naiveTrain <- as.data.frame(naiveTrain)

  outfile <- paste("output.RData", sep="")
  saveRDS(naiveTrain, outfile)  
}




