CheckFeaturizer = {
    ('bace_c', 'logreg'): ['ECFP', 1024],
    ('bace_c', 'tf'): ['ECFP', 1024],
    ('bace_c', 'tf_robust'): ['ECFP', 1024],
    ('bace_c', 'rf'): ['ECFP', 1024],
    ('bace_c', 'irv'): ['ECFP', 1024],
    ('bace_c', 'xgb'): ['ECFP', 1024],
    ('bace_c', 'graphconv'): ['GraphConv', 75],
    ('bace_c', 'dag'): ['GraphConv', 75],
    ('bace_c', 'weave'): ['Weave', 75],
    ('bbbp', 'logreg'): ['ECFP', 1024],
    ('bbbp', 'tf'): ['ECFP', 1024],
    ('bbbp', 'tf_robust'): ['ECFP', 1024],
    ('bbbp', 'rf'): ['ECFP', 1024],
    ('bbbp', 'irv'): ['ECFP', 1024],
    ('bbbp', 'xgb'): ['ECFP', 1024],
    ('bbbp', 'graphconv'): ['GraphConv', 75],
    ('bbbp', 'dag'): ['GraphConv', 75],
    ('bbbp', 'weave'): ['Weave', 75],
    ('clintox', 'logreg'): ['ECFP', 1024],
    ('clintox', 'tf'): ['ECFP', 1024],
    ('clintox', 'tf_robust'): ['ECFP', 1024],
    ('clintox', 'rf'): ['ECFP', 1024],
    ('clintox', 'irv'): ['ECFP', 1024],
    ('clintox', 'xgb'): ['ECFP', 1024],
    ('clintox', 'graphconv'): ['GraphConv', 75],
    ('clintox', 'dag'): ['GraphConv', 75],
    ('clintox', 'weave'): ['Weave', 75],
    ('hiv', 'logreg'): ['ECFP', 1024],
    ('hiv', 'tf'): ['ECFP', 1024],
    ('hiv', 'tf_robust'): ['ECFP', 1024],
    ('hiv', 'rf'): ['ECFP', 1024],
    ('hiv', 'irv'): ['ECFP', 1024],
    ('hiv', 'xgb'): ['ECFP', 1024],
    ('hiv', 'graphconv'): ['GraphConv', 75],
    ('hiv', 'dag'): ['GraphConv', 75],
    ('hiv', 'weave'): ['Weave', 75],
    ('muv', 'logreg'): ['ECFP', 1024],
    ('muv', 'tf'): ['ECFP', 1024],
    ('muv', 'tf_robust'): ['ECFP', 1024],
    ('muv', 'rf'): ['ECFP', 1024],
    ('muv', 'irv'): ['ECFP', 1024],
    ('muv', 'xgb'): ['ECFP', 1024],
    ('muv', 'graphconv'): ['GraphConv', 75],
    ('muv', 'siamese'): ['GraphConv', 75],
    ('muv', 'attn'): ['GraphConv', 75],
    ('muv', 'res'): ['GraphConv', 75],
    ('muv', 'weave'): ['Weave', 75],
    ('pcba', 'logreg'): ['ECFP', 1024],
    ('pcba', 'tf'): ['ECFP', 1024],
    ('pcba', 'tf_robust'): ['ECFP', 1024],
    ('pcba', 'rf'): ['ECFP', 1024],
    ('pcba', 'irv'): ['ECFP', 1024],
    ('pcba', 'xgb'): ['ECFP', 1024],
    ('pcba', 'graphconv'): ['GraphConv', 75],
    ('pcba', 'weave'): ['Weave', 75],
    ('sider', 'logreg'): ['ECFP', 1024],
    ('sider', 'tf'): ['ECFP', 1024],
    ('sider', 'tf_robust'): ['ECFP', 1024],
    ('sider', 'rf'): ['ECFP', 1024],
    ('sider', 'irv'): ['ECFP', 1024],
    ('sider', 'xgb'): ['ECFP', 1024],
    ('sider', 'graphconv'): ['GraphConv', 75],
    ('sider', 'dag'): ['GraphConv', 75],
    ('sider', 'weave'): ['Weave', 75],
    ('sider', 'siamese'): ['GraphConv', 75],
    ('sider', 'attn'): ['GraphConv', 75],
    ('sider', 'res'): ['GraphConv', 75],
    ('tox21', 'logreg'): ['ECFP', 1024],
    ('tox21', 'tf'): ['ECFP', 1024],
    ('tox21', 'tf_robust'): ['ECFP', 1024],
    ('tox21', 'rf'): ['ECFP', 1024],
    ('tox21', 'irv'): ['ECFP', 1024],
    ('tox21', 'xgb'): ['ECFP', 1024],
    ('tox21', 'graphconv'): ['GraphConv', 75],
    ('tox21', 'dag'): ['GraphConv', 75],
    ('tox21', 'weave'): ['Weave', 75],
    ('tox21', 'siamese'): ['GraphConv', 75],
    ('tox21', 'attn'): ['GraphConv', 75],
    ('tox21', 'res'): ['GraphConv', 75],
    ('toxcast', 'logreg'): ['ECFP', 1024],
    ('toxcast', 'tf'): ['ECFP', 1024],
    ('toxcast', 'tf_robust'): ['ECFP', 1024],
    ('toxcast', 'rf'): ['ECFP', 1024],
    ('toxcast', 'irv'): ['ECFP', 1024],
    ('toxcast', 'xgb'): ['ECFP', 1024],
    ('toxcast', 'graphconv'): ['GraphConv', 75],
    ('toxcast', 'weave'): ['Weave', 75],
    ('bace_r', 'tf_regression'): ['ECFP', 1024],
    ('bace_r', 'rf_regression'): ['ECFP', 1024],
    ('bace_r', 'xgb_regression'): ['ECFP', 1024],
    ('bace_r', 'graphconvreg'): ['GraphConv', 75],
    ('bace_r', 'dag_regression'): ['GraphConv', 75],
    ('bace_r', 'weave_regression'): ['Weave', 75],
    ('chembl', 'tf_regression'): ['ECFP', 1024],
    ('chembl', 'rf_regression'): ['ECFP', 1024],
    ('chembl', 'xgb_regression'): ['ECFP', 1024],
    ('chembl', 'graphconvreg'): ['GraphConv', 75],
    ('chembl', 'weave_regression'): ['Weave', 75],
    ('clearance', 'tf_regression'): ['ECFP', 1024],
    ('clearance', 'rf_regression'): ['ECFP', 1024],
    ('clearance', 'xgb_regression'): ['ECFP', 1024],
    ('clearance', 'graphconvreg'): ['GraphConv', 75],
    ('clearance', 'dag_regression'): ['GraphConv', 75],
    ('clearance', 'weave_regression'): ['Weave', 75],
    ('delaney', 'tf_regression'): ['ECFP', 1024],
    ('delaney', 'rf_regression'): ['ECFP', 1024],
    ('delaney', 'xgb_regression'): ['ECFP', 1024],
    ('delaney', 'graphconvreg'): ['GraphConv', 75],
    ('delaney', 'dag_regression'): ['GraphConv', 75],
    ('delaney', 'weave_regression'): ['Weave', 75],
    ('hopv', 'tf_regression'): ['ECFP', 1024],
    ('hopv', 'rf_regression'): ['ECFP', 1024],
    ('hopv', 'xgb_regression'): ['ECFP', 1024],
    ('hopv', 'graphconvreg'): ['GraphConv', 75],
    ('hopv', 'dag_regression'): ['GraphConv', 75],
    ('hopv', 'weave_regression'): ['Weave', 75],
    ('lipo', 'tf_regression'): ['ECFP', 1024],
    ('lipo', 'rf_regression'): ['ECFP', 1024],
    ('lipo', 'xgb_regression'): ['ECFP', 1024],
    ('lipo', 'graphconvreg'): ['GraphConv', 75],
    ('lipo', 'dag_regression'): ['GraphConv', 75],
    ('lipo', 'weave_regression'): ['Weave', 75],
    ('nci', 'tf_regression'): ['ECFP', 1024],
    ('nci', 'rf_regression'): ['ECFP', 1024],
    ('nci', 'xgb_regression'): ['ECFP', 1024],
    ('nci', 'graphconvreg'): ['GraphConv', 75],
    ('nci', 'weave_regression'): ['Weave', 75],
    ('ppb', 'tf_regression'): ['ECFP', 1024],
    ('ppb', 'rf_regression'): ['ECFP', 1024],
    ('ppb', 'xgb_regression'): ['ECFP', 1024],
    ('ppb', 'graphconvreg'): ['GraphConv', 75],
    ('ppb', 'dag_regression'): ['GraphConv', 75],
    ('ppb', 'weave_regression'): ['Weave', 75],
    ('sampl', 'tf_regression'): ['ECFP', 1024],
    ('sampl', 'rf_regression'): ['ECFP', 1024],
    ('sampl', 'xgb_regression'): ['ECFP', 1024],
    ('sampl', 'graphconvreg'): ['GraphConv', 75],
    ('sampl', 'dag_regression'): ['GraphConv', 75],
    ('sampl', 'weave_regression'): ['Weave', 75],
    ('kaggle', 'tf_regression'): [None, 14293],
    ('kaggle', 'rf_regression'): [None, 14293],
    ('pdbbind', 'tf_regression'): ['grid', 2052],
    ('pdbbind', 'rf_regression'): ['grid', 2052],
    ('qm7', 'tf_regression_ft'): ['CoulombMatrix', [23, 23]],
    ('qm7', 'dtnn'): ['CoulombMatrix', [23, 23]],
    ('qm7b', 'tf_regression_ft'): ['CoulombMatrix', [23, 23]],
    ('qm7b', 'dtnn'): ['CoulombMatrix', [23, 23]],
    ('qm8', 'tf_regression_ft'): ['CoulombMatrix', [26, 26]],
    ('qm8', 'dtnn'): ['CoulombMatrix', [26, 26]],
    ('qm9', 'tf_regression_ft'): ['CoulombMatrix', [29, 29]],
    ('qm9', 'dtnn'): ['CoulombMatrix', [29, 29]]
}

CheckSplit = {
    'bace_c': ['random', 'scaffold'],
    'bace_r': ['random', 'scaffold'],
    'bbbp': ['random', 'scaffold'],
    'chembl': ['index', 'random', 'scaffold', 'year'],
    'clearance': ['index', 'random', 'scaffold'],
    'clintox': ['index', 'random', 'scaffold'],
    'delaney': ['index', 'random', 'scaffold'],
    'hiv': ['index', 'random', 'scaffold', 'butina'],
    'hopv': ['index', 'random', 'scaffold', 'butina'],
    'kaggle': ['index'],  # already splitted, no splitter required
    'lipo': ['index', 'random', 'scaffold'],
    'muv': ['index', 'random', 'scaffold', 'task'],
    'nci': ['index', 'random', 'scaffold'],
    'pcba': ['index', 'random', 'scaffold'],
    'pdbbind': ['index', 'random'],
    'ppb': ['index', 'random', 'scaffold'],
    'qm7': ['index', 'random', 'stratified'],
    'qm7b': ['index', 'random', 'stratified'],
    'qm8': ['index', 'random', 'stratified'],
    'qm9': ['index', 'random', 'stratified'],
    'sampl': ['index', 'random', 'scaffold'],
    'sider': ['index', 'random', 'scaffold', 'task'],
    'tox21': ['index', 'random', 'scaffold', 'butina', 'task'],
    'toxcast': ['index', 'random', 'scaffold']
}
