File size: 3,494 Bytes
cf004a6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
"""
Needed objects for tests
"""

#---------------------------------------------------------------------------------------
# Dependencies
import pytest
import pandas as pd
import pickle
import numpy as np
import torch

from data_preprocessing.create_descriptors  import create_cleaned_mol_objects

#---------------------------------------------------------------------------------------
# Define fixtures

#---------------------------------------------------------------------------------------
# Data preprocessing
@pytest.fixture(scope="session")
def input_molecule_formats():
    class Formats:
        smiles = "CCO"
        smiles_coma = "CCO, CCN"
        smiles_list = ["CCO", "CCN"]
        smiles_df = pd.DataFrame({"smiLES": ["CCO", "CCN"]})
        smiles_df_wrong_key = pd.DataFrame({"notSMILES": ["CCO", "CCN"]})
    return Formats()

@pytest.fixture(scope="session")
def input_smiles():
    current_loc = __file__.rsplit("/",3)[0]
    with open(current_loc + "/assets/test_reference_data/smiles.pkl", "rb") as fl:
        input_smiles = pickle.load(fl)
    return input_smiles

@pytest.fixture(scope="session")
def input_mols_from_smiles():
    current_loc = __file__.rsplit("/",3)[0]
    with open(current_loc + "/assets/test_reference_data/smiles.pkl", "rb") as fl:
        input_smiles = pickle.load(fl)
    
    input_molecules = create_cleaned_mol_objects(input_smiles)
    return input_molecules

@pytest.fixture(scope="session")
def ecfps_from_smiles():
    current_loc = __file__.rsplit("/",3)[0]
    ecfps = np.load(current_loc + "/assets/test_reference_data/ecfps.npy")
    return ecfps

@pytest.fixture(scope="session")
def rdkit_descrs_from_smiles():
    current_loc = __file__.rsplit("/",3)[0]
    rdkit_descrs = np.load(current_loc + "/assets/test_reference_data/rdkit_descrs.npy")
    return rdkit_descrs

@pytest.fixture(scope="session")
def rdkit_descr_quantils():
    current_loc = __file__.rsplit("/",3)[0]
    rdkit_descr_quantils = np.load(
        current_loc + "/assets/test_reference_data/rdkit_descr_quantils.npy")
    return rdkit_descr_quantils

@pytest.fixture(scope="session")
def preprocessed_features():
    current_loc = __file__.rsplit("/",3)[0]
    preprocessed_features = np.load(
        current_loc + "/assets/test_reference_data/preprocessed_features.npy")
    return preprocessed_features

#---------------------------------------------------------------------------------------
# Model
@pytest.fixture(scope="session")
def model_input_query():
    current_loc = __file__.rsplit("/",3)[0]
    model_input_query = torch.load(
        current_loc + "/assets/test_reference_data/model_input_query.pt")
    return model_input_query

@pytest.fixture(scope="session")
def model_input_support_actives():
    current_loc = __file__.rsplit("/",3)[0]
    model_input_support_actives = torch.load(
        current_loc + "/assets/test_reference_data/model_input_support_actives.pt")
    return model_input_support_actives

@pytest.fixture(scope="session")
def model_input_support_inactives():
    current_loc = __file__.rsplit("/",3)[0]
    model_input_support_inactives = torch.load(
        current_loc + "/assets/test_reference_data/model_input_support_inactives.pt")
    return model_input_support_inactives

@pytest.fixture(scope="session")
def model_predictions():
    current_loc = __file__.rsplit("/",3)[0]
    model_predictions = torch.load(
        current_loc + "/assets/test_reference_data/model_predictions.pt")
    return model_predictions