All Notebooks | Help | Support | About
Archives
Authors
Sections
Tools
Show/Hide Keys
30th March 2017 @ 01:20

A neural network meta classifier has a predictive score of AUC = 0.89 on the test molecules.

 

The Meta Classifier

  • Each predictive model based on fingerprints or another SMILE based description vector such as DRAGON brings a certain amount of predictive power to the task of assessing likely molecular activity against PfATP4.

  • What the meta classifier does is combine the predictive power of each model in an optimal way to produce a more predictive composite model.

  • It does this by taking as it's input the probability maps (the outputs) of other classifiers,

  • The two models chosen as inputs to the meta model are:

    1. A Neural Network model that uses the [DRAGON](http://www.vcclab.org/lab/edragon/) molecular descriptor to estimate molecular PfATP4 ion regulation activity directly. This model had modest predictive power of AUC=0.77.
    2. A logistic classifier that uses the Morgan fingerprints (mol radius = 5) to predict the EC50 <= 500 nMol class. This model has a predictive power of AUC=0.93 for the test molecules. 


Detailed Results.

 

AUC 0.89

Confusion Matrix

 

true/predict ACTIVE INACTIVE
ACTIVE 17 1
INACTIVE 7 10


Molecule Classification

 

ID Actual_Class Pred_Class Prob_ACTIVE
OSM-S-272 ACTIVE ACTIVE 0.5870
OSM-S-366 INACTIVE ACTIVE 0.5868
OSM-S-378 ACTIVE ACTIVE 0.5854
OSM-S-389 ACTIVE ACTIVE 0.5846
OSM-S-390 ACTIVE ACTIVE 0.5835
OSM-S-353 ACTIVE ACTIVE 0.5831
OSM-S-175 ACTIVE ACTIVE 0.5830
OSM-S-376 ACTIVE ACTIVE 0.5828
OSM-S-383 ACTIVE ACTIVE 0.5820
OSM-S-369 ACTIVE ACTIVE 0.5819
OSM-S-218 ACTIVE ACTIVE 0.5819
OSM-S-370 ACTIVE ACTIVE 0.5810
OSM-S-380 ACTIVE ACTIVE 0.5808
OSM-S-293 ACTIVE ACTIVE 0.5804
OSM-S-385 ACTIVE ACTIVE 0.5797
OSM-S-384 ACTIVE ACTIVE 0.5795
OSM-S-279 ACTIVE ACTIVE 0.5794
OSM-S-368 INACTIVE ACTIVE 0.5790
OSM-S-386 INACTIVE ACTIVE 0.5784
OSM-S-363 INACTIVE ACTIVE 0.5772
OSM-S-367 INACTIVE ACTIVE 0.5713
OSM-S-373 INACTIVE ACTIVE 0.5703
OSM-S-204 INACTIVE ACTIVE 0.5698
OSM-S-379 ACTIVE ACTIVE 0.5689
OSM-S-201 INACTIVE INACTIVE 0.4121
OSM-S-374 INACTIVE INACTIVE 0.3391
OSM-S-254 INACTIVE INACTIVE 0.2554
OSM-S-372 INACTIVE INACTIVE 0.2453
OSM-S-371 ACTIVE INACTIVE 0.1007
OSM-S-278 INACTIVE INACTIVE 0.0772
OSM-S-375 INACTIVE INACTIVE 0.0584
OSM-S-364 INACTIVE INACTIVE 0.0189
OSM-S-382 INACTIVE INACTIVE 0.0172
OSM-S-387 INACTIVE INACTIVE 0.0004
OSM-S-388 INACTIVE INACTIVE 0.0004

 


The Classification Software.

The Meta Classifier runs on Linux and Windows under Python 2.7 and 3.5 (Mac untested):

  1. Download the entire directory tree from google drive [here](https://drive.google.com/drive/folders/0B0Rfx1fjhlsaZU1MenhlYVc5TVU). You can also download the software from GitHub [here](https://github.com/kellerberrin/OSM-QSAR). However, the google drive version is already has the required directory tree.

  2. Make sure you have activated the python anaconda environment as described in "readme.md".

Then go to the directory where you copied the software and simply execute the prepared batch files:

On Windows:

text code:
c>osm_comp

On Linux:

text code:
$chmod 777 ./osm_comp $./osm_comp

You can also execute the meta model (--help for flag descriptions) directly from the command line (the clean flag is optional it removes previous results from the model directory):

text code:
python OSM_QSAR.py --classify osm --load ION_META --epoch 40 --train 0 [--clean]

You can also classify the molecules proposed by @spadavec in issue #486 (looks like some strong leads here Vito)  by changing the input data file (--data OSMData4MMP.csv):

text code:
python OSM_QSAR.py --classify osm --load ION_META --epoch 40 --train 0 --data OSMData4MMP.csv

The classification results are found in "./Work/osm/test" and "./Work/osm/train". The statistics files contain 3 classifications. The first two are the classifier results that feed into the meta classifier. 

If you want to explore further, then you could train a neural network to classify molecules for EC50 <= 500nMol potency with the Morgan (mol=5) fingerprint using the following command:

text code:
python OSM_QSAR.py --classify bin_m --train 500 --check 25 --depend EC50_500 --indep MORGAN2048_5
 
This trains the neural network for 500 epochs and checkpoints (saves) the neural network every 25 epochs. The results for each checkpoint are concatonated and will be in the directory "./Work/bin_d/test" and "./Work/bin_d/train".