# bio-ontology-research-group/dti-voodoo architecture

> Architecture diagram of the GitHub repository bio-ontology-research-group/dti-voodoo, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/bio-ontology-research-group/dti-voodoo
- Repository: https://github.com/bio-ontology-research-group/dti-voodoo

## Overview

DTI-Voodoo is a research pipeline for predicting candidate drugs for a protein by combining drug molecular features, ontology-derived phenotypic effects, protein interaction networks, and graph neural networks. The principal workflow prepares interaction and feature data, builds model inputs, predicts drug–target interactions, and evaluates predictions. The README documents the combined method and its capabilities; sampled source supports data preparation, ontology graph embedding, and protein-function prediction, but does not expose the complete runtime wiring, so uncertain call relationships are omitted.

Main entry points: [`src/torch_dti_predictor.py`](https://github.com/bio-ontology-research-group/dti-voodoo/blob/master/src/torch_dti_predictor.py) (Graph DTI predictor), [`data`](https://github.com/bio-ontology-research-group/dti-voodoo/tree/master/data) (Biological datasets), [`src/DTI_data_preparation.py`](https://github.com/bio-ontology-research-group/dti-voodoo/blob/master/src/DTI_data_preparation.py) (DTI preparation), [`src/DL2vec`](https://github.com/bio-ontology-research-group/dti-voodoo/tree/master/src/DL2vec) (Ontology embeddings)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_data["Data and preparation"]
  node_datasets[("Biological datasets")]
  node_preparation["DTI preparation"]
end

subgraph group_features["Feature generation"]
  node_phenomenet["PhenomeNET features"]
  node_ontology["Ontology embeddings"]
  node_ontology_graph["Ontology graph builder<br/>[generate_graph.py]"]
  node_ontology_vectors["Graph walk embeddings<br/>[compute_vectors.py]"]
  node_molecular["Molecular features<br/>[molecular_utils.py]"]
  node_smiles["SMILES models"]
  node_protein_function["Protein function prediction"]
  node_protein_representation["Protein representation"]
  node_ppi["PPI network utilities<br/>[PPI_utils.py]"]
end

subgraph group_prediction["DTI prediction"]
  node_dti_model["Graph DTI predictor"]
  node_networks["Neural network layers<br/>[torch_networks.py]"]
  node_torch_utils["DTI model utilities<br/>[torch_dti_utils.py]"]
  node_molecular_model["Molecular DTI predictor"]
  node_predictions["Candidate interactions"]
end

subgraph group_evaluation["Evaluation"]
  node_evaluation["Prediction evaluation"]
  node_metrics["DTI metrics<br/>[dti_utils.py]"]
end

node_researcher(("Researcher"))

node_researcher -->|"initiates"| node_preparation
node_datasets -->|"supplies data"| node_preparation
node_preparation -->|"prepares inputs"| node_dti_model
node_preparation -->|"prepares inputs"| node_molecular_model
node_datasets -->|"supplies ontology data"| node_ontology
node_phenomenet -->|"uses embeddings"| node_ontology
node_ontology -->|"builds graph"| node_ontology_graph
node_ontology -->|"generates vectors"| node_ontology_vectors
node_datasets -->|"supplies drug data"| node_molecular
node_smiles -->|"encodes SMILES"| node_molecular
node_datasets -->|"supplies sequences"| node_protein_function
node_protein_representation -->|"provides representation"| node_protein_function
node_datasets -->|"supplies interactions"| node_ppi
node_phenomenet -->|"provides phenotype features"| node_dti_model
node_molecular -->|"provides molecular features"| node_dti_model
node_ppi -->|"provides network data"| node_dti_model
node_dti_model -->|"uses layers"| node_networks
node_dti_model -->|"uses utilities"| node_torch_utils
node_dti_model -->|"writes predictions"| node_predictions
node_molecular_model -->|"writes predictions"| node_predictions
node_predictions -->|"evaluates"| node_evaluation
node_evaluation -->|"uses metrics"| node_metrics

click node_datasets "https://github.com/bio-ontology-research-group/dti-voodoo/tree/master/data"
click node_preparation "https://github.com/bio-ontology-research-group/dti-voodoo/blob/master/src/DTI_data_preparation.py"
click node_phenomenet "https://github.com/bio-ontology-research-group/dti-voodoo/blob/master/src/PhenomeNET_DL2vec_utils.py"
click node_ontology "https://github.com/bio-ontology-research-group/dti-voodoo/tree/master/src/DL2vec"
click node_ontology_graph "https://github.com/bio-ontology-research-group/dti-voodoo/blob/master/src/DL2vec/generate_graph.py"
click node_ontology_vectors "https://github.com/bio-ontology-research-group/dti-voodoo/blob/master/src/DL2vec/compute_vectors.py"
click node_molecular "https://github.com/bio-ontology-research-group/dti-voodoo/blob/master/src/molecular_utils.py"
click node_smiles "https://github.com/bio-ontology-research-group/dti-voodoo/tree/master/src/smiles_transformer"
click node_protein_function "https://github.com/bio-ontology-research-group/dti-voodoo/blob/master/src/protein_function_predictor.py"
click node_protein_representation "https://github.com/bio-ontology-research-group/dti-voodoo/tree/master/models/protein_representation"
click node_ppi "https://github.com/bio-ontology-research-group/dti-voodoo/blob/master/src/PPI_utils.py"
click node_dti_model "https://github.com/bio-ontology-research-group/dti-voodoo/blob/master/src/torch_dti_predictor.py"
click node_networks "https://github.com/bio-ontology-research-group/dti-voodoo/blob/master/src/torch_networks.py"
click node_torch_utils "https://github.com/bio-ontology-research-group/dti-voodoo/blob/master/src/torch_dti_utils.py"
click node_molecular_model "https://github.com/bio-ontology-research-group/dti-voodoo/blob/master/src/molecular_predictor.py"
click node_predictions "https://github.com/bio-ontology-research-group/dti-voodoo/tree/master/results"
click node_evaluation "https://github.com/bio-ontology-research-group/dti-voodoo/blob/master/src/results_evaluation.py"
click node_metrics "https://github.com/bio-ontology-research-group/dti-voodoo/blob/master/src/dti_utils.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_datasets,node_preparation toneBlue
class node_phenomenet,node_ontology,node_ontology_graph,node_ontology_vectors,node_molecular,node_smiles,node_protein_function,node_protein_representation,node_ppi toneAmber
class node_dti_model,node_networks,node_torch_utils,node_molecular_model,node_predictions toneMint
class node_evaluation,node_metrics toneRose
class node_researcher toneIndigo
```

## Components

### Data and preparation

- [Biological datasets](https://github.com/bio-ontology-research-group/dti-voodoo/tree/master/data): `data`
- [DTI preparation](https://github.com/bio-ontology-research-group/dti-voodoo/blob/master/src/DTI_data_preparation.py): `src/DTI_data_preparation.py`

### Feature generation

- [PhenomeNET features](https://github.com/bio-ontology-research-group/dti-voodoo/blob/master/src/PhenomeNET_DL2vec_utils.py): `src/PhenomeNET_DL2vec_utils.py`
- [Ontology embeddings](https://github.com/bio-ontology-research-group/dti-voodoo/tree/master/src/DL2vec): `src/DL2vec`
- [Ontology graph builder](https://github.com/bio-ontology-research-group/dti-voodoo/blob/master/src/DL2vec/generate_graph.py): `src/DL2vec/generate_graph.py`
- [Graph walk embeddings](https://github.com/bio-ontology-research-group/dti-voodoo/blob/master/src/DL2vec/compute_vectors.py): `src/DL2vec/compute_vectors.py`
- [Molecular features](https://github.com/bio-ontology-research-group/dti-voodoo/blob/master/src/molecular_utils.py): `src/molecular_utils.py`
- [SMILES models](https://github.com/bio-ontology-research-group/dti-voodoo/tree/master/src/smiles_transformer): `src/smiles_transformer`
- [Protein function prediction](https://github.com/bio-ontology-research-group/dti-voodoo/blob/master/src/protein_function_predictor.py): `src/protein_function_predictor.py`
- [Protein representation](https://github.com/bio-ontology-research-group/dti-voodoo/tree/master/models/protein_representation): `models/protein_representation`
- [PPI network utilities](https://github.com/bio-ontology-research-group/dti-voodoo/blob/master/src/PPI_utils.py): `src/PPI_utils.py`

### DTI prediction

- [Graph DTI predictor](https://github.com/bio-ontology-research-group/dti-voodoo/blob/master/src/torch_dti_predictor.py): `src/torch_dti_predictor.py`
- [Neural network layers](https://github.com/bio-ontology-research-group/dti-voodoo/blob/master/src/torch_networks.py): `src/torch_networks.py`
- [DTI model utilities](https://github.com/bio-ontology-research-group/dti-voodoo/blob/master/src/torch_dti_utils.py): `src/torch_dti_utils.py`
- [Molecular DTI predictor](https://github.com/bio-ontology-research-group/dti-voodoo/blob/master/src/molecular_predictor.py): `src/molecular_predictor.py`
- [Candidate interactions](https://github.com/bio-ontology-research-group/dti-voodoo/tree/master/results): `results`

### Evaluation

- [Prediction evaluation](https://github.com/bio-ontology-research-group/dti-voodoo/blob/master/src/results_evaluation.py): `src/results_evaluation.py`
- [DTI metrics](https://github.com/bio-ontology-research-group/dti-voodoo/blob/master/src/dti_utils.py): `src/dti_utils.py`

### Other components

- **Researcher**

## Connections

- Researcher → DTI preparation: initiates
- Biological datasets → DTI preparation: supplies data
- DTI preparation → Graph DTI predictor: prepares inputs
- DTI preparation → Molecular DTI predictor: prepares inputs
- Biological datasets → Ontology embeddings: supplies ontology data
- PhenomeNET features → Ontology embeddings: uses embeddings
- Ontology embeddings → Ontology graph builder: builds graph
- Ontology embeddings → Graph walk embeddings: generates vectors
- Biological datasets → Molecular features: supplies drug data
- SMILES models → Molecular features: encodes SMILES
- Biological datasets → Protein function prediction: supplies sequences
- Protein representation → Protein function prediction: provides representation
- Biological datasets → PPI network utilities: supplies interactions
- PhenomeNET features → Graph DTI predictor: provides phenotype features
- Molecular features → Graph DTI predictor: provides molecular features
- PPI network utilities → Graph DTI predictor: provides network data
- Graph DTI predictor → Neural network layers: uses layers
- Graph DTI predictor → DTI model utilities: uses utilities
- Graph DTI predictor → Candidate interactions: writes predictions
- Molecular DTI predictor → Candidate interactions: writes predictions
- Candidate interactions → Prediction evaluation: evaluates
- Prediction evaluation → DTI metrics: uses metrics
