import csv
import numpy as np
import os
import matplotlib.pyplot as plt
# dir = '/Users/schimmt/Multis/app/FileAssociation/MULTIS_trials/RegCheck/CMULTIS004-1/Registration/R01/QualityCheck/'
dir = '/Users/schimmt/Multis/app/FileAssociation/MULTIS_trials/RegCheck/'
DG_CT = []
DG_MR = []
MR_CT = []
folderlist = sorted(os.listdir(dir))
folderlist1 = []
for item in folderlist:
    if item != '.DS_Store':
        folderlist1.append(item)
folderlist = folderlist1
for folder in folderlist:
    dir1 = dir + folder + '/Registration/R01/QualityCheck/'
    # print dir1
    filenames_list = sorted(os.listdir(dir1))

    filenames_list_1 = []
    for item in filenames_list:
        if item != '.DS_Store':
            filenames_list_1.append(item)
    filenames_list = filenames_list_1
    # filename = filenames_list[0]


    for filename in filenames_list:
        # print filename


        infile = open(dir1+filename)

        reader = csv.reader(infile)
        data = []
        rownum = 0
        rows = []
        for row in reader:
            # Save header row.
            rows.append(row)
            if rownum == 1:
                segment = row
            else:
                data.append(row)
            # if row[0][18:31] == 'Distance Diff':

        i = 0
        distdiff=[]
        perc=    []
        xang=    []
        yang=    []
        zang=    []
        for row in range(len(data)):
            try:
                j = 0
                if data[i][0][18:31] == 'Distance Diff':
                    j += 1
                    i += 1
                    # print data[i - 1]
                    for numrows in range(len(data[i:])):
                        if len(data[i][0]) >= 1:
                            # print data[i]

                            part1=data[i][0].split()
                            part2=data[i][1].split()
                            part3=data[i][2].split()
                            line = part1 + part2 + part3
                            distdiff.append(abs(float(line[2])))
                            perc.append(abs(float(line[4][1:])))
                            xang.append(abs(float(line[-3])))
                            yang.append(abs(float(line[-2])))
                            zang.append(abs(float(line[-1])))
                            i += 1
            except:
                IndexError
            i += 1


            rownum+=1
        modal = filename[-12:-7]
        subID = filename[4:16]
        maxx = data[-1][0][11:15]
        percc = data[-1][0][20:24]


        # print subID, modal, data[-1][1], data[-1][2]



        if modal == 'DG_CT':
            DG_CT.append([filename, modal, maxx, percc, distdiff, perc, xang, yang, zang])
        if modal == 'DG_MR':
            DG_MR.append([filename, modal, maxx, percc, distdiff, perc, xang, yang, zang])
        if modal == 'MR_CT':
            MR_CT.append([filename, modal, maxx, percc, distdiff, perc, xang, yang, zang])
        # print segment
        # x_index = segment.index('  "x"')
        # y_index = segment.index('  "y"')

# print DG_CT
# print ''
# print DG_MR
# print ''
# print MR_CT

check = 0
maxDGCT=[]
maxDGMR=[]
maxMRCT=[]
ddDGCT=[]
for rowss in DG_CT:
    maxDGCT.append(np.float(rowss[2]))
    ddDGCT.append(rowss[4])
ddDGCT = [item for sublist in ddDGCT for item in sublist]

for i in DG_MR:
    maxDGMR.append(np.float(i[2]))
for i in MR_CT:
    maxMRCT.append(np.float(i[2]))

# force_list.index(max(force_list))

print 'DGCT', "max [perc]:", DG_CT[maxDGCT.index(max(maxDGCT))][2:4]
print '     Avg [std]:', np.round(np.average(ddDGCT),2), '[',np.round(np.std(ddDGCT),2),']'

print 'DGMR', DG_MR[maxDGMR.index(max(maxDGMR))]
print 'MRCT', MR_CT[maxMRCT.index(max(maxMRCT))]
print
print 'DGCT', DG_CT[maxDGCT.index(min(maxDGCT))]
print 'DGMR', DG_MR[maxDGMR.index(min(maxDGMR))]
print 'MRCT', MR_CT[maxMRCT.index(min(maxMRCT))]