import pickle 
a=pickle.load(open('filtered_GO.p','rb'))
#b=pickle.load(open('data (1).p','rb'))
c=pickle.load(open('go.p','rb'))

"""
GO_label: GO:0000049 index 33
get_index_temp: {'GO:0003723', 'GO:0097159', 'GO:1901363', 'GO:0005488', 'GO:0003676', 'GO:0003674'}
GO_label: GO:0000105 index 73
get_index_temp: {'GO:0044238', 'GO:0019752', 'GO:0046394', 'GO:1901564', 'GO:1901607', 'GO:0006807', 'GO:0044237', 'GO:0043436', 'GO:0008150', 'GO:0044249', 'GO:1901362', 'GO:0009987', 'GO:0009058', 'GO:0018130', 'GO:1901605', 'GO:0006082', 'GO:0071704', 'GO:0016053', 'GO:0034641', 'GO:0006520', 'GO:0044281', 'GO:0044283', 'GO:0019438', 'GO:0008152', 'GO:0006547', 'GO:1901566', 'GO:0008652', 'GO:0046483', 'GO:0006725', 'GO:1901360', 'GO:1901576', 'GO:0052803'}
GO_label: GO:0000107 index 74
get_index_temp: {'GO:0016763', 'GO:0003824', 'GO:0016757', 'GO:0016740', 'GO:0003674'}
GO_label: GO:0000287 index 205
get_index_temp: {'GO:0043167', 'GO:0043169', 'GO:0046872', 'GO:0005488', 'GO:0003674'}
GO_label: GO:0002377 index 1644
get_index_temp: {'GO:0002440', 'GO:0008150', 'GO:0002376'}
GO_label: GO:0003735 index 2672
get_index_temp: {'GO:0005198', 'GO:0003674'}
GO_label: GO:0003735 index 2672
get_index_temp: {'GO:0005198', 'GO:0003674'}
GO_label: GO:0003735 index 2672
get_index_temp: {'GO:0005198', 'GO:0003674'}
GO_label: GO:0003735 index 2672
get_index_temp: {'GO:0005198', 'GO:0003674'}
GO_label: GO:0003743 index 2673
get_index_temp: {'GO:0003723', 'GO:0008135', 'GO:0097159', 'GO:1901363', 'GO:0005488', 'GO:0003676', 'GO:0003674'}
GO_label: GO:0003746 index 2674
get_index_temp: {'GO:0003723', 'GO:0008135', 'GO:0097159', 'GO:1901363', 'GO:0005488', 'GO:0003676', 'GO:0003674'}
GO_label: GO:0003861 index 2722
get_index_temp: {'GO:0003824', 'GO:0016836', 'GO:0016829', 'GO:0016835', 'GO:0003674'}
GO_label: GO:0003924 index 2768
get_index_temp: {'GO:0017111', 'GO:0016787', 'GO:0003824', 'GO:0016462', 'GO:0016818', 'GO:0016817', 'GO:0003674'}
GO_label: GO:0003924 index 2768
get_index_temp: {'GO:0017111', 'GO:0016787', 'GO:0003824', 'GO:0016462', 'GO:0016818', 'GO:0016817', 'GO:0003674'}
GO_label: GO:0003924 index 2768
get_index_temp: {'GO:0017111', 'GO:0016787', 'GO:0003824', 'GO:0016462', 'GO:0016818', 'GO:0016817', 'GO:0003674'}
GO_label: GO:0003977 index 2805
get_index_temp: {'GO:0003824', 'GO:0070569', 'GO:0016779', 'GO:0016772', 'GO:0016740', 'GO:0003674'}
GO_label: GO:0004004 index 2829
get_index_temp: {'GO:0004386', 'GO:0017111', 'GO:0016787', 'GO:0003824', 'GO:0003724', 'GO:0140098', 'GO:0016462', 'GO:0008186', 'GO:0008026', 'GO:0042623', 'GO:0016818', 'GO:0070035', 'GO:0016817', 'GO:0016887', 'GO:0003674'}
GO_label: GO:0004017 index 2836
get_index_temp: {'GO:0016776', 'GO:0003824', 'GO:0019201', 'GO:0016301', 'GO:0019205', 'GO:0016772', 'GO:0016740', 'GO:0003674'}
GO_label: GO:0004068 index 2884
get_index_temp: {'GO:0003824', 'GO:0016831', 'GO:0016829', 'GO:0016830', 'GO:0003674'}
GO_label: GO:0004190 index 2989
get_index_temp: {'GO:0016787', 'GO:0003824', 'GO:0004175', 'GO:0070001', 'GO:0140096', 'GO:0008233', 'GO:0003674', 'GO:0070011'}
GO_label: GO:0004252 index 2993
get_index_temp: {'GO:0016787', 'GO:0003824', 'GO:0008236', 'GO:0004175', 'GO:0140096', 'GO:0008233', 'GO:0017171', 'GO:0003674', 'GO:0070011'}
GO_label: GO:0004318 index 3012
get_index_temp: {'GO:0004312', 'GO:0016628', 'GO:0003824', 'GO:0016491', 'GO:0016627', 'GO:0016747', 'GO:0016746', 'GO:0016740', 'GO:0003674'}
GO_label: GO:0004585 index 3233
get_index_temp: {'GO:0016743', 'GO:0003824', 'GO:0016741', 'GO:0016740', 'GO:0003674'}
GO_label: GO:0004592 index 3240
get_index_temp: {'GO:0003824', 'GO:0016879', 'GO:0016874', 'GO:0016881', 'GO:0003674'}
GO_label: GO:0004654 index 3293
get_index_temp: {'GO:0003824', 'GO:0016779', 'GO:0016772', 'GO:0016740', 'GO:0003674'}
GO_label: GO:0004813 index 3426
get_index_temp: {'GO:0140101', 'GO:0003824', 'GO:0016875', 'GO:0004812', 'GO:0140098', 'GO:0016874', 'GO:0003674'}
GO_label: GO:0004824 index 3437
get_index_temp: {'GO:0140101', 'GO:0003824', 'GO:0016875', 'GO:0004812', 'GO:0140098', 'GO:0016874', 'GO:0003674'}
GO_label: GO:0005200 index 3706
get_index_temp: {'GO:0005198', 'GO:0003674'}
GO_label: GO:0005524 index 3862
get_index_temp: {'GO:0043168', 'GO:1901265', 'GO:0097367', 'GO:0043167', 'GO:0000166', 'GO:0036094', 'GO:0097159', 'GO:0008144', 'GO:0030554', 'GO:0032553', 'GO:0032559', 'GO:0017076', 'GO:0005488', 'GO:1901363', 'GO:0035639', 'GO:0032555', 'GO:0003674'}
GO_label: GO:0005524 index 3862
get_index_temp: {'GO:0043168', 'GO:1901265', 'GO:0097367', 'GO:0043167', 'GO:0000166', 'GO:0036094', 'GO:0097159', 'GO:0008144', 'GO:0030554', 'GO:0032553', 'GO:0032559', 'GO:0017076', 'GO:0005488', 'GO:1901363', 'GO:0035639', 'GO:0032555', 'GO:0003674'}
GO_label: GO:0005524 index 3862
get_index_temp: {'GO:0043168', 'GO:1901265', 'GO:0097367', 'GO:0043167', 'GO:0000166', 'GO:0036094', 'GO:0097159', 'GO:0008144', 'GO:0030554', 'GO:0032553', 'GO:0032559', 'GO:0017076', 'GO:0005488', 'GO:1901363', 'GO:0035639', 'GO:0032555', 'GO:0003674'}
GO_label: GO:0005524 index 3862
get_index_temp: {'GO:0043168', 'GO:1901265', 'GO:0097367', 'GO:0043167', 'GO:0000166', 'GO:0036094', 'GO:0097159', 'GO:0008144', 'GO:0030554', 'GO:0032553', 'GO:0032559', 'GO:0017076', 'GO:0005488', 'GO:1901363', 'GO:0035639', 'GO:0032555', 'GO:0003674'}
GO_label: GO:0005524 index 3862
get_index_temp: {'GO:0043168', 'GO:1901265', 'GO:0097367', 'GO:0043167', 'GO:0000166', 'GO:0036094', 'GO:0097159', 'GO:0008144', 'GO:0030554', 'GO:0032553', 'GO:0032559', 'GO:0017076', 'GO:0005488', 'GO:1901363', 'GO:0035639', 'GO:0032555', 'GO:0003674'}
GO_label: GO:0005524 index 3862
get_index_temp: {'GO:0043168', 'GO:1901265', 'GO:0097367', 'GO:0043167', 'GO:0000166', 'GO:0036094', 'GO:0097159', 'GO:0008144', 'GO:0030554', 'GO:0032553', 'GO:0032559', 'GO:0017076', 'GO:0005488', 'GO:1901363', 'GO:0035639', 'GO:0032555', 'GO:0003674'}
GO_label: GO:0005524 index 3862
get_index_temp: {'GO:0043168', 'GO:1901265', 'GO:0097367', 'GO:0043167', 'GO:0000166', 'GO:0036094', 'GO:0097159', 'GO:0008144', 'GO:0030554', 'GO:0032553', 'GO:0032559', 'GO:0017076', 'GO:0005488', 'GO:1901363', 'GO:0035639', 'GO:0032555', 'GO:0003674'}
GO_label: GO:0005524 index 3862
get_index_temp: {'GO:0043168', 'GO:1901265', 'GO:0097367', 'GO:0043167', 'GO:0000166', 'GO:0036094', 'GO:0097159', 'GO:0008144', 'GO:0030554', 'GO:0032553', 'GO:0032559', 'GO:0017076', 'GO:0005488', 'GO:1901363', 'GO:0035639', 'GO:0032555', 'GO:0003674'}
GO_label: GO:0005524 index 3862
get_index_temp: {'GO:0043168', 'GO:1901265', 'GO:0097367', 'GO:0043167', 'GO:0000166', 'GO:0036094', 'GO:0097159', 'GO:0008144', 'GO:0030554', 'GO:0032553', 'GO:0032559', 'GO:0017076', 'GO:0005488', 'GO:1901363', 'GO:0035639', 'GO:0032555', 'GO:0003674'}
GO_label: GO:0005525 index 3863
get_index_temp: {'GO:0043168', 'GO:1901265', 'GO:0097367', 'GO:0043167', 'GO:0019001', 'GO:0032561', 'GO:0036094', 'GO:0000166', 'GO:0001882', 'GO:0097159', 'GO:0032549', 'GO:0017076', 'GO:0032553', 'GO:0001883', 'GO:0005488', 'GO:1901363', 'GO:0032550', 'GO:0035639', 'GO:0032555', 'GO:0003674'}
GO_label: GO:0005525 index 3863
get_index_temp: {'GO:0043168', 'GO:1901265', 'GO:0097367', 'GO:0043167', 'GO:0019001', 'GO:0032561', 'GO:0036094', 'GO:0000166', 'GO:0001882', 'GO:0097159', 'GO:0032549', 'GO:0017076', 'GO:0032553', 'GO:0001883', 'GO:0005488', 'GO:1901363', 'GO:0032550', 'GO:0035639', 'GO:0032555', 'GO:0003674'}
GO_label: GO:0005525 index 3863
get_index_temp: {'GO:0043168', 'GO:1901265', 'GO:0097367', 'GO:0043167', 'GO:0019001', 'GO:0032561', 'GO:0036094', 'GO:0000166', 'GO:0001882', 'GO:0097159', 'GO:0032549', 'GO:0017076', 'GO:0032553', 'GO:0001883', 'GO:0005488', 'GO:1901363', 'GO:0032550', 'GO:0035639', 'GO:0032555', 'GO:0003674'}
GO_label: GO:0005525 index 3863
get_index_temp: {'GO:0043168', 'GO:1901265', 'GO:0097367', 'GO:0043167', 'GO:0019001', 'GO:0032561', 'GO:0036094', 'GO:0000166', 'GO:0001882', 'GO:0097159', 'GO:0032549', 'GO:0017076', 'GO:0032553', 'GO:0001883', 'GO:0005488', 'GO:1901363', 'GO:0032550', 'GO:0035639', 'GO:0032555', 'GO:0003674'}
GO_label: GO:0005615 index 3917
get_index_temp: {'GO:0005575', 'GO:0044421'}
GO_label: GO:0005730 index 3996
get_index_temp: {'GO:0044428', 'GO:0044464', 'GO:0043228', 'GO:0044446', 'GO:0043229', 'GO:0043226', 'GO:0044422', 'GO:0005575', 'GO:0043232', 'GO:0044424'}
GO_label: GO:0005730 index 3996
get_index_temp: {'GO:0044428', 'GO:0044464', 'GO:0043228', 'GO:0044446', 'GO:0043229', 'GO:0043226', 'GO:0044422', 'GO:0005575', 'GO:0043232', 'GO:0044424'}
GO_label: GO:0005739 index 4001
get_index_temp: {'GO:0043231', 'GO:0044464', 'GO:0043226', 'GO:0043229', 'GO:0005575', 'GO:0043227', 'GO:0044424', 'GO:0044444'}
GO_label: GO:0005743 index 4005
get_index_temp: {'GO:0019866', 'GO:0044429', 'GO:0031090', 'GO:0044464', 'GO:0044446', 'GO:0044422', 'GO:0005575', 'GO:0016020', 'GO:0031966', 'GO:0044424', 'GO:0044444'}
GO_label: GO:0005743 index 4005
get_index_temp: {'GO:0019866', 'GO:0044429', 'GO:0031090', 'GO:0044464', 'GO:0044446', 'GO:0044422', 'GO:0005575', 'GO:0016020', 'GO:0031966', 'GO:0044424', 'GO:0044444'}
GO_label: GO:0006048 index 4257
get_index_temp: {'GO:0044238', 'GO:0006139', 'GO:0006807', 'GO:0044237', 'GO:1901137', 'GO:0006040', 'GO:1901135', 'GO:0008150', 'GO:0044249', 'GO:0009987', 'GO:1901362', 'GO:0009058', 'GO:0018130', 'GO:0009225', 'GO:0006793', 'GO:0009226', 'GO:0055086', 'GO:0071704', 'GO:0034641', 'GO:0044281', 'GO:0008152', 'GO:0019438', 'GO:0044271', 'GO:0034654', 'GO:0046483', 'GO:0006725', 'GO:1901360', 'GO:0006047', 'GO:1901576', 'GO:0046349'}
GO_label: GO:0006207 index 4383
get_index_temp: {'GO:0044238', 'GO:1901564', 'GO:0072528', 'GO:0006139', 'GO:0006807', 'GO:0044237', 'GO:0008150', 'GO:0044249', 'GO:0009987', 'GO:1901362', 'GO:0009058', 'GO:0018130', 'GO:0046112', 'GO:0055086', 'GO:0071704', 'GO:0006206', 'GO:0072527', 'GO:0019856', 'GO:0034641', 'GO:0044281', 'GO:0009112', 'GO:0008152', 'GO:0044271', 'GO:1901566', 'GO:0046483', 'GO:0006725', 'GO:1901360', 'GO:1901576'}
GO_label: GO:0006298 index 4462
get_index_temp: {'GO:0044238', 'GO:0006139', 'GO:0006281', 'GO:0006807', 'GO:0044237', 'GO:0008150', 'GO:0009987', 'GO:0006974', 'GO:0043170', 'GO:0006950', 'GO:0006259', 'GO:0071704', 'GO:0090304', 'GO:0034641', 'GO:0051716', 'GO:0008152', 'GO:0050896', 'GO:0033554', 'GO:0046483', 'GO:0044260', 'GO:0006725', 'GO:1901360'}
GO_label: GO:0006419 index 4544
get_index_temp: {'GO:0044238', 'GO:0019752', 'GO:1901564', 'GO:0006139', 'GO:0006807', 'GO:0044237', 'GO:0043436', 'GO:0008150', 'GO:0006418', 'GO:0009987', 'GO:0043038', 'GO:0043170', 'GO:0006082', 'GO:0071704', 'GO:0034660', 'GO:0090304', 'GO:0034641', 'GO:0006399', 'GO:0006520', 'GO:0044281', 'GO:0008152', 'GO:0043039', 'GO:0016070', 'GO:0046483', 'GO:0006725', 'GO:1901360'}
GO_label: GO:0006430 index 4555
get_index_temp: {'GO:0044238', 'GO:0019752', 'GO:1901564', 'GO:0006139', 'GO:0006807', 'GO:0044237', 'GO:0043436', 'GO:0008150', 'GO:0006418', 'GO:0009987', 'GO:0043038', 'GO:0043170', 'GO:0006082', 'GO:0071704', 'GO:0034660', 'GO:0090304', 'GO:0034641', 'GO:0006399', 'GO:0006520', 'GO:0044281', 'GO:0008152', 'GO:0043039', 'GO:0016070', 'GO:0046483', 'GO:0006725', 'GO:1901360'}
GO_label: GO:0006782 index 4849
get_index_temp: {'GO:0006778', 'GO:1901564', 'GO:0046501', 'GO:0006807', 'GO:0044237', 'GO:0006779', 'GO:0008150', 'GO:0044249', 'GO:0009987', 'GO:1901362', 'GO:0009058', 'GO:0033013', 'GO:0051186', 'GO:0018130', 'GO:0071704', 'GO:0034641', 'GO:0019438', 'GO:0008152', 'GO:0044271', 'GO:1901566', 'GO:0051188', 'GO:0046483', 'GO:0033014', 'GO:0006725', 'GO:1901360', 'GO:1901576'}
GO_label: GO:0006958 index 4977
get_index_temp: {'GO:0002684', 'GO:0044238', 'GO:0050778', 'GO:0019538', 'GO:1901564', 'GO:0006807', 'GO:0048584', 'GO:0002252', 'GO:0006956', 'GO:0002682', 'GO:0008150', 'GO:0043170', 'GO:0050776', 'GO:0071704', 'GO:0006959', 'GO:0006955', 'GO:0008152', 'GO:0002253', 'GO:0065007', 'GO:0050896', 'GO:0048518', 'GO:0048583', 'GO:0072376', 'GO:0050789', 'GO:0002376'}
GO_label: GO:0008186 index 5648
get_index_temp: {'GO:0017111', 'GO:0016787', 'GO:0003824', 'GO:0016462', 'GO:0042623', 'GO:0016818', 'GO:0016817', 'GO:0016887', 'GO:0003674'}
GO_label: GO:0008270 index 5713
get_index_temp: {'GO:0043167', 'GO:0043169', 'GO:0046872', 'GO:0005488', 'GO:0046914', 'GO:0003674'}
GO_label: GO:0008726 index 6047
get_index_temp: {'GO:0016712', 'GO:0003824', 'GO:0016705', 'GO:0016491', 'GO:0003674', 'GO:0004497'}
GO_label: GO:0008926 index 6227
get_index_temp: {'GO:0003824', 'GO:0016614', 'GO:0016616', 'GO:0016491', 'GO:0003674'}
GO_label: GO:0009079 index 6348
get_index_temp: {'GO:0044238', 'GO:0019752', 'GO:1901564', 'GO:1901607', 'GO:0006807', 'GO:0044237', 'GO:0043436', 'GO:0008150', 'GO:0009078', 'GO:0044249', 'GO:0009987', 'GO:0009058', 'GO:1901605', 'GO:0006082', 'GO:0071704', 'GO:0016053', 'GO:0006520', 'GO:0044281', 'GO:0044283', 'GO:0008152', 'GO:1901566', 'GO:0008652', 'GO:1901576', 'GO:0046394'}
GO_label: GO:0009098 index 6366
get_index_temp: {'GO:0044238', 'GO:0019752', 'GO:1901564', 'GO:1901607', 'GO:0006807', 'GO:0044237', 'GO:0043436', 'GO:0008150', 'GO:0044249', 'GO:0009987', 'GO:0009058', 'GO:0009082', 'GO:1901605', 'GO:0006082', 'GO:0006551', 'GO:0071704', 'GO:0016053', 'GO:0006520', 'GO:0044281', 'GO:0044283', 'GO:0008152', 'GO:1901566', 'GO:0008652', 'GO:0009081', 'GO:1901576', 'GO:0046394'}
GO_label: GO:0009103 index 6371
get_index_temp: {'GO:0044238', 'GO:0000271', 'GO:0005975', 'GO:0044237', 'GO:1901137', 'GO:1901135', 'GO:0008150', 'GO:0044249', 'GO:0009058', 'GO:0009987', 'GO:0005976', 'GO:1903509', 'GO:0009059', 'GO:0043170', 'GO:0008610', 'GO:0008653', 'GO:0034637', 'GO:0044264', 'GO:0071704', 'GO:0008152', 'GO:0044255', 'GO:0044262', 'GO:0016051', 'GO:0033692', 'GO:0006629', 'GO:0044260', 'GO:0034645', 'GO:1901576'}
GO_label: GO:0009245 index 6508
get_index_temp: {'GO:0044238', 'GO:0090407', 'GO:1901271', 'GO:0006644', 'GO:0005975', 'GO:1901269', 'GO:0044237', 'GO:1901137', 'GO:1901135', 'GO:0008150', 'GO:0044249', 'GO:0009987', 'GO:0009058', 'GO:1903509', 'GO:0006796', 'GO:0008610', 'GO:0071704', 'GO:0009311', 'GO:0008654', 'GO:0009312', 'GO:0046493', 'GO:0008152', 'GO:0044255', 'GO:0006643', 'GO:0016051', 'GO:0046467', 'GO:0006629', 'GO:0006664', 'GO:0009247', 'GO:0019637', 'GO:0006793', 'GO:1901576'}
GO_label: GO:0009252 index 6515
get_index_temp: {'GO:0000270', 'GO:0070589', 'GO:1901564', 'GO:0044038', 'GO:0006024', 'GO:0006807', 'GO:0044237', 'GO:1901137', 'GO:0006022', 'GO:1901135', 'GO:0008150', 'GO:0044249', 'GO:0009058', 'GO:0009987', 'GO:0009059', 'GO:0043170', 'GO:0030203', 'GO:0071704', 'GO:0006023', 'GO:0008152', 'GO:0044036', 'GO:1901566', 'GO:0044260', 'GO:0034645', 'GO:1901576'}
GO_label: GO:0009316 index 6568
get_index_temp: {'GO:0044445', 'GO:0044464', 'GO:1902494', 'GO:0032991', 'GO:0005575', 'GO:0044424', 'GO:0044444'}
GO_label: GO:0009347 index 6598
get_index_temp: {'GO:0044464', 'GO:1902494', 'GO:0032991', 'GO:0005575', 'GO:1990234'}
GO_label: GO:0009447 index 6678
get_index_temp: {'GO:0009308', 'GO:0008150', 'GO:0044106', 'GO:0006598', 'GO:0042402', 'GO:1901564', 'GO:0009987', 'GO:0071704', 'GO:0009310', 'GO:1901575', 'GO:0034641', 'GO:0006807', 'GO:0006595', 'GO:0009056', 'GO:0044237', 'GO:0006576', 'GO:0097164', 'GO:0008152', 'GO:0009445', 'GO:1901565'}
GO_label: GO:0010501 index 7616
get_index_temp: {'GO:0043170', 'GO:0044238', 'GO:0008150', 'GO:0009987', 'GO:0016070', 'GO:0071704', 'GO:0046483', 'GO:0090304', 'GO:0006139', 'GO:0006725', 'GO:0034641', 'GO:0006807', 'GO:1901360', 'GO:0044237', 'GO:0008152'}
GO_label: GO:0015074 index 8358
get_index_temp: {'GO:0043170', 'GO:0044238', 'GO:0008150', 'GO:0006259', 'GO:0009987', 'GO:0071704', 'GO:0046483', 'GO:0090304', 'GO:0006139', 'GO:0044260', 'GO:0006725', 'GO:0034641', 'GO:1901360', 'GO:0044237', 'GO:0008152', 'GO:0006807'}
GO_label: GO:0016248 index 9277
get_index_temp: {'GO:0098772', 'GO:0016247', 'GO:0003674'}
GO_label: GO:0016875 index 9725
get_index_temp: {'GO:0003824', 'GO:0016874', 'GO:0003674'}
GO_label: GO:0016875 index 9725
get_index_temp: {'GO:0003824', 'GO:0016874', 'GO:0003674'}
GO_label: GO:0016875 index 9725
get_index_temp: {'GO:0003824', 'GO:0016874', 'GO:0003674'}
GO_label: GO:0017171 index 9914
get_index_temp: {'GO:0003824', 'GO:0016787', 'GO:0003674'}
GO_label: GO:0019003 index 10841
get_index_temp: {'GO:1901265', 'GO:0097367', 'GO:0043167', 'GO:0019001', 'GO:0032561', 'GO:0036094', 'GO:0000166', 'GO:0001882', 'GO:0097159', 'GO:0032549', 'GO:0017076', 'GO:0032553', 'GO:0001883', 'GO:0005488', 'GO:1901363', 'GO:0032550', 'GO:0043168', 'GO:0032555', 'GO:0003674'}
GO_label: GO:0019134 index 10946
get_index_temp: {'GO:0008080', 'GO:0003824', 'GO:0016407', 'GO:0016410', 'GO:0016747', 'GO:0016746', 'GO:0016740', 'GO:0003674'}
GO_label: GO:0019145 index 10956
get_index_temp: {'GO:0003824', 'GO:0016903', 'GO:0016491', 'GO:0016620', 'GO:0004029', 'GO:0003674'}
GO_label: GO:0019512 index 11293
get_index_temp: {'GO:0044238', 'GO:0008150', 'GO:0009313', 'GO:0009987', 'GO:0044248', 'GO:0044275', 'GO:0071704', 'GO:0016052', 'GO:1901575', 'GO:0005975', 'GO:0009311', 'GO:0005990', 'GO:0005984', 'GO:0046352', 'GO:0044237', 'GO:0008152', 'GO:0005988', 'GO:0044262', 'GO:0009056'}
GO_label: GO:0019594 index 11368
get_index_temp: {'GO:0019751', 'GO:0044238', 'GO:0006066', 'GO:0008150', 'GO:0009987', 'GO:0071704', 'GO:0006059', 'GO:0005975', 'GO:0019400', 'GO:0044281', 'GO:1901615', 'GO:0044237', 'GO:0008152', 'GO:0044262'}
GO_label: GO:0030127 index 12477
get_index_temp: {'GO:0030120', 'GO:0044425', 'GO:0098796', 'GO:0044464', 'GO:0044446', 'GO:0044433', 'GO:0044422', 'GO:0032991', 'GO:0005575', 'GO:0030117', 'GO:0044424', 'GO:0044444'}
GO_label: GO:0030170 index 12516
get_index_temp: {'GO:0043167', 'GO:0070279', 'GO:0050662', 'GO:0019842', 'GO:0036094', 'GO:0097159', 'GO:0008144', 'GO:1901363', 'GO:0005488', 'GO:0043168', 'GO:0048037', 'GO:0003674'}
GO_label: GO:0033737 index 15793
get_index_temp: {'GO:0003674', 'GO:0003824', 'GO:0016903', 'GO:0016491'}
GO_label: GO:0033920 index 15969
get_index_temp: {'GO:0003824', 'GO:0016787', 'GO:0015925', 'GO:0004553', 'GO:0016798', 'GO:0003674'}
GO_label: GO:0036211 index 18172
get_index_temp: {'GO:0043170', 'GO:0044238', 'GO:0008150', 'GO:0019538', 'GO:1901564', 'GO:0071704', 'GO:0043412', 'GO:0006807', 'GO:0008152'}
GO_label: GO:0036211 index 18172
get_index_temp: {'GO:0043170', 'GO:0044238', 'GO:0008150', 'GO:0019538', 'GO:1901564', 'GO:0071704', 'GO:0043412', 'GO:0006807', 'GO:0008152'}
GO_label: GO:0036211 index 18172
get_index_temp: {'GO:0043170', 'GO:0044238', 'GO:0008150', 'GO:0019538', 'GO:1901564', 'GO:0071704', 'GO:0043412', 'GO:0006807', 'GO:0008152'}
GO_label: GO:0042254 index 19134
get_index_temp: {'GO:0022613', 'GO:0071840', 'GO:0008150', 'GO:0044085'}
GO_label: GO:0042274 index 19150
get_index_temp: {'GO:0022613', 'GO:0071840', 'GO:0008150', 'GO:0044085'}
GO_label: GO:0042286 index 19161
get_index_temp: {'GO:0003824', 'GO:0016866', 'GO:0016869', 'GO:0016853', 'GO:0003674'}
GO_label: GO:0042823 index 19622
get_index_temp: {'GO:0046184', 'GO:0090407', 'GO:1901564', 'GO:0017144', 'GO:0009108', 'GO:0006766', 'GO:0006807', 'GO:0044237', 'GO:0042822', 'GO:0006081', 'GO:0072525', 'GO:1901617', 'GO:0008150', 'GO:0006732', 'GO:0009987', 'GO:0044249', 'GO:0009058', 'GO:1901362', 'GO:0072524', 'GO:0006767', 'GO:0006796', 'GO:0042816', 'GO:0051186', 'GO:0018130', 'GO:1901615', 'GO:0042819', 'GO:0042364', 'GO:0009110', 'GO:0071704', 'GO:0034641', 'GO:0044281', 'GO:0044283', 'GO:0019438', 'GO:0008152', 'GO:0044271', 'GO:1901566', 'GO:0051188', 'GO:0046483', 'GO:0006725', 'GO:1901360', 'GO:0019637', 'GO:0006793', 'GO:1901576'}
GO_label: GO:0043177 index 19933
get_index_temp: {'GO:0005488', 'GO:0003674', 'GO:0036094'}
GO_label: GO:0044209 index 20890
get_index_temp: {'GO:0009167', 'GO:0044238', 'GO:0090407', 'GO:0046033', 'GO:0043173', 'GO:1901564', 'GO:0017144', 'GO:0009123', 'GO:0006167', 'GO:0006139', 'GO:0006807', 'GO:0009165', 'GO:0044237', 'GO:0009260', 'GO:1901137', 'GO:0009124', 'GO:0006163', 'GO:1901135', 'GO:0072521', 'GO:0008150', 'GO:0043101', 'GO:0044249', 'GO:0009987', 'GO:1901362', 'GO:0009058', 'GO:0009152', 'GO:0009127', 'GO:0043094', 'GO:0006796', 'GO:0018130', 'GO:0019693', 'GO:1901293', 'GO:0006164', 'GO:0032261', 'GO:0006753', 'GO:0055086', 'GO:0009117', 'GO:0071704', 'GO:0009161', 'GO:0009126', 'GO:0034641', 'GO:0044281', 'GO:0008152', 'GO:0019438', 'GO:0009168', 'GO:0044271', 'GO:0009156', 'GO:1901566', 'GO:0034654', 'GO:0009259', 'GO:0046483', 'GO:0046390', 'GO:0006725', 'GO:0072522', 'GO:1901360', 'GO:0019637', 'GO:0006793', 'GO:1901576', 'GO:0009150'}
GO_label: GO:0046033 index 22442
get_index_temp: {'GO:0009167', 'GO:0044238', 'GO:1901564', 'GO:0017144', 'GO:0009123', 'GO:0006139', 'GO:0006807', 'GO:0044237', 'GO:0006163', 'GO:1901135', 'GO:0072521', 'GO:0008150', 'GO:0009987', 'GO:0006796', 'GO:0019693', 'GO:0006753', 'GO:0055086', 'GO:0009117', 'GO:0071704', 'GO:0009161', 'GO:0009126', 'GO:0034641', 'GO:0044281', 'GO:0008152', 'GO:0009259', 'GO:0046483', 'GO:0006725', 'GO:1901360', 'GO:0019637', 'GO:0006793', 'GO:0009150'}
GO_label: GO:0046493 index 22860
get_index_temp: {'GO:1901135', 'GO:0044238', 'GO:0008150', 'GO:0006643', 'GO:0006644', 'GO:0009987', 'GO:0071704', 'GO:0005975', 'GO:1903509', 'GO:0006629', 'GO:0009311', 'GO:1901269', 'GO:0006796', 'GO:0006664', 'GO:0044237', 'GO:0008152', 'GO:0019637', 'GO:0044255', 'GO:0006793'}
GO_label: GO:0046501 index 22868
get_index_temp: {'GO:0006778', 'GO:0008150', 'GO:0009987', 'GO:1901564', 'GO:0071704', 'GO:0044237', 'GO:0046483', 'GO:0006807', 'GO:0006725', 'GO:0033013', 'GO:1901360', 'GO:0051186', 'GO:0008152'}
GO_label: GO:0051539 index 26573
get_index_temp: {'GO:0051540', 'GO:0051536', 'GO:0005488', 'GO:0048037', 'GO:0003674'}
GO_label: GO:0051540 index 26574
get_index_temp: {'GO:0005488', 'GO:0003674'}
GO_label: GO:0051540 index 26574
get_index_temp: {'GO:0005488', 'GO:0003674'}
GO_label: GO:0052915 index 27786
get_index_temp: {'GO:0008173', 'GO:0140102', 'GO:0003824', 'GO:0016741', 'GO:0008990', 'GO:0008649', 'GO:0140098', 'GO:0008168', 'GO:0008757', 'GO:0008170', 'GO:0016435', 'GO:0016740', 'GO:0003674'}
GO_label: GO:0070001 index 29882
get_index_temp: {'GO:0003824', 'GO:0016787', 'GO:0140096', 'GO:0008233', 'GO:0003674', 'GO:0070011'}
GO_label: GO:0070035 index 29915
get_index_temp: {'GO:0004386', 'GO:0017111', 'GO:0016787', 'GO:0003824', 'GO:0016462', 'GO:0016818', 'GO:0016817', 'GO:0003674'}
GO_label: GO:0070279 index 30150
get_index_temp: {'GO:0019842', 'GO:0036094', 'GO:0097159', 'GO:0008144', 'GO:1901363', 'GO:0005488', 'GO:0003674'}
GO_label: GO:0070589 index 30453
get_index_temp: {'GO:0043170', 'GO:0008150', 'GO:0044249', 'GO:0009058', 'GO:0009987', 'GO:0071704', 'GO:0044260', 'GO:0009059', 'GO:0034645', 'GO:0044237', 'GO:0008152', 'GO:1901576'}
GO_label: GO:0090729 index 33944
get_index_temp: {'GO:0003674'}
GO_label: GO:0097708 index 34641
get_index_temp: {'GO:0031982', 'GO:0044464', 'GO:0043226', 'GO:0043229', 'GO:0005575', 'GO:0043227', 'GO:0044424'}
GO_label: GO:1901271 index 38338
get_index_temp: {'GO:1901135', 'GO:0044238', 'GO:0008150', 'GO:0009058', 'GO:0071704', 'GO:0016051', 'GO:0005975', 'GO:0009311', 'GO:1901269', 'GO:0009312', 'GO:0008152', 'GO:1901137', 'GO:1901576'}
GO_label: GO:1902373 index 39390
get_index_temp: {'GO:1902369', 'GO:0010604', 'GO:0051171', 'GO:0050794', 'GO:0009892', 'GO:0031323', 'GO:0010628', 'GO:0051252', 'GO:0019219', 'GO:0008150', 'GO:0031330', 'GO:1903312', 'GO:0009895', 'GO:0048519', 'GO:0051172', 'GO:0009893', 'GO:0010605', 'GO:0009894', 'GO:0031324', 'GO:0010468', 'GO:0051253', 'GO:0080090', 'GO:0031329', 'GO:1903311', 'GO:0019222', 'GO:0065007', 'GO:0048518', 'GO:0060255', 'GO:0045934', 'GO:0061013', 'GO:0050789', 'GO:0048523'}
GO_label: GO:1903507 index 40434
get_index_temp: {'GO:0010558', 'GO:0051171', 'GO:0050794', 'GO:0009892', 'GO:0031323', 'GO:0051252', 'GO:1903506', 'GO:0031327', 'GO:0009889', 'GO:0009890', 'GO:0008150', 'GO:0019219', 'GO:0010556', 'GO:0048519', 'GO:0051172', 'GO:0031326', 'GO:0010605', 'GO:0031324', 'GO:0051253', 'GO:0080090', 'GO:0019222', 'GO:2001141', 'GO:0065007', 'GO:0060255', 'GO:0045934', 'GO:0050789', 'GO:1902679', 'GO:0048523'}
GO_label: GO:1903508 index 40435
get_index_temp: {'GO:0048522', 'GO:0010604', 'GO:0031328', 'GO:0051171', 'GO:0050794', 'GO:0031323', 'GO:0051252', 'GO:0045935', 'GO:1903506', 'GO:0010557', 'GO:0051254', 'GO:0009889', 'GO:0008150', 'GO:0019219', 'GO:0009891', 'GO:0010556', 'GO:0031326', 'GO:0009893', 'GO:0051173', 'GO:0031325', 'GO:1902680', 'GO:0080090', 'GO:0019222', 'GO:2001141', 'GO:0065007', 'GO:0048518', 'GO:0060255', 'GO:0050789'}
--------------------------------------------------
"""
#a= [1,1,1,1,3,4,5,5,5,5,4,2]
def find_index1(GO_wanted,go):
    in_a =list()
    for x in GO_wanted :
        in_a+=[go[x]['index']]
    return in_a
        
def find_index(GO_wanted,go):
    global temp
    global is_a_all
    is_a =list()
    for x in GO_wanted :
        in_1=go[x]['index']
        temp +=[in_1]
        is_a=go[x]['is_a']
        #print('is_a',is_a)
        is_a_all += go[x]['is_a']
        find_index(is_a,go)
    return temp
    
if __name__ == '__main__':
    a=pickle.load(open('filtered_GO.p','rb'))
    #b=pickle.load(open('data (1).p','rb'))
    c=pickle.load(open('go.p','rb'))
    global is_a_all
    global temp
    temp =list()
    is_a_all=list()
    wanted_index= list()
    print(len(a))
    for i in a:
        is_a_all+=[i]
    wanted_index=find_index1(a,c)
    temp =find_index(a,c)
    print((set(temp)))
    print(len(set(is_a_all)))
    mask_vector = [0]*44939
    for x in temp:
        mask_vector[x]=1
    print(sum(mask_vector))
    pickle.dump(mask_vector,open('true_path_mask.p','wb'))
    pickle.dump(wanted_index,open('wanted_index.p','wb'))
    b=pickle.load(open('data (1).p','rb'))
    
    



