#!/usr/bin/python3
import os

class count_ec:

	def __init__(self,lsdir):
		self.lsdir = os.listdir(lsdir)

	def printls(self):
		a = self.lsdir
		p_count = 0
		ec_number_list = {}

		for i in a:
			b = os.listdir("/array1/www/dbCAN_sub/data/CAZy_with_ECs/"+i)
			ec_list = []
			for j in b:
				with open("/array1/www/dbCAN_sub/data/CAZy_with_ECs/"+i+"/"+j, "r") as f:
					for line in f:
						if ">" in line:
							extc_ec = line.split("|")[1:]
							for ec in extc_ec:
								if "." in ec:
									ec_list.append(ec.strip())
			set_ec_list = list(set(ec_list))

			# with open("/array1/www/dbCAN_sub/data/mec_list.csv", "a") as c:
			# 	c.write(i+"\t"+str(len(set_ec_list))+"\n")
			# 	if len(set_ec_list)>1:
			# 		p_count = p_count + 1

			if len(set_ec_list) not in ec_number_list:
				ec_number_list[len(set_ec_list)] = []
				ec_number_list[len(set_ec_list)].append(i)
			else:
				ec_number_list[len(set_ec_list)].append(i)

		print(ec_number_list)
		
		for x in ec_number_list:
			# print(str(x)+"\n")
			# print(str(x)+"\t"+str(len(ec_number_list[x]))+"\n")
			with open("/array1/www/dbCAN_sub/data/ec_num.csv", "a") as c:
				c.write(str(x)+"\t"+str(len(ec_number_list[x]))+"\n")
		# print("p_count: " + str(p_count))

if __name__ == "__main__":
	cec = count_ec("/array1/www/dbCAN_sub/data/CAZy_with_ECs")
	cec.printls()