#!/usr/bin/env python

import svhc
import sys
import pandas as pd
import numpy as np
import argparse

if __name__=='__main__':

	parser = argparse.ArgumentParser(description='Create a multivariate data series strarting from an input factor loading matrix')
	parser.add_argument('inputfile', type=str, help='tab separated factor loading matrix')
	parser.add_argument('T', type=int,  help='length of the data series')
	parser.add_argument('--noise', type=float, nargs='?', const=0.,  default=0.,  help='noise parameter (0<=noise<=1)')
	parser.add_argument('outputfile', type=str,  help='name of the output file')
	
	args = parser.parse_args()
					
	inputfile,T,noise = args.inputfile, args.T, args.noise
	outputfile = args.outputfile

	P = np.array(pd.read_csv(inputfile,sep='\t',header=None))

	X,comm = svhc.CREATE_DATA(P,T=T,noise=noise)

	pd.DataFrame(X).to_csv('%s_dataSeries_benchmark.dat'%outputfile,sep='\t',index=False,header=False)
	with open('%s_cluster_reference.dat'%outputfile,'w') as fw:
		fw.write("\n".join([",".join(map(str,comm[i])) for i in range(len(comm))]))
