# TODO: Add comment
# 
# Author: E.Korsching 9.12.2011
###############################################################################



reconstruct.biol <- function(x, gRef, gTest, z){
	# check biological relevance of order
	# replace order numbers with biological factors - from results of functions
	#  enumeration.search.dep.boots.GOnly.extf90  ,  enumeration.search.dep.boots.GOnly.ext2f90
	# input: x: raw data
	#  gRef/gTest: used for the above functions, z: result of the above functions: ssq(1), best testc(nr), testc(nr), comb(nc)
	# output: matrix of biological factors
	
	#ini
	ntest <- length(gTest)
	nref <- length(gRef)
	nrz <- dim(z)[1]
	name.x <- names(x)
	
	#filter and order x names
	name.y <- name.x[c(gTest, gRef)]
	
	#info
	cat("\n input (x): \n", name.x, "\n")
	#print(x)
	cat("\n and ordered input (y): \n", name.y, "\n")
	#print(y)
	cat("\n col 1 bis ", ntest, ": Test, col ", ntest + 1, " bis ", ntest + nref, ": Ref \n")
	
	#
	f1 <- function(z,ntest,nref,name.y){
		# ssq:1 , ordered test  2:(ntest+1) , not ordered test  (ntest+2):((2*ntest)+1) , ref  ((2*ntest)+2):((2*ntest)+2+nref)
		ref.selected <- z[ ((2*ntest)+2):((2*ntest)+1+nref) ]
		test.selected <- z[ (ntest+2):((2*ntest)+1) ]
		test.selected.ordered <- z[ 2:(ntest+1) ]
		#test ordered , ref
		erg <- c(  name.y[test.selected][test.selected.ordered] , name.y[ref.selected]  )
	}
	erg <- t( apply(z, 1, f1, ntest, nref, name.y) )
	
	return(erg)
}


#aa <- reconstruct.biol(He589.c, gRef=c(1,5,2,3,12,13), gTest=c(4,6:11,14:16), z=He589.c.exchange.1)
#aa <- reconstruct.biol(x=horstLCA.2, gRef=c(4,5,6,7,8,10), gTest=c(1:3,9,11,14,17:20), z=horstLCA.2.hy1.extf90)



