def test_pred_single_prod():
    # Load model
    model = darkchem.utils.load_model(
        '/Family/David/UW_ChemE/2019_Spring/ChemE_547/DarKnight_File/Final Trained DarkChem Network Weights/N7b_[M+H]/'
    )
    # Generate some data to use
    smilescc = {
        'Reactants': [
            'CC(=O)C', 'O=C1CCCCC1', 'O=C1CCCC1C', 'O=C1CCCC1C', 'CCCC(=O)CCC',
            'CCCCC(=O)CCCC', 'CC(=O)CC(=O)C', 'CC(=O)CC(=O)C', 'COCC(=O)C',
            'COCC(=O)C', 'CC(=O)c1ccccc1'
        ],
        'Products': [
            'CCC(=O)C', 'CC1CCCCC1=O', 'CC1CCC(C1=O)C', 'O=C1CCCC1(C)C',
            'CCCC(=O)C(CC)C', 'CCCCC(=O)C(CCC)C', 'CC(C(=O)C)C(=O)C',
            'CC(=O)C(C(=O)C)(C)C', 'COCC(=O)CC', 'COC(C(=O)CC)C',
            'CCC(=O)c1ccccc1'
        ]
    }
    smi = 'CCCc1ccc(CCC=O)cc1'

    path_vec = functions.path_vec(smilescc, model)

    # Operate the function wihch is being tested
    pred_single = functions.pred_single_prod(smi, model, path_vec, k=1)

    # Assert several arguments
    assert len(pred_single) == 1
    assert pred_single.shape == (1, 2)

    return 0
예제 #2
0
def test_path_vec():
    # Load model
    model = darkchem.utils.load_model(
        '/Family/David/UW_ChemE/2019_Spring/ChemE_547/DarKnight_File/Final Trained DarkChem Network Weights/N7b_[M+H]/'
    )
    # Generate some data to use
    smilescc = {
        'Reactants': [
            'CC(=O)C', 'O=C1CCCCC1', 'O=C1CCCC1C', 'O=C1CCCC1C', 'CCCC(=O)CCC',
            'CCCCC(=O)CCCC', 'CC(=O)CC(=O)C', 'CC(=O)CC(=O)C', 'COCC(=O)C',
            'COCC(=O)C', 'CC(=O)c1ccccc1'
        ],
        'Products': [
            'CCC(=O)C', 'CC1CCCCC1=O', 'CC1CCC(C1=O)C', 'O=C1CCCC1(C)C',
            'CCCC(=O)C(CC)C', 'CCCCC(=O)C(CCC)C', 'CC(C(=O)C)C(=O)C',
            'CC(=O)C(C(=O)C)(C)C', 'COCC(=O)CC', 'COC(C(=O)CC)C',
            'CCC(=O)c1ccccc1'
        ]
    }

    # Operate the function wihch is being tested
    path_vec = functions.path_vec(smilescc, model)

    # Assert several arguments
    assert path_vec.shape == (128, )
    assert len(path_vec) == 128
    assert type(path_vec).__module__ == 'numpy'

    return 0
def test_transform_r2p_str():
    # Load model
    model = darkchem.utils.load_model(
        '/Family/David/UW_ChemE/2019_Spring/ChemE_547/DarKnight_File/Final Trained DarkChem Network Weights/N7b_[M+H]/'
    )
    # Generate some data to use
    smilescc = {
        'Reactants': [
            'CC(=O)C', 'O=C1CCCCC1', 'O=C1CCCC1C', 'O=C1CCCC1C', 'CCCC(=O)CCC',
            'CCCCC(=O)CCCC', 'CC(=O)CC(=O)C', 'CC(=O)CC(=O)C', 'COCC(=O)C',
            'COCC(=O)C', 'CC(=O)c1ccccc1'
        ],
        'Products': [
            'CCC(=O)C', 'CC1CCCCC1=O', 'CC1CCC(C1=O)C', 'O=C1CCCC1(C)C',
            'CCCC(=O)C(CC)C', 'CCCCC(=O)C(CCC)C', 'CC(C(=O)C)C(=O)C',
            'CC(=O)C(C(=O)C)(C)C', 'COCC(=O)CC', 'COC(C(=O)CC)C',
            'CCC(=O)c1ccccc1'
        ]
    }
    smi = 'CC(=O)C'

    path_vec = functions.path_vec(smilescc, model)

    # Operate the function wihch is being tested
    transform_r2p_str = functions.transform_r2p_str(smi, model, path_vec, 5)

    # Assert several arguments
    assert len(transform_r2p_str) == 5
    assert isinstance(transform_r2p_str, list)

    return 0
예제 #4
0
def test_output_multiple_prod():
    # Load model
    model = darkchem.utils.load_model('../../../database/N7b_[M+H]/')
    # Generate some data to use
    smilescc = {
        'Reactants': [
            'CC(=O)C', 'O=C1CCCCC1', 'O=C1CCCC1C', 'O=C1CCCC1C', 'CCCC(=O)CCC',
            'CCCCC(=O)CCCC', 'CC(=O)CC(=O)C', 'CC(=O)CC(=O)C', 'COCC(=O)C',
            'COCC(=O)C', 'CC(=O)c1ccccc1'
        ],
        'Products': [
            'CCC(=O)C', 'CC1CCCCC1=O', 'CC1CCC(C1=O)C', 'O=C1CCCC1(C)C',
            'CCCC(=O)C(CC)C', 'CCCCC(=O)C(CCC)C', 'CC(C(=O)C)C(=O)C',
            'CC(=O)C(C(=O)C)(C)C', 'COCC(=O)CC', 'COC(C(=O)CC)C',
            'CCC(=O)c1ccccc1'
        ]
    }
    testdf = {
        'Reactants': [
            'CC(=O)C', 'O=C1CCCCC1', 'O=C1CCCC1C', 'O=C1CCCC1C', 'CCCC(=O)CCC',
            'CCCCC(=O)CCCC', 'CC(=O)CC(=O)C', 'CC(=O)CC(=O)C', 'COCC(=O)C',
            'COCC(=O)C', 'CC(=O)c1ccccc1'
        ],
        'Products': [
            'CCC(=O)C', 'CC1CCCCC1=O', 'CC1CCC(C1=O)C', 'O=C1CCCC1(C)C',
            'CCCC(=O)C(CC)C', 'CCCCC(=O)C(CCC)C', 'CC(C(=O)C)C(=O)C',
            'CC(=O)C(C(=O)C)(C)C', 'COCC(=O)CC', 'COC(C(=O)CC)C',
            'CCC(=O)c1ccccc1'
        ]
    }

    path_vec = functions.path_vec(smilescc, model)
    testdf = pd.DataFrame(testdf)

    # Operate the function wihch is being tested
    output_multiple_prod = functions.output_multiple_prod(testdf,
                                                          model,
                                                          path_vec,
                                                          k=15)

    # Assert several arguments
    assert len(output_multiple_prod) == len(testdf)
    assert output_multiple_prod.shape == (11, 2)

    return 0
예제 #5
0
def test_pred_multiple_prod():
    # Load model
    model = darkchem.utils.load_model(
        '/Family/David/UW_ChemE/2019_Spring/ChemE_547/DarKnight_File/Final Trained DarkChem Network Weights/N7b_[M+H]/'
    )
    # Generate some data to use
    smilescc = {
        'Reactants': [
            'CC(=O)C', 'O=C1CCCCC1', 'O=C1CCCC1C', 'O=C1CCCC1C', 'CCCC(=O)CCC',
            'CCCCC(=O)CCCC', 'CC(=O)CC(=O)C', 'CC(=O)CC(=O)C', 'COCC(=O)C',
            'COCC(=O)C', 'CC(=O)c1ccccc1'
        ],
        'Products': [
            'CCC(=O)C', 'CC1CCCCC1=O', 'CC1CCC(C1=O)C', 'O=C1CCCC1(C)C',
            'CCCC(=O)C(CC)C', 'CCCCC(=O)C(CCC)C', 'CC(C(=O)C)C(=O)C',
            'CC(=O)C(C(=O)C)(C)C', 'COCC(=O)CC', 'COC(C(=O)CC)C',
            'CCC(=O)c1ccccc1'
        ]
    }
    testdf = {
        'Reactants': [
            'CC(=O)C', 'O=C1CCCCC1', 'O=C1CCCC1C', 'O=C1CCCC1C', 'CCCC(=O)CCC',
            'CCCCC(=O)CCCC', 'CC(=O)CC(=O)C', 'CC(=O)CC(=O)C', 'COCC(=O)C',
            'COCC(=O)C', 'CC(=O)c1ccccc1'
        ],
        'Products': [
            'CCC(=O)C', 'CC1CCCCC1=O', 'CC1CCC(C1=O)C', 'O=C1CCCC1(C)C',
            'CCCC(=O)C(CC)C', 'CCCCC(=O)C(CCC)C', 'CC(C(=O)C)C(=O)C',
            'CC(=O)C(C(=O)C)(C)C', 'COCC(=O)CC', 'COC(C(=O)CC)C',
            'CCC(=O)c1ccccc1'
        ]
    }

    path_vec = functions.path_vec(smilescc, model)
    testdf = pd.DataFrame(testdf)

    # Operate the function wihch is being tested
    pred_multiple = functions.pred_multiple_prod(testdf, model, path_vec, k=1)

    # Assert several arguments
    assert len(pred_multiple) == len(testdf)
    assert type(pred_multiple) == type(testdf)

    return 0