Otter STITCH DistMult Model Card

Model details

Otter models are based on Graph Neural Networks (GNN) that propagates initial embeddings through a set of layers that upgrade input embedding according to the node neighbours. The architecture of GNN consists of two main blocks: encoder and decoder.

Model type:

For link prediction, we consider three choices of scoring functions: DistMult, TransE and a Binary Classifier that are commonly used in the literature. The outcomes of scoring of each triple are then compared against actual labels using negative log likelihood loss function.

Scoring Type Noisy Links Flow Control Regression
DistMult No Yes No

Model training data:

The model was trained over STITCH. STITCH (Search Tool for Interacting Chemicals) is a database of known and predicted interactions between chemicals represented by SMILES strings and proteins whose sequences are taken from STRING database. It contains 10,717,791 triples for 17,572 different chemicals and 1,886,496 different proteins. Furthermore, the graph was split into 5 roughly same size subgraphs and GNN was trained sequentially on each of them by upgrading the model trained using the previous subgraph.

Model results:

<style type="text/css"> .tg {border-collapse:collapse;border-spacing:0;} .tg td{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px; overflow:hidden;padding:10px 5px;word-break:normal;} .tg th{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px; font-weight:normal;overflow:hidden;padding:10px 5px;word-break:normal;} .tg .tg-c3ow{border-color:inherit;text-align:center;vertical-align:top} .tg .tg-0pky{border-color:inherit;text-align:center;vertical-align:centr;text-emphasis:bold} </style> <table class="tg"> <thead> <tr> <th class="tg-0pky">Dataset</th> <th class="tg-c3ow">DTI DG</th> <th class="tg-c3ow" colspan="3">DAVIS</th> <th class="tg-c3ow" colspan="3">KIBA</th> </tr> </thead> <tbody> <tr> <td class="tg-0pky">Splits</td> <td class="tg-c3ow">Temporal</td> <td class="tg-c3ow">Random</td> <td class="tg-c3ow">Target</td> <td class="tg-c3ow">Drug</td> <td class="tg-c3ow">Random</td> <td class="tg-c3ow">Target</td> <td class="tg-c3ow">Drug</td> </tr> <tr> <td class="tg-0pky">Results</td> <td class="tg-c3ow">0.575</td> <td class="tg-c3ow">0.808</td> <td class="tg-c3ow">0.573</td> <td class="tg-c3ow">0.138</td> <td class="tg-c3ow">0.859</td> <td class="tg-c3ow">0.615</td> <td class="tg-c3ow">0.603</td> </tr> </tbody> </table>

Paper or resources for more information:

License:

MIT

Where to send questions or comments about the model:

How to use

Clone the repo:

git clone https://github.com/IBM/otter-knowledge.git
cd otter-knowledge
python inference.py --input_path test_data --sequence_column name_of_the_column --model_path ibm/otter_stitch_distmult --output_path output_path
python inference.py --input_path test_data --sequence_column name_of_the_column input_type Drug --relation_name smiles --model_path ibm/otter_stitch_distmult --output_path output_path