#!/home/asiimwe/anaconda3/bin/python
#Extracting benchmarking results from time command
import sys
import csv
import os
import string
import subprocess
from itertools import chain
import pandas as pd


STAR_path = "/home/asiimwe/projects/run_env/alpha_star_wasp_benchmarking/STAR/STAR_Runs/"
STAR_WASP_path = "/home/asiimwe/projects/run_env/alpha_star_wasp_benchmarking/STAR_WASP/STAR_WASP_Runs/"
WASP_path = "/home/asiimwe/projects/run_env/alpha_star_wasp_benchmarking/WASP/WASP_Runs/"

os.remove("/home/asiimwe/projects/run_env/alpha_star_wasp_benchmarking/dataExtractions/benchmark_results_all_runs.txt") 

subprocess.call(["touch", "/home/asiimwe/projects/run_env/alpha_star_wasp_benchmarking/dataExtractions/benchmark_results_all_runs.txt"])

outputfile = open("/home/asiimwe/projects/run_env/alpha_star_wasp_benchmarking/dataExtractions/benchmark_results_all_runs.txt", "a")


wrt_header1= "Sample" + '\t' + "Run" + '\t' + "Thread" + '\t' + "Param" + '\t' + "Value" + "\n"
outputfile.write(wrt_header1)


paths = (STAR_path, STAR_WASP_path, WASP_path)

global value_8threads
global value_16threads
global value_32threads

for path, dirs, files in chain.from_iterable(os.walk(path) for path in paths):
	for file in files:
		if file.endswith("resource_log.txt"):
			pathx = os.path.join(path, file)
			#print(pathx)
			sample_name = "/".join(pathx.split("/")[-3:-2])
			run = "/".join(pathx.split("/")[-4:-3])
			threads = "/".join(pathx.split("/")[-2:-1])
			#print(sample_name)
			#print(run)
			#print(threads)
			f1 = open(pathx, "r")
			reader = f1.readlines()
			for i in reader[1:]:
				#print(i)
				param = ':'.join(i.split(':')[:1])
				value = ':'.join(i.split(':')[1:])
				#print(param)
				#print(value)
				line_out = sample_name + "\t" + run + "\t" + threads + "\t" + param + "\t" + "%s" %value  + "\n"
				#print(line_out)
				outputfile.write(line_out)


#Pivoting created data frame:
#df = pd.read_csv("/home/asiimwe/projects/run_env/alpha_star_wasp_comparison/run_results.txt")
#df_piv = pd.pivot_table(df, values='Value', index=['Sample'], columns=['Thread','Run'])
