Spaces:
Running on Zero
Running on Zero
File size: 1,472 Bytes
d686612 5d4afe2 d686612 e00f001 d686612 012754b d686612 4bb4db8 d686612 5d4afe2 d686612 | 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 | import torch
from data_loader import GTEX_TISSUE_PROFILES, ORGAN_NAMES, EpiADRDataset
from utils import (
bemis_murcko_scaffold_split,
get_bemis_murcko_scaffold,
smiles_to_graph,
)
def test_smiles_to_graph():
smiles = "CC(=O)NC1=CC=C(O)C=C1" # Acetaminophen
node_feats, edge_index, atom_symbols = smiles_to_graph(smiles)
assert isinstance(node_feats, torch.Tensor)
assert isinstance(edge_index, torch.Tensor)
assert node_feats.ndim == 2
assert node_feats.shape[1] == 24 # 24 features per atom node
assert edge_index.shape[0] == 2 # Source -> Target edges
assert len(atom_symbols) == node_feats.shape[0]
def test_gtex_tissue_profiles():
assert len(GTEX_TISSUE_PROFILES) == 10
for organ in ORGAN_NAMES:
vec = GTEX_TISSUE_PROFILES[organ]
assert vec.shape[0] == 1024
assert torch.is_tensor(vec)
def test_bemis_murcko_scaffold_split():
dataset = EpiADRDataset()
smiles_list = [sample["smiles"] for sample in dataset.samples]
train_idx, val_idx, test_idx = bemis_murcko_scaffold_split(dataset, smiles_list)
assert len(train_idx) + len(val_idx) + len(test_idx) == len(dataset)
assert len(set(train_idx).intersection(set(test_idx))) == 0
train_scaffolds = {get_bemis_murcko_scaffold(smiles_list[i]) for i in train_idx}
test_scaffolds = {get_bemis_murcko_scaffold(smiles_list[i]) for i in test_idx}
assert len(train_scaffolds.intersection(test_scaffolds)) == 0
|