summaryrefslogtreecommitdiff
path: root/scripts/pa-table.rb
blob: 1b8ecc84319f3b1d8ef212b9645fdc58e7aa32a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#!/usr/bin/env ruby

# red groups
tab = []
File.read("data/pyrrolizidine-alkaloids/pa-groups.csv").each_line do |l|
  items = l.chomp.split(';')
  if items.first.empty?
    items[0] = "ID"
  else
    id = items.shift
    items.collect!{|i| i == "NA" ? 0 : 1}
    items = [id]+items
  end
  tab << items
end

tab[0] += ["CID","SMILES","Canonical SMILES","Measured","lazar-MP2D","lazar-MP2D-high-confidence","lazar-CDK","lazar-CDK-high-confidence"]

i = 0
File.read("data/pyrrolizidine-alkaloids/180920_PA_complete_SMILES.csv").each_line do |l|
  if i > 0
    id,cid,name,smi = l.chomp.split(";")
    tab[i] += [cid,'"'+smi+'"']
  end
  i += 1
end

i = 0
File.read("pyrrolizidine-alkaloids/mp2d/lazar/pa-mp2d-predictions.csv").each_line do |l|
  if i > 0
    id,cansmi,exp,mut,p0,p1,max_sim,nn = l.chomp.split(",")
    max_sim.to_f < 0.5? hc = "F" : hc = "T"
    hc = "" if mut.empty?
    tab[i] += ['"'+cansmi+'"',exp,mut,hc]
  end
  i += 1
end

i=1
File.read("pyrrolizidine-alkaloids/cdk/lazar/pa-cdk-predictions.csv").each_line do |l|
  #if i > 0
    cansmi,exp,mut,p0,p1,max_sim,nn = l.chomp.split(",")
    max_sim.to_f < 0.5? hc = "F" : hc = "T"
    hc = "" if mut.empty?
    tab[i] += [mut,hc]
  #end
  i += 1
end

=begin
Dir["pyrrolizidine-alkaloids/R/PA.*.outcome.csv"].each do |r|
  tab[0] << "R-"+r.sub('pyrrolizidine-alkaloids/R/PA.','').sub('.outcome.csv','')
  i = 0
  File.read(r).each_line do |l|
    if i > 0
      items = l.chomp.split(";")
      items.shift
      if items.uniq.include? "1"
        tab[i] << 1
      elsif items.uniq.include? "0"
        tab[i] << 0
      end
    end
    i += 1
  end
end
=end

Dir["pyrrolizidine-alkaloids/cdk/tensorflow/*.csv"].each do |r|
  tab[0] << "TF-"+r.sub('pyrrolizidine-alkaloids/tensorflow/pred.','').sub('.v5-ext-Padel-2D.csv','').sub("lr2","LR-scikit").sub("lr","LR-sgd").sub("rf","RF").sub("nn","NN").sub("svm","SVM")
  i = 0
  File.read(r).each_line do |l|
    if i > 0
      id,pred = l.chomp.split(",")
      pred.to_f > 0.5 ? tab[i] << 1 : tab[i] << 0
    end
    i += 1
  end
end

Dir["pyrrolizidine-alkaloids/cdk/tensorflow/*.csv"].each do |r|
  tab[0] << "TF-"+r.sub('pyrrolizidine-alkaloids/tensorflow/pred.','').sub('.v5-ext-Padel-2D.csv','').sub("lr2","LR-scikit").sub("lr","LR-sgd").sub("rf","RF").sub("nn","NN").sub("svm","SVM")
  i = 0
  File.read(r).each_line do |l|
    if i > 0
      id,pred = l.chomp.split(",")
      pred.to_f > 0.5 ? tab[i] << 1 : tab[i] << 0
    end
    i += 1
  end
end
puts tab.collect{|r| r.join(",")}.join("\n")