summaryrefslogtreecommitdiff
path: root/features/step_definitions/lazar_steps.rb
blob: a04915330db260f7c351b3efeba3e9d917b678b0 (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
When /^I create a lazar model for (.*)$/ do |feature_uri|
	training_uri = @uri
	#puts `curl #{training_uri}`
  resource = RestClient::Resource.new(File.join(@@config[:services]["opentox-algorithm"], "lazar"), :user => @@users[:users].keys[0], :password => @@users[:users].values[0])	
	@uri = resource.post :dataset_uri => training_uri, :feature_uri => feature_uri, :feature_generation_uri => File.join(@@config[:services]["opentox-algorithm"], "fminer")
	@task = OpenTox::Task.find(@uri)
	@resources << @uri
	#puts @uri.to_yaml
end

Then /^the model should predict (.*) for (.*)$/ do |activity,smiles|
	compound_uri = OpenTox::Compound.new(:smiles => smiles).uri
	#puts @uri
	#puts compound_uri
  resource = RestClient::Resource.new(@uri, :user => @@users[:users].keys[0], :password => @@users[:users].values[0])	
	prediction_rdf = resource.post :compound_uri => compound_uri#, :accept => "application/x-yaml"
	model = Redland::Model.new Redland::MemoryStore.new
	parser = Redland::Parser.new
	parser.parse_string_into_model(model,prediction_rdf,'/')

	puts prediction_rdf
	model.subjects(RDF['type'], OT['FeatureValue']).each do |v|
		feature = model.object(v,OT['feature'])
		feature_name = model.object(feature,DC['title']).to_s
		prediction = model.object(v,OT['value']).to_s if feature_name.match(/classification/)
	end
=begin
	model.subjects(RDF['type'], OT['FeatureValue']).each do |v|
		feature = model.object(v,OT['feature'])
		feature_name = model.object(feature,DC['title']).to_s
		prediction = model.object(v,OT['value']).to_s if feature_name.match(/classification/)
	end
=end
	puts prediction
	assert_equal activity.to_s, prediction
end