#!/bin/bash


outdir=$1
name=$2
mofi=$3
outfi=$4

#if [ -e $outfi ] ; then
#	rm -f $outfi
#fi

pdb=`echo $name | awk -F"_" '{print $3}'`
class=`echo $name | awk -F"_" '{print $2}'`

pumo1=""
dobra=""
basepairs=0


if [[ $mofi =~ gz ]] ; then
	pumo1=`zcat $mofi | grep Putative | awk -F" " '{print $3}' | awk -F"&" '{print $1}'`
	dobra=`zcat $mofi | grep Dot-Bracket | awk -F" " '{print $3}'`
	basepairs=`zcat $mofi | grep -c ^BP`
else
	pumo1=`cat $mofi | grep Putative | awk -F" " '{print $3}' | awk -F"&" '{print $1}'`
	dobra=`cat $mofi | grep Dot-Bracket | awk -F" " '{print $3}'`
	basepairs=`cat $mofi | grep -c ^BP`
fi

pumo1len=0
pumo1len=`echo ${#pumo1}`

dobralen=0;
dobralen=`echo ${#dobra}`
dobralen=$(($dobralen - 1))
complex=0
complex=`echo $basepairs / $dobralen | bc -l`

do1=""
do1=`echo ${dobra:0:pumo1len}`
do1=$do1"&"
pumo1len=$(($pumo1len + 1))
do2=`echo ${dobra:pumo1len:$dobralen}`
do1=$do1$do2




## set out files for scores
fredtestrmdout=$outdir"test_rmdout_fr3d.scores"
fredshuffrmdout=$outdir"shuffled_rmdout_fr3d.scores"
## initiate score file sizes
fredshuffrmdsize=0
fredtestrmdsize=0
## initiate score file numbers
fredtestrmdNum=0
fredshuffrmdNum=0



if [ ! -e $fredtestrmdout ] ; then
	
	testrmd=$outdir"test.rmdout.gz"
	if [ -e $testrmd ] ; then
		## get scores from files
        ## fr3d test
        zcat $testrmd | grep -v "#" | grep -v '^$' | awk -F" " '{print $5}' >> $fredtestrmdout
	else echo "no test.rmdout.gz file"
	fi
fi


if [ ! -e $fredshuffrmdout ] ; then
	
    shuffrmd=$outdir"shuffled.rmdout.gz"
	if [ -e  $shuffrmd ] ; then
    	## get scores from files
		## fr3d shuffled
       	zcat $shuffrmd | grep -v "#" | grep -v '^$' | grep -v PERM | awk -F" " '{print $5}'  >> $fredshuffrmdout
	else echo "not shuffled file"
    fi
fi


if [ -e $fredshuffrmdout ] ; then
	fredshuffrmdsize=`stat --printf="%s" $fredshuffrmdout`
	fredshuffrmdNum=`cat $fredshuffrmdout | wc -l`
fi
if [ -e $fredtestrmdout ] ; then
	fredtestrmdsize=`stat --printf="%s" $fredtestrmdout`
	fredtestrmdNum=`cat $fredtestrmdout | wc -l`
fi



/usr/bin/R --no-save --no-restore-history << EOT


## make statistics
fredtestdat <- read.table("$fredtestrmdout")
fredshuffdat <- read.table("$fredshuffrmdout")

sink(file = "$outfi", append = TRUE)
cat("Q_p")
cat(" ")
cat("ModuleName")
cat(" ")
cat("ModuleLength")
cat(" ")
cat("#Basepairs")
cat(" ")
cat("Complexity")
cat(" ")
cat("Delta_sco")
cat(" ")
cat("#ValidationDataPoints")
cat(" ")
cat("#ShuffledDataPoints")
cat("\n")
cat("\n")
sink()

for (val in seq(80,95,5)) {
	
	val1<- val/100
	
	quatestten<-quantile(fredtestdat\$V1, probs = c(val1), na.rm = FALSE) #seq(0, 1, val1)
	tenmeantest<-mean(fredtestdat[which(fredtestdat\$V1 >= quatestten[1]),])
	
	quashufften<-quantile(fredshuffdat\$V1, probs = c(val1), na.rm = TRUE) #seq(0, 1, val1)
	tenmeanshuff<-mean(fredshuffdat[which(fredshuffdat\$V1 >= quashufften[1]),])
	tendiff <- tenmeantest - tenmeanshuff
	
	lenFT <- length(fredtestdat[which(fredtestdat\$V1 >= quatestten[1]),])
	lenFS <- length(fredshuffdat[which(fredshuffdat\$V1 >= quashufften[1]),])
	
	sink(file = "$outfi", append = TRUE)
	cat(val)
	cat(" ")
	cat("$name")
	cat(" ")
	cat("$dobralen")
	cat(" ")
	cat("$basepairs")
	cat(" ")
	cat("$complex")
	cat(" ")
	cat(tendiff)
	cat(" ")
	cat(lenFT)
	cat(" ")
	cat(lenFS)
	cat("\n")
	sink()
}

quit("no")
EOT


gzip -9 $outfi
















