summaryrefslogtreecommitdiff
path: root/example.rb
blob: 80ae3b05c46367d8e645c0359c72c644056a6c0d (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

class Example
  
  @@file=File.new("data/hamster_carcinogenicity.owl","r")
  @@model=File.join @@config[:services]["opentox-model"],"1"
  @@feature="http://www.epa.gov/NCCT/dsstox/CentralFieldDef.html#ActivityOutcome_CPDBAS_Hamster"
  @@alg = File.join @@config[:services]["opentox-algorithm"],"lazar"
  @@alg_params = "feature_generation_uri="+File.join(@@config[:services]["opentox-algorithm"],"fminer")
  @@data=File.join @@config[:services]["opentox-dataset"],"1"
  @@train_data=File.join @@config[:services]["opentox-dataset"],"2"
  @@test_data=File.join @@config[:services]["opentox-dataset"],"3"
  
  def self.transform_example
  
    file = File.new("EXAMPLES", "r")
    res = ""
    while (line = file.gets) 
      res += line
    end
    file.close
    
    sub = { "validation_service" => @@config[:services]["opentox-validation"], 
            "validation_id" => "1",
            "model_uri" => @@model,
            "dataset_uri" => @@data,
            "training_dataset_uri" => @@train_data,
            "test_dataset_uri" => @@test_data,
            "prediction_feature" => @@feature,
            "algorithm_uri" => @@alg,
            "algorithm_params" => @@alg_params,
            "crossvalidation_id" => "1",}
    
    sub.each do |k,v|
      res.gsub!(/<#{k}>/,v)
    end
    res
  end
  
  def self.delete_all(uri_list_service)
    uri_list = RestClient.get(uri_list_service)
    uri_list.split("\n").each do |uri|
      RestClient.delete(uri)
    end
  end
  
  def self.prepare_example_resources
    
    delete_all(@@config[:services]["opentox-dataset"])
    data = File.read(@@file.path)
    data_uri = RestClient.post @@config[:services]["opentox-dataset"], data, :content_type => "application/rdf+xml"
    puts "uploaded dataset "+data_uri
    raise "failed to prepare demo" unless data_uri==@@data
    
    Lib::Validation.auto_migrate!
    delete_all(@@config[:services]["opentox-model"])
    vali_uri = RestClient.post File.join(@@config[:services]["opentox-validation"],'/validation/training_test_split'), { :dataset_uri => data_uri,
                                                         :algorithm_uri => @@alg,
                                                         :prediction_feature => @@feature,
                                                         :algorithm_params => @@alg_params }
    puts "created validation via training test split "+vali_uri
    raise "failed to prepare demo" unless vali_uri==File.join(@@config[:services]["opentox-validation"],'/validation/1')
    
    Lib::Crossvalidation.auto_migrate!
    cv_uri = RestClient.post File.join(@@config[:services]["opentox-validation"],'/crossvalidation'), { :dataset_uri => data_uri,
                                                         :algorithm_uri => @@alg,
                                                         :prediction_feature => @@feature,
                                                         :algorithm_params => @@alg_params,
                                                         :num_folds => 5, :stratified => false }
    puts "created crossvalidation "+cv_uri
    raise "failed to prepare demo" unless cv_uri==File.join(@@config[:services]["opentox-validation"],'/crossvalidation/1')
    
  end
end