summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.ch>2019-10-21 20:29:12 +0200
committerChristoph Helma <helma@in-silico.ch>2019-10-21 20:29:12 +0200
commit2e03df94681951a62229b76b52370da094aa1ec6 (patch)
treea1bedd275c3ffab65c49f4eefec91bf6a0768d09
parentb1e01382e0580676d3686195f9897a60a2ffee1d (diff)
Results section
-rw-r--r--Makefile22
-rw-r--r--mutagenicity.md132
-rw-r--r--results.yaml145
-rwxr-xr-xscripts/confusion-matrix-summary.rb42
-rw-r--r--tables/R-DL.csv4
-rw-r--r--tables/R-RF.csv4
-rw-r--r--tables/R-SVM.csv4
-rw-r--r--tables/lazar-all.csv4
-rw-r--r--tables/lazar-high-confidence.csv4
-rw-r--r--tables/lazar-padel-all.csv4
-rw-r--r--tables/lazar-padel-high-confidence.csv4
-rw-r--r--tables/tensorflow-all.csv4
-rw-r--r--tables/tensorflow-selected.csv4
13 files changed, 295 insertions, 82 deletions
diff --git a/Makefile b/Makefile
index a95eb32..d0fba04 100644
--- a/Makefile
+++ b/Makefile
@@ -8,7 +8,7 @@ PANDOC_SCHOLAR_PATH = pandoc-scholar
OUTFILE_PREFIX = mutagenicity
DEFAULT_EXTENSIONS = pdf #latex docx html #odt epub
#PANDOC_WRITER_OPTIONS = --filter=panpipe --filter=pandoc-placetable --filter=pandoc-citeproc -M tmpvar=test
-PANDOC_WRITER_OPTIONS = --filter=pandoc-crossref --filter=pandoc-placetable --filter=pandoc-citeproc
+PANDOC_WRITER_OPTIONS = --filter=pandoc-placetable --filter=pandoc-crossref --filter=pandoc-citeproc
TEMPLATE_FILE_LATEX = pandoc-scholar.latex
# Lazar
@@ -28,24 +28,25 @@ CONFUSION_MATRICES_DIR = 10-fold-crossvalidations/confusion-matrices
R_CV_DIR = 10-fold-crossvalidations/R
TENSORFLOW_CV_DIR = 10-fold-crossvalidations/tensorflow
-TABLES = tables/r-summary.csv tables/tf-summary.csv tables/lazar-summary.csv tables/R-SVM.csv tables/R-RF.csv tables/R-DL.csv tables/tensorflow-all.csv tables/tensorflow-selected.csv tables/lazar-all.csv tables/lazar-high-confidence.csv tables/lazar-padel-all.csv tables/lazar-padel-high-confidence.csv
+#TABLES = tables/r-summary.csv tables/tf-summary.csv tables/lazar-summary.csv tables/R-SVM.csv tables/R-RF.csv tables/R-DL.csv tables/tensorflow-all.csv tables/tensorflow-selected.csv tables/lazar-all.csv tables/lazar-high-confidence.csv tables/lazar-padel-all.csv tables/lazar-padel-high-confidence.csv
+TABLES = tables/R-SVM.csv tables/R-RF.csv tables/R-DL.csv tables/tensorflow-all.csv tables/tensorflow-selected.csv tables/lazar-all.csv tables/lazar-high-confidence.csv tables/lazar-padel-all.csv tables/lazar-padel-high-confidence.csv
R_SUMMARIES = $(SUMMARIES_DIR)/R-SVM.json $(SUMMARIES_DIR)/R-RF.json $(SUMMARIES_DIR)/R-DL.json
TF_SUMMARIES = $(SUMMARIES_DIR)/tensorflow-all.json $(SUMMARIES_DIR)/tensorflow-selected.json
LAZAR_SUMMARIES = $(SUMMARIES_DIR)/lazar-all.json $(SUMMARIES_DIR)/lazar-high-confidence.json $(SUMMARIES_DIR)/lazar-padel-all.json $(SUMMARIES_DIR)/lazar-padel-high-confidence.json
-SUMMARIES = $(R_SUMMARIES) $(TF_SUMMARIES) $(LAZAR_SUMMARIES)
+#SUMMARIES = $(R_SUMMARIES) $(TF_SUMMARIES) $(LAZAR_SUMMARIES)
CONFUSION_MATRICES = $(CONFUSION_MATRICES_DIR)/R-SVM.csv $(CONFUSION_MATRICES_DIR)/R-RF.csv $(CONFUSION_MATRICES_DIR)/R-DL.csv $(CONFUSION_MATRICES_DIR)/tensorflow-all.csv $(CONFUSION_MATRICES_DIR)/tensorflow-selected.csv $(CONFUSION_MATRICES_DIR)/lazar-all.csv $(CONFUSION_MATRICES_DIR)/lazar-high-confidence.csv $(CONFUSION_MATRICES_DIR)/lazar-padel-all.csv $(CONFUSION_MATRICES_DIR)/lazar-padel-high-confidence.csv
DATA = data/mutagenicity.sdf data/mutagenicity.csv data/mutagenicity-fingerprints.csv
-all: $(DATA) $(TABLES) mutagenicity.pdf $(SUMMARIES_DIR)/results.json
+all: $(DATA) $(TABLES) mutagenicity.pdf
#all: $(SUMMARIES) $(DATA) $(TABLES) mutagenicity.pdf
include $(PANDOC_SCHOLAR_PATH)/Makefile
export: $(DATA)
-mutagenicity.mustache.md: $(SUMMARIES_DIR)/results.json mutagenicity.md
+mutagenicity.mustache.md: results.yaml mutagenicity.md
mustache $^ > $@
# tables
@@ -64,11 +65,14 @@ tables/%.csv: $(CONFUSION_MATRICES_DIR)/%.csv
# summaries
-$(SUMMARIES_DIR)/results.json: $(SUMMARIES)
- scripts/results.rb $^ > $@
+#$(SUMMARIES_DIR)/results.json: $(SUMMARIES)
+ #scripts/results.rb $^ > $@
-$(SUMMARIES_DIR)/%.json: $(CONFUSION_MATRICES_DIR)/%.csv
- scripts/confusion-matrix-summary.rb $< > $@
+#$(SUMMARIES_DIR)/%.json: $(CONFUSION_MATRICES_DIR)/%.csv
+ #scripts/confusion-matrix-summary.rb $< > $@
+
+results.yaml: $(CONFUSION_MATRICES)
+ scripts/confusion-matrix-summary.rb $^ > $@
# confusion matrices
diff --git a/mutagenicity.md b/mutagenicity.md
index 2f80bad..a9fa116 100644
--- a/mutagenicity.md
+++ b/mutagenicity.md
@@ -25,6 +25,7 @@ institute:
bibliography: bibliography.bib
keywords: mutagenicity, (Q)SAR, lazar, random forest, support vector machine, deep learning
documentclass: scrartcl
+tblPrefix: Table
...
Abstract
@@ -335,83 +336,60 @@ Validation
Results
=======
-{{#programs}}
-{{name}} Models
---------
-{{#algos}}
-
-### {{name}}
-
-10-fold crossvalidation of the {{abbrev}} model gave an accuracy of
-{{accuracy_perc}}%
-a sensitivity of
-{{true_positive_rate_perc}}%
-and a specificity of
-{{true_negative_rate_perc}}%
-The confusion matrix of the
-model, calculated for 8080 instances, is provided in Table 1.
-
-```{.table file="tables/R-RF.csv" caption="Confusion matrix for R Random Forest predictions"}
-```
-{{/algos}}
-{{/programs}}
-
R Models
--------
### Random Forest
-The validation showed that the RF model has an accuracy of
-{{R-RF.accuracy}}%
-`cat /home/ch/src/mutagenicity-paper/10-fold-crossvalidations/summaries/R-RF.json|jq '.accuracy * 100 | round'`{pipe="sh"}%,
-a sensitivity of
-`cat /home/ch/src/mutagenicity-paper/10-fold-crossvalidations/summaries/R-RF.json|jq '.true_positive_rate * 100 | round'`{pipe="sh"}%,
-and a specificity of
-`cat /home/ch/src/mutagenicity-paper/10-fold-crossvalidations/summaries/R-RF.json|jq '.true_negative_rate * 100 | round'`{pipe="sh"}%,
-The confusion matrix of the
-model, calculated for 8080 instances, is provided in Table 1.
-
-```{.table file="tables/R-RF.csv" caption="Confusion matrix for R Random Forest predictions"}
+10-fold crossvalidation of the R-RF model gave an accuracy of
+{{R-RF.acc_perc}}%, a sensitivity of {{R-RF.tpr_perc}}% and a specificity of
+{{R-RF.tnr_perc}}%. The confusion matrix for {{R-RF.n}}
+predictions is provided in @tbl:R-RF.
+
+```{#tbl:R-RF .table file="tables/R-RF.csv" caption="Confusion matrix for R Random Forest predictions"}
```
### Support Vector Machines
-The validation showed that the SVM model has an accuracy of 62%, a
-sensitivity of 65% and a specificity of 60%. The confusion matrix of SVM
-model, calculated for 8080 instances, is provided in Table 2.
-
+10-fold crossvalidation of the R-SVM model gave an accuracy of
+{{R-SVM.acc_perc}}%, a sensitivity of {{R-SVM.tpr_perc}}% and a specificity of
+{{R-SVM.tnr_perc}}%. The confusion matrix for {{R-SVM.n}}
+predictions is provided in @tbl:R-SVM.
-```{.table file="tables/R-SVM.csv" caption="Confusion matrix for R Support Vector Machine predictions"}
+```{#tbl:R-SVM .table file="tables/R-SVM.csv" caption="Confusion matrix for R Support Vector Machine predictions"}
```
### Deep Learning
-The validation showed that the DL model generated in R has an accuracy
-of 59%, a sensitivity of 89% and a specificity of 30%. The confusion
-matrix of the model, normalised to 8080 instances, is provided in Table
-3.
+10-fold crossvalidation of the R-DL model gave an accuracy of
+{{R-DL.acc_perc}}%, a sensitivity of {{R-DL.tpr_perc}}% and a specificity of
+{{R-DL.tnr_perc}}%. The confusion matrix for {{R-DL.n}}
+predictions is provided in @tbl:R-DL.
-```{.table file="tables/R-DL.csv" caption="Confusion matrix for R Deep Learning predictions"}
-```
-
-```{.table file="tables/r-summary.csv" caption="Summary of R model validations"}
+```{#tbl:R-DL .table file="tables/R-DL.csv" caption="Confusion matrix for R Deep Learning predictions"}
```
TensorFlow Models
-----------------
-The validation showed that the DL model generated in TensorFlow has an
-accuracy of 68%, a sensitivity of 70% and a specificity of 46%. The
-confusion matrix of the model, normalised to 8080 instances, is provided
-in Table 4.
+### Without feature selection
-```{.table file="tables/tensorflow-all.csv" caption="Confusion matrix for Tensorflow predictions without variable selecetion"}
-```
+10-fold crossvalidation of the TensorFlow DL model gave an accuracy of
+{{tensorflow-all.acc_perc}}%, a sensitivity of {{tensorflow-all.tpr_perc}}% and a specificity of
+{{tensorflow-all.tnr_perc}}%. The confusion matrix for {{tensorflow-all.n}}
+predictions is provided in @tbl:tensorflow-all.
-```{.table file="tables/tensorflow-selected.csv" caption="Confusion matrix for Tensorflow predictions with variable selecetion"}
+```{#tbl:tensorflow-all .table file="tables/tensorflow-all.csv" caption="Confusion matrix for Tensorflow predictions without feature selecetion"}
```
-```{.table file="tables/tf-summary.csv" caption="Summary of TensorFlow model validations"}
+### With feature selection
+
+10-fold crossvalidation of the TensorFlow model with feature selection gave an accuracy of
+{{tensorflow-selected.acc_perc}}%, a sensitivity of {{tensorflow-selected.tpr_perc}}% and a specificity of
+{{tensorflow-selected.tnr_perc}}%. The confusion matrix for {{tensorflow-selected.n}}
+predictions is provided in @tbl:tensorflow-selected.
+
+```{#tbl:tensorflow-selected .table file="tables/tensorflow-selected.csv" caption="Confusion matrix for Tensorflow predictions with feature selecetion"}
```
`lazar` Models
@@ -419,23 +397,59 @@ in Table 4.
### MolPrint2D Descriptors
-```{.table file="tables/lazar-all.csv" caption="Confusion matrix for lazar predictions with MolPrint2D descriptors"}
+10-fold crossvalidation of the lazar model with MolPrint2D descriptors gave an accuracy of
+{{lazar-all.acc_perc}}%, a sensitivity of {{lazar-all.tpr_perc}}% and a specificity of
+{{lazar-all.tnr_perc}}%.
+The confusion matrix for {{lazar-all.n}}
+predictions is provided in @tbl:lazar-all.
+
+```{#tbl:lazar-all .table file="tables/lazar-all.csv" caption="Confusion matrix for lazar predictions with MolPrint2D descriptors"}
```
-```{.table file="tables/lazar-high-confidence.csv" caption="Confusion matrix for high confidence lazar predictions with MolPrint2D descriptors"}
+Predictions with high confidence had an accuracy of
+{{lazar-high-confidence.acc_perc}}%, a sensitivity of {{lazar-high-confidence.tpr_perc}}% and a specificity of
+{{lazar-high-confidence.tnr_perc}}%.
+The confusion matrix for {{lazar-high-confidence.n}}
+predictions is provided in @tbl:lazar-high-confidence.
+
+
+```{#tbl:lazar-high-confidence .table file="tables/lazar-high-confidence.csv" caption="Confusion matrix for high confidence lazar predictions with MolPrint2D descriptors"}
```
### PaDEL Descriptors
-```{.table file="tables/lazar-padel-all.csv" caption="Confusion matrix for lazar predictions with PaDEL descriptors"}
-```
+10-fold crossvalidation of the lazar model with PaDEL descriptors gave an accuracy of
+{{lazar-all.acc_perc}}%, a sensitivity of {{lazar-all.tpr_perc}}% and a specificity of
+{{lazar-all.tnr_perc}}%.
+The confusion matrix for {{lazar-all.n}}
+predictions is provided in @tbl:lazar-padel-all.
-```{.table file="tables/lazar-padel-high-confidence.csv" caption="Confusion matrix for high confidence lazar predictions with PaDEL descriptors"}
+```{#tbl:lazar-padel-all .table file="tables/lazar-padel-all.csv" caption="Confusion matrix for lazar predictions with PaDEL descriptors" }
```
-```{.table file="tables/lazar-summary.csv" caption="Summary of lazar model validations"}
+Predictions with high confidence had an accuracy of
+{{lazar-high-confidence.acc_perc}}%, a sensitivity of {{lazar-high-confidence.tpr_perc}}% and a specificity of
+{{lazar-high-confidence.tnr_perc}}%.
+The confusion matrix for {{lazar-high-confidence.n}}
+predictions is provided in @tbl:lazar-padel-high-confidence.
+
+```{#tbl:lazar-padel-high-confidence .table file="tables/lazar-padel-high-confidence.csv" caption="Confusion matrix for high confidence lazar predictions with PaDEL descriptors"}
```
+The results of all crossvalidation experiments are summarized in @tbl:summary.
+
+| |R-RF | R-SVM | R-DL | TF | TF-FS | L | L-HC | L-P | L-P-HC|
+|-|-----|-------|------|----|-------|---|------|------|--------|
+|Accuracy|{{R-RF.acc}}|{{R-SVM.acc}}|{{R-DL.acc}}|{{tensorflow-all.acc}}|{{tensorflow-selected.acc}}|{{lazar-all.acc}}|{{lazar-high-confidence.acc}}|{{lazar-padel-all.acc}}|{{lazar-padel-high-confidence.acc}}|
+|Sensitivity|{{R-RF.tpr}}|{{R-SVM.tpr}}|{{R-DL.tpr}}|{{tensorflow-all.tpr}}|{{tensorflow-selected.tpr}}|{{lazar-all.tpr}}|{{lazar-high-confidence.tpr}}|{{lazar-padel-all.tpr}}|{{lazar-padel-high-confidence.tpr}}|
+|Specificity|{{R-RF.tnr}}|{{R-SVM.tnr}}|{{R-DL.tnr}}|{{tensorflow-all.tnr}}|{{tensorflow-selected.tnr}}|{{lazar-all.tnr}}|{{lazar-high-confidence.tnr}}|{{lazar-padel-all.tnr}}|{{lazar-padel-high-confidence.tnr}}|
+|PPV|{{R-RF.ppv}}|{{R-SVM.ppv}}|{{R-DL.ppv}}|{{tensorflow-all.ppv}}|{{tensorflow-selected.ppv}}|{{lazar-all.ppv}}|{{lazar-high-confidence.ppv}}|{{lazar-padel-all.ppv}}|{{lazar-padel-high-confidence.ppv}}|
+|NPV|{{R-RF.npv}}|{{R-SVM.npv}}|{{R-DL.npv}}|{{tensorflow-all.npv}}|{{tensorflow-selected.npv}}|{{lazar-all.npv}}|{{lazar-high-confidence.npv}}|{{lazar-padel-all.npv}}|{{lazar-padel-high-confidence.npv}}|
+|Nr. predictions|{{R-RF.n}}|{{R-SVM.n}}|{{R-DL.n}}|{{tensorflow-all.n}}|{{tensorflow-selected.n}}|{{lazar-all.n}}|{{lazar-high-confidence.n}}|{{lazar-padel-all.n}}|{{lazar-padel-high-confidence.n}}|
+
+: Summary of crossvalidation results. *R-RF*: R Random Forests, *R-SVM*: R Support Vector Machines, *R-DL*: R Deep Learning, *TF*: TensorFlow without feature selection, *TF-FS*: TensorFlow with feature selection, *L*: lazar, *L-HC*: lazar high confidence predictions, *L-P*: lazar with PaDEL descriptors, *L-P-HC*: lazar PaADEL high confidence predictions, *PPV*: Positive predictive value (Precision), *NPV*: Negative predictive value {#tbl:summary}
+
+
Discussion
==========
diff --git a/results.yaml b/results.yaml
new file mode 100644
index 0000000..489c1dd
--- /dev/null
+++ b/results.yaml
@@ -0,0 +1,145 @@
+---
+R-SVM:
+ :tp: 2243
+ :fp: 1353
+ :tn: 2717
+ :fn: 1757
+ :n: 8070
+ :acc: 0.61
+ :tpr: 0.56
+ :tnr: 0.67
+ :ppv: 0.62
+ :npv: 0.61
+ :acc_perc: 61
+ :tpr_perc: 56
+ :tnr_perc: 67
+ :ppv_perc: 62
+ :npv_perc: 61
+R-RF:
+ :tp: 2259
+ :fp: 1173
+ :tn: 2897
+ :fn: 1741
+ :n: 8070
+ :acc: 0.64
+ :tpr: 0.56
+ :tnr: 0.71
+ :ppv: 0.66
+ :npv: 0.62
+ :acc_perc: 64
+ :tpr_perc: 56
+ :tnr_perc: 71
+ :ppv_perc: 66
+ :npv_perc: 62
+R-DL:
+ :tp: 3517
+ :fp: 3099
+ :tn: 971
+ :fn: 483
+ :n: 8070
+ :acc: 0.56
+ :tpr: 0.88
+ :tnr: 0.24
+ :ppv: 0.53
+ :npv: 0.67
+ :acc_perc: 56
+ :tpr_perc: 88
+ :tnr_perc: 24
+ :ppv_perc: 53
+ :npv_perc: 67
+tensorflow-all:
+ :tp: 2507
+ :fp: 1528
+ :tn: 2550
+ :fn: 1495
+ :n: 8080
+ :acc: 0.63
+ :tpr: 0.63
+ :tnr: 0.63
+ :ppv: 0.62
+ :npv: 0.63
+ :acc_perc: 63
+ :tpr_perc: 63
+ :tnr_perc: 63
+ :ppv_perc: 62
+ :npv_perc: 63
+tensorflow-selected:
+ :tp: 2453
+ :fp: 1454
+ :tn: 2624
+ :fn: 1549
+ :n: 8080
+ :acc: 0.63
+ :tpr: 0.61
+ :tnr: 0.64
+ :ppv: 0.63
+ :npv: 0.63
+ :acc_perc: 63
+ :tpr_perc: 61
+ :tnr_perc: 64
+ :ppv_perc: 63
+ :npv_perc: 63
+lazar-all:
+ :tp: 3326
+ :fp: 833
+ :tn: 3039
+ :fn: 583
+ :n: 7781
+ :acc: 0.82
+ :tpr: 0.85
+ :tnr: 0.78
+ :ppv: 0.8
+ :npv: 0.84
+ :acc_perc: 82
+ :tpr_perc: 85
+ :tnr_perc: 78
+ :ppv_perc: 80
+ :npv_perc: 84
+lazar-high-confidence:
+ :tp: 2816
+ :fp: 571
+ :tn: 2138
+ :fn: 365
+ :n: 5890
+ :acc: 0.84
+ :tpr: 0.89
+ :tnr: 0.79
+ :ppv: 0.83
+ :npv: 0.85
+ :acc_perc: 84
+ :tpr_perc: 89
+ :tnr_perc: 79
+ :ppv_perc: 83
+ :npv_perc: 85
+lazar-padel-all:
+ :tp: 593
+ :fp: 466
+ :tn: 1777
+ :fn: 1253
+ :n: 4089
+ :acc: 0.58
+ :tpr: 0.32
+ :tnr: 0.79
+ :ppv: 0.56
+ :npv: 0.59
+ :acc_perc: 58
+ :tpr_perc: 32
+ :tnr_perc: 79
+ :ppv_perc: 56
+ :npv_perc: 59
+lazar-padel-high-confidence:
+ :tp: 593
+ :fp: 466
+ :tn: 1771
+ :fn: 1251
+ :n: 4081
+ :acc: 0.58
+ :tpr: 0.32
+ :tnr: 0.79
+ :ppv: 0.56
+ :npv: 0.59
+ :acc_perc: 58
+ :tpr_perc: 32
+ :tnr_perc: 79
+ :ppv_perc: 56
+ :npv_perc: 59
diff --git a/scripts/confusion-matrix-summary.rb b/scripts/confusion-matrix-summary.rb
index a9742f7..e0adf4e 100755
--- a/scripts/confusion-matrix-summary.rb
+++ b/scripts/confusion-matrix-summary.rb
@@ -1,19 +1,33 @@
#!/usr/bin/env ruby
require 'csv'
-require 'json'
+require 'yaml'
-csv = CSV.read(ARGV[0],headers: false,:col_sep => ",")
-tp = csv[0][0].to_f
-fp = csv[0][1].to_f
-fn = csv[1][0].to_f
-tn = csv[1][1].to_f
+results = {}
+ARGV.each do |f|
+ csv = CSV.read(f,headers: false,:col_sep => ",")
+ tp = csv[0][0].to_f
+ fp = csv[0][1].to_f
+ fn = csv[1][0].to_f
+ tn = csv[1][1].to_f
-result = {
- :accuracy => (tp+tn)/(tp+fp+tn+fn),
- :true_positive_rate => tp/(tp+fn),
- :true_negative_rate => tn/(tn+fp),
- :positive_predictive_value => tp/(tp+fp),
- :negative_predictive_value => tn/(tn+fn),
-}
+ result = {
+ :tp => tp.to_i,
+ :fp => fp.to_i,
+ :tn => tn.to_i,
+ :fn => fn.to_i,
+ :n => (tp+fp+tn+fn).to_i,
+ :acc => ((tp+tn)/(tp+fp+tn+fn)).round(2),
+ :tpr => (tp/(tp+fn)).round(2),
+ :tnr => (tn/(tn+fp)).round(2),
+ :ppv => (tp/(tp+fp)).round(2),
+ :npv => (tn/(tn+fn)).round(2),
+ :acc_perc => (100*(tp+tn)/(tp+fp+tn+fn)).round(0),
+ :tpr_perc => (100*tp/(tp+fn)).round(0),
+ :tnr_perc => (100*tn/(tn+fp)).round(0),
+ :ppv_perc => (100*tp/(tp+fp)).round(0),
+ :npv_perc => (100*tn/(tn+fn)).round(0),
+ }
+ results[File.basename(f,".csv")] = result
+end
-puts result.to_json
+puts results.to_yaml
diff --git a/tables/R-DL.csv b/tables/R-DL.csv
new file mode 100644
index 0000000..d622e0e
--- /dev/null
+++ b/tables/R-DL.csv
@@ -0,0 +1,4 @@
+,,Predictions,
+,,mutagenic,non-mutagenic
+Measurements,mutagenic,3517,3099
+,non-mutagenic,483,971
diff --git a/tables/R-RF.csv b/tables/R-RF.csv
new file mode 100644
index 0000000..d81cff6
--- /dev/null
+++ b/tables/R-RF.csv
@@ -0,0 +1,4 @@
+,,Predictions,
+,,mutagenic,non-mutagenic
+Measurements,mutagenic,2259,1173
+,non-mutagenic,1741,2897
diff --git a/tables/R-SVM.csv b/tables/R-SVM.csv
new file mode 100644
index 0000000..9aaf85f
--- /dev/null
+++ b/tables/R-SVM.csv
@@ -0,0 +1,4 @@
+,,Predictions,
+,,mutagenic,non-mutagenic
+Measurements,mutagenic,2243,1353
+,non-mutagenic,1757,2717
diff --git a/tables/lazar-all.csv b/tables/lazar-all.csv
new file mode 100644
index 0000000..c4db6a1
--- /dev/null
+++ b/tables/lazar-all.csv
@@ -0,0 +1,4 @@
+,,Predictions,
+,,mutagenic,non-mutagenic
+Measurements,mutagenic,3326,833
+,non-mutagenic,583,3039
diff --git a/tables/lazar-high-confidence.csv b/tables/lazar-high-confidence.csv
new file mode 100644
index 0000000..049c73b
--- /dev/null
+++ b/tables/lazar-high-confidence.csv
@@ -0,0 +1,4 @@
+,,Predictions,
+,,mutagenic,non-mutagenic
+Measurements,mutagenic,2816,571
+,non-mutagenic,365,2138
diff --git a/tables/lazar-padel-all.csv b/tables/lazar-padel-all.csv
new file mode 100644
index 0000000..e2436f7
--- /dev/null
+++ b/tables/lazar-padel-all.csv
@@ -0,0 +1,4 @@
+,,Predictions,
+,,mutagenic,non-mutagenic
+Measurements,mutagenic,593,466
+,non-mutagenic,1253,1777
diff --git a/tables/lazar-padel-high-confidence.csv b/tables/lazar-padel-high-confidence.csv
new file mode 100644
index 0000000..1b551d9
--- /dev/null
+++ b/tables/lazar-padel-high-confidence.csv
@@ -0,0 +1,4 @@
+,,Predictions,
+,,mutagenic,non-mutagenic
+Measurements,mutagenic,593,466
+,non-mutagenic,1251,1771
diff --git a/tables/tensorflow-all.csv b/tables/tensorflow-all.csv
new file mode 100644
index 0000000..afd74c5
--- /dev/null
+++ b/tables/tensorflow-all.csv
@@ -0,0 +1,4 @@
+,,Predictions,
+,,mutagenic,non-mutagenic
+Measurements,mutagenic,2507,1528
+,non-mutagenic,1495,2550
diff --git a/tables/tensorflow-selected.csv b/tables/tensorflow-selected.csv
new file mode 100644
index 0000000..6c0f6e5
--- /dev/null
+++ b/tables/tensorflow-selected.csv
@@ -0,0 +1,4 @@
+,,Predictions,
+,,mutagenic,non-mutagenic
+Measurements,mutagenic,2453,1454
+,non-mutagenic,1549,2624