summaryrefslogtreecommitdiff
path: root/scripts/pa-summary.rb
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/pa-summary.rb')
-rwxr-xr-xscripts/pa-summary.rb190
1 files changed, 190 insertions, 0 deletions
diff --git a/scripts/pa-summary.rb b/scripts/pa-summary.rb
new file mode 100755
index 0000000..0715a6c
--- /dev/null
+++ b/scripts/pa-summary.rb
@@ -0,0 +1,190 @@
+#!/usr/bin/env ruby
+require 'yaml'
+
+summary = {
+ :n => 0,
+ :lazar => {
+ :mp2d => {
+ :all => {
+ :n => 0,
+ :mut => 0,
+ :non_mut => 0
+ },
+ :high_confidence => {
+ :n => 0,
+ :mut => 0,
+ :non_mut => 0
+ }
+ },
+ :padel => {
+ :all => {
+ :n => 0,
+ :mut => 0,
+ :non_mut => 0
+ },
+ :high_confidence => {
+ :n => 0,
+ :mut => 0,
+ :non_mut => 0
+ }
+ },
+ },
+ :r => {
+ :rf => {
+ :n => 0,
+ :mut => 0,
+ :non_mut => 0
+ },
+ :svm => {
+ :n => 0,
+ :mut => 0,
+ :non_mut => 0
+ },
+ :dl => {
+ :n => 0,
+ :mut => 0,
+ :non_mut => 0
+ },
+ },
+ :tf => {
+ :rf => {
+ :n => 0,
+ :mut => 0,
+ :non_mut => 0
+ },
+ :lr_sgd => {
+ :n => 0,
+ :mut => 0,
+ :non_mut => 0
+ },
+ :lr_scikit => {
+ :n => 0,
+ :mut => 0,
+ :non_mut => 0
+ },
+ :nn => {
+ :n => 0,
+ :mut => 0,
+ :non_mut => 0
+ },
+ },
+}
+
+n = 0
+File.read(ARGV[0]).each_line do |l|
+ unless l.match("SMILES")
+ id,cid,smi,cansmi,exp,lazar_MP2D,lazar_MP2D_high_confidence,lazar_PaDEL,lazar_PaDEL_high_confidence,r_DL,r_RF,r_SVM,tf_lr_sgd,tf_lr_scikit,tf_NN,tf_RF = l.chomp.split(",")
+
+ if lazar_MP2D == "1"
+ summary[:lazar][:mp2d][:all][:n] += 1
+ summary[:lazar][:mp2d][:all][:mut] += 1
+ if lazar_MP2D_high_confidence == "T"
+ summary[:lazar][:mp2d][:high_confidence][:n] += 1
+ summary[:lazar][:mp2d][:high_confidence][:mut] += 1
+ end
+ elsif lazar_MP2D == "0"
+ summary[:lazar][:mp2d][:all][:n] += 1
+ summary[:lazar][:mp2d][:all][:non_mut] += 1
+ if lazar_MP2D_high_confidence == "T"
+ summary[:lazar][:mp2d][:high_confidence][:n] += 1
+ summary[:lazar][:mp2d][:high_confidence][:non_mut] += 1
+ end
+ end
+ if lazar_PaDEL == "1"
+ summary[:lazar][:padel][:all][:n] += 1
+ summary[:lazar][:padel][:all][:mut] += 1
+ if lazar_PaDEL_high_confidence == "T"
+ summary[:lazar][:padel][:high_confidence][:n] += 1
+ summary[:lazar][:padel][:high_confidence][:mut] += 1
+ end
+ elsif lazar_PaDEL == "0"
+ summary[:lazar][:padel][:all][:n] += 1
+ summary[:lazar][:padel][:all][:non_mut] += 1
+ if lazar_PaDEL_high_confidence == "T"
+ summary[:lazar][:padel][:high_confidence][:n] += 1
+ summary[:lazar][:padel][:high_confidence][:non_mut] += 1
+ end
+ end
+ if r_DL == "1"
+ summary[:r][:dl][:n] += 1
+ summary[:r][:dl][:mut] += 1
+ elsif r_DL == "0"
+ summary[:r][:dl][:n] += 1
+ summary[:r][:dl][:non_mut] += 1
+ end
+ if r_RF == "1"
+ summary[:r][:rf][:n] += 1
+ summary[:r][:rf][:mut] += 1
+ elsif r_RF == "0"
+ summary[:r][:rf][:n] += 1
+ summary[:r][:rf][:non_mut] += 1
+ end
+ if r_SVM == "1"
+ summary[:r][:svm][:n] += 1
+ summary[:r][:svm][:mut] += 1
+ elsif r_SVM == "0"
+ summary[:r][:svm][:n] += 1
+ summary[:r][:svm][:non_mut] += 1
+ end
+ if tf_lr_sgd == "1"
+ summary[:tf][:lr_sgd][:n] += 1
+ summary[:tf][:lr_sgd][:mut] += 1
+ elsif tf_lr_sgd == "0"
+ summary[:tf][:lr_sgd][:n] += 1
+ summary[:tf][:lr_sgd][:non_mut] += 1
+ end
+ if tf_lr_scikit == "1"
+ summary[:tf][:lr_scikit][:n] += 1
+ summary[:tf][:lr_scikit][:mut] += 1
+ elsif tf_lr_scikit == "0"
+ summary[:tf][:lr_scikit][:n] += 1
+ summary[:tf][:lr_scikit][:non_mut] += 1
+ end
+ if tf_RF == "1"
+ summary[:tf][:rf][:n] += 1
+ summary[:tf][:rf][:mut] += 1
+ elsif tf_RF == "0"
+ summary[:tf][:rf][:n] += 1
+ summary[:tf][:rf][:non_mut] += 1
+ end
+ if tf_NN == "1"
+ summary[:tf][:nn][:n] += 1
+ summary[:tf][:nn][:mut] += 1
+ elsif tf_NN == "0"
+ summary[:tf][:nn][:n] += 1
+ summary[:tf][:nn][:non_mut] += 1
+ end
+ summary[:n] += 1
+ end
+end
+summary[:lazar][:mp2d][:all][:n_perc] = (100.0*summary[:lazar][:mp2d][:all][:n]/summary[:n]).round
+summary[:lazar][:mp2d][:all][:mut_perc] = (100.0*summary[:lazar][:mp2d][:all][:mut]/summary[:lazar][:mp2d][:all][:n]).round
+summary[:lazar][:mp2d][:all][:non_mut_perc] = (100.0*summary[:lazar][:mp2d][:all][:non_mut]/summary[:lazar][:mp2d][:all][:n]).round
+summary[:lazar][:mp2d][:high_confidence][:n_perc] = (100.0*summary[:lazar][:mp2d][:high_confidence][:n]/summary[:n]).round
+summary[:lazar][:mp2d][:high_confidence][:mut_perc] = (100.0*summary[:lazar][:mp2d][:high_confidence][:mut]/summary[:lazar][:mp2d][:high_confidence][:n]).round
+summary[:lazar][:mp2d][:high_confidence][:non_mut_perc] = (100.0*summary[:lazar][:mp2d][:high_confidence][:non_mut]/summary[:lazar][:mp2d][:high_confidence][:n]).round
+summary[:lazar][:padel][:all][:n_perc] = (100.0*summary[:lazar][:padel][:all][:n]/summary[:n]).round
+summary[:lazar][:padel][:all][:mut_perc] = (100.0*summary[:lazar][:padel][:all][:mut]/summary[:lazar][:padel][:all][:n]).round
+summary[:lazar][:padel][:all][:non_mut_perc] = (100.0*summary[:lazar][:padel][:all][:non_mut]/summary[:lazar][:padel][:all][:n]).round
+summary[:lazar][:padel][:high_confidence][:n_perc] = (100.0*summary[:lazar][:padel][:high_confidence][:n]/summary[:n]).round
+if summary[:lazar][:padel][:high_confidence][:n] == 0
+ summary[:lazar][:padel][:high_confidence][:mut_perc] = 0
+ summary[:lazar][:padel][:high_confidence][:non_mut_perc] = 0
+else
+ summary[:lazar][:padel][:high_confidence][:mut_perc] = (100.0*summary[:lazar][:padel][:high_confidence][:mut]/summary[:lazar][:padel][:high_confidence][:n]).round
+ summary[:lazar][:padel][:high_confidence][:non_mut_perc] = (100.0*summary[:lazar][:padel][:high_confidence][:non_mut]/summary[:lazar][:padel][:high_confidence][:n]).round
+end
+
+[:rf,:svm,:dl].each do |a|
+ summary[:r][a][:n_perc] = (100.0*summary[:r][a][:n]/summary[:n]).round
+ summary[:r][a][:mut_perc] = (100.0*summary[:r][a][:mut]/summary[:r][a][:n]).round
+ summary[:r][a][:non_mut_perc] = (100.0*summary[:r][a][:non_mut]/summary[:r][a][:n]).round
+end
+
+[:rf,:lr_sgd,:lr_scikit,:nn].each do |a|
+ summary[:tf][a][:n_perc] = (100.0*summary[:tf][a][:n]/summary[:n]).round
+ summary[:tf][a][:mut_perc] = (100.0*summary[:tf][a][:mut]/summary[:tf][a][:n]).round
+ summary[:tf][a][:non_mut_perc] = (100.0*summary[:tf][a][:non_mut]/summary[:tf][a][:n]).round
+end
+summary = {:pa => summary}
+puts summary.to_yaml