From be2c619e78dc87b3f13c2a456f156e1a01133b3c Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Mon, 23 May 2011 15:05:27 +0000 Subject: opentox-ruby version fixed --- application.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/application.rb b/application.rb index 98d7fea..67a46d1 100644 --- a/application.rb +++ b/application.rb @@ -1,7 +1,7 @@ ['rubygems', "haml", "sass", "rack-flash"].each do |lib| require lib end -gem "opentox-ruby", "~> 1" +gem "opentox-ruby", "~> 2" require 'opentox-ruby' gem 'sinatra-static-assets' require 'sinatra/static_assets' @@ -370,8 +370,8 @@ post '/predict/?' do # post chemical name to model @predictions << { :title => model.name, :model_uri => model.uri, - :prediction => prediction.metadata[OT.prediction], - :confidence => prediction.metadata[OT.confidence] + :prediction => prediction_dataset.value(@compound), + :confidence => prediction_dataset.confidence(@compound) } end end -- cgit v1.2.3 From b06b11b6af4da2b1a34e7333c16b88ec38768536 Mon Sep 17 00:00:00 2001 From: Andreas Maunz Date: Tue, 24 May 2011 13:25:57 +0200 Subject: Changed hamster to true/false schema --- public/hamster_carcinogenicity.csv | 172 ++++++++++++++++++------------------- 1 file changed, 86 insertions(+), 86 deletions(-) diff --git a/public/hamster_carcinogenicity.csv b/public/hamster_carcinogenicity.csv index f087233..52d89a3 100644 --- a/public/hamster_carcinogenicity.csv +++ b/public/hamster_carcinogenicity.csv @@ -1,86 +1,86 @@ -SMILES, hamster_carcinogenicity -CC=O,1 -C12C3=C(C=CC=C3)CC1=CC(=CC=2)NC(C)=O,1 -O=C(N)\C(C2=CC=CO2)=C/C1=CC=C([N+]([O-])=O)O1,1 -C1(N=CNN=1)N,0 -Br(=O)(=O)[O-].[K+],1 -[Cl-].[Cd+2].[Cl-],0 -O=S(=O)([O-])[O-].[Cd+2],0 -ClC1=CC(=NC(=N1)SCC(=O)O)NC2=CC=CC(=C2C)C,0 -ClCOC,1 -C=C(Cl)C=C,0 -Clc1ccc(cc1)c2ccc(COC(C)(C)C(O)=O)cc2,0 -O=C1OC2=C(C=CC=C2)C=C1,0 -ClC(=C(C1=CC=C(C=C1)Cl)C2=CC=C(C=C2)Cl)Cl,1 -ClC(C(C1=CC=C(C=C1)Cl)C2=CC=C(C=C2)Cl)(Cl)Cl,0 -C=CCN(CC=C)N=O,1 -Cl\C2=C(/Cl)C3(Cl)C1C4CC(C1C2(Cl)C3(Cl)Cl)C5OC45,0 -O=C(N(C)C)Cl,1 -CN(C)N,1 -N(NC)C.[H]Cl.[H]Cl,1 -CCO,0 -O=C(N(CC)N=O)NCCO,1 -O=C(N(CC)N=O)NCC(=O)C,1 -C=O,0 -[O-][N+](=O)C1=CC=C(O1)C2=CSC(=N2)NNC=O,1 -O=CC1=CC=CO1,0 -OCC1CO1,1 -O=C2C1=C(OC)C=C(OC)C(Cl)=C1O[C@]32C(OC)=CC(C[C@@](C)3[H])=O,0 -ClC1=C(C(=C(C(=C1Cl)Cl)Cl)Cl)Cl,1 -NN,1 -OS(=O)(=O)O.NN,1 -CC(=O)N(O)C1=CC2=C(C=C1)C3=CC=CC=C3C2,1 -OCCNN,0 -O=C(C1=CC=NC=C1)NN,0 -OC(=O)C1=CC=NC=C1,0 -O=C(NC1=CC=CC(=C1)Cl)OC(C)C,0 -O=C(NC1=CC=CC=C1)OC(C)C,0 -[O-]C(C)=O.[O-]C(C)=O.[Pb+2].[OH-].[OH-].[Pb+2].[OH-].[OH-].[Pb+2],0 -CN(C)CCN(CC2=CC=CS2)C1=NC=CC=C1.Cl,0 -NC1=C2C(=NC(=N1)N)N=CC(=N2)CN(C3=CC=C(C=C3)C(=O)N[C@@H](CCC(=O)O)C(=O)O)C,0 -CN(N)C=O,1 -O=C(C(=C)C)OC,0 -CNN,1 -O=C(C1=CC=CN=C1)CCCN(N=O)C,0 -CC1=CC(=O)NC(=S)N1,1 -CC(C(O)=O)(OC1=CC=C(C=C1)C2CCCC3=C2C=CC=C3)C,0 -O=N[O-].[Na+],0 -[O-][N+](C1=CC=C(C2=CSC(NC(C)=O)=N2)O1)=O,1 -[O-][N+](=O)C1=CC=C(O1)C2=CSC(=N2)NC=O,1 -O=[N+](C1=CC=C2C3=C1C=CC=C3CC2)[O-],0 -N(CC(CO)O)(CC(O)C)N=O,1 -N(CC(CO)O)(CC(C)=O)N=O,1 -N(CC(CO)O)(CCO)N=O,0 -O=C(C)CN(N=O)CCO,1 -C1C(N(C(CN1N=O)C)C)C,1 -N(CC(C)=O)(CC=C)N=O,1 -N(CC(CO)O)(C)N=O,1 -O=NN1CCOCC1,1 -N1C=CC=C(C=1)C2N(N=O)CCC2,1 -C1=CC=C(C=[N+]1[O-])C2CCCN2N=O,0 -O=NN1CCCCC1,1 -O=NN1CCCC1,1 -O=C(N(CC(C)=O)N=O)NCCCl,1 -N(C(=O)N)(N=O)CC(C)=O,1 -C1(CCN=C=S)=CC=CC=C1,0 -O=C1C(C2=CC=CC=C2)(C(=O)NC(=O)N1)CC,0 -C1=C2C(=CC=C1NC3=CC=CC=C3)C=CC=C2,0 -O=C1N2C(C3=C(C=CC=C3)CC2)CN(C1)C(=O)C4CCCCC4,0 -C1(=CC(=C(O)C=C1)O)C(O)=O,0 -O=C1C2=C(C=C(C=C2O)O)O/C(=C\1O)C3=CC(=C(C=C3)O)O.O.O,0 -C1=C(C=CC(=C1)C(C2=CC=C(N)C(=C2)C)=C3C=CC(=N)C=C3)N.[H]Cl,0 -C(C1=CC=C(C=C1)N)(C2=CC=C(C=C2)N)=C3C=CC(C=C3)=N.[H]Cl,0 -OC2=CC1=C(C(O)=C2)C(C(O[C@@H]4O[C@@H]([C@H]([C@H](O)[C@H]4O)O)CO[C@H]3[C@H](O)[C@H](O)[C@H]([C@H](C)O3)O)=C(C5=CC(O)=C(C=C5)O)O1)=O,0 -ClC(=CCl)Cl,0 -NC(=O)OCC,1 -C=CCl,1 -N#[N+]C1=CC=CC=C1.F[B-](F)(F)F,0 -C1(CN(CC(N1N=O)C)N=O)C,1 -N(CCN(C)C)(C)N=O,1 -C1(CN(N=O)CC(O1)C)C,1 -O1C(N(CC1C)N=O)=O,1 -CCOC(=O)N(C)N=O,1 -C1N(COC1)N=O,1 -O=C(N(CCC1=CC=CC=C1)N=O)N,1 -O=NN1CCC1,1 -F[B-](F)(F)F.[Na+],0 +SMILES, Hamster Carcinogenicity +CC=O,true +C12C3=C(C=CC=C3)CC1=CC(=CC=2)NC(C)=O,true +O=C(N)\C(C2=CC=CO2)=C/C1=CC=C([N+]([O-])=O)O1,true +C1(N=CNN=1)N,false +Br(=O)(=O)[O-].[K+],true +[Cl-].[Cd+2].[Cl-],false +O=S(=O)([O-])[O-].[Cd+2],false +ClC1=CC(=NC(=N1)SCC(=O)O)NC2=CC=CC(=C2C)C,false +ClCOC,true +C=C(Cl)C=C,false +Clc1ccc(cc1)c2ccc(COC(C)(C)C(O)=O)cc2,false +O=C1OC2=C(C=CC=C2)C=C1,false +ClC(=C(C1=CC=C(C=C1)Cl)C2=CC=C(C=C2)Cl)Cl,true +ClC(C(C1=CC=C(C=C1)Cl)C2=CC=C(C=C2)Cl)(Cl)Cl,false +C=CCN(CC=C)N=O,true +Cl\C2=C(/Cl)C3(Cl)C1C4CC(C1C2(Cl)C3(Cl)Cl)C5OC45,false +O=C(N(C)C)Cl,true +CN(C)N,true +N(NC)C.[H]Cl.[H]Cl,true +CCO,false +O=C(N(CC)N=O)NCCO,true +O=C(N(CC)N=O)NCC(=O)C,true +C=O,false +[O-][N+](=O)C1=CC=C(O1)C2=CSC(=N2)NNC=O,true +O=CC1=CC=CO1,false +OCC1CO1,true +O=C2C1=C(OC)C=C(OC)C(Cl)=C1O[C@]32C(OC)=CC(C[C@@](C)3[H])=O,false +ClC1=C(C(=C(C(=C1Cl)Cl)Cl)Cl)Cl,true +NN,true +OS(=O)(=O)O.NN,true +CC(=O)N(O)C1=CC2=C(C=C1)C3=CC=CC=C3C2,true +OCCNN,false +O=C(C1=CC=NC=C1)NN,false +OC(=O)C1=CC=NC=C1,false +O=C(NC1=CC=CC(=C1)Cl)OC(C)C,false +O=C(NC1=CC=CC=C1)OC(C)C,false +[O-]C(C)=O.[O-]C(C)=O.[Pb+2].[OH-].[OH-].[Pb+2].[OH-].[OH-].[Pb+2],false +CN(C)CCN(CC2=CC=CS2)C1=NC=CC=C1.Cl,false +NC1=C2C(=NC(=N1)N)N=CC(=N2)CN(C3=CC=C(C=C3)C(=O)N[C@@H](CCC(=O)O)C(=O)O)C,false +CN(N)C=O,true +O=C(C(=C)C)OC,false +CNN,true +O=C(C1=CC=CN=C1)CCCN(N=O)C,false +CC1=CC(=O)NC(=S)N1,true +CC(C(O)=O)(OC1=CC=C(C=C1)C2CCCC3=C2C=CC=C3)C,false +O=N[O-].[Na+],false +[O-][N+](C1=CC=C(C2=CSC(NC(C)=O)=N2)O1)=O,true +[O-][N+](=O)C1=CC=C(O1)C2=CSC(=N2)NC=O,true +O=[N+](C1=CC=C2C3=C1C=CC=C3CC2)[O-],false +N(CC(CO)O)(CC(O)C)N=O,true +N(CC(CO)O)(CC(C)=O)N=O,true +N(CC(CO)O)(CCO)N=O,false +O=C(C)CN(N=O)CCO,true +C1C(N(C(CN1N=O)C)C)C,true +N(CC(C)=O)(CC=C)N=O,true +N(CC(CO)O)(C)N=O,true +O=NN1CCOCC1,true +N1C=CC=C(C=1)C2N(N=O)CCC2,true +C1=CC=C(C=[N+]1[O-])C2CCCN2N=O,false +O=NN1CCCCC1,true +O=NN1CCCC1,true +O=C(N(CC(C)=O)N=O)NCCCl,true +N(C(=O)N)(N=O)CC(C)=O,true +C1(CCN=C=S)=CC=CC=C1,false +O=C1C(C2=CC=CC=C2)(C(=O)NC(=O)N1)CC,false +C1=C2C(=CC=C1NC3=CC=CC=C3)C=CC=C2,false +O=C1N2C(C3=C(C=CC=C3)CC2)CN(C1)C(=O)C4CCCCC4,false +C1(=CC(=C(O)C=C1)O)C(O)=O,false +O=C1C2=C(C=C(C=C2O)O)O/C(=C\1O)C3=CC(=C(C=C3)O)O.O.O,false +C1=C(C=CC(=C1)C(C2=CC=C(N)C(=C2)C)=C3C=CC(=N)C=C3)N.[H]Cl,false +C(C1=CC=C(C=C1)N)(C2=CC=C(C=C2)N)=C3C=CC(C=C3)=N.[H]Cl,false +OC2=CC1=C(C(O)=C2)C(C(O[C@@H]4O[C@@H]([C@H]([C@H](O)[C@H]4O)O)CO[C@H]3[C@H](O)[C@H](O)[C@H]([C@H](C)O3)O)=C(C5=CC(O)=C(C=C5)O)O1)=O,false +ClC(=CCl)Cl,false +NC(=O)OCC,true +C=CCl,true +N#[N+]C1=CC=CC=C1.F[B-](F)(F)F,false +C1(CN(CC(N1N=O)C)N=O)C,true +N(CCN(C)C)(C)N=O,true +C1(CN(N=O)CC(O1)C)C,true +O1C(N(CC1C)N=O)=O,true +CCOC(=O)N(C)N=O,true +C1N(COC1)N=O,true +O=C(N(CCC1=CC=CC=C1)N=O)N,true +O=NN1CCC1,true +F[B-](F)(F)F.[Na+],false -- cgit v1.2.3 From 55b4ae338d1e07ac3325521d6f10ca6792d8b46f Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Tue, 24 May 2011 12:22:54 +0000 Subject: error message if prediction value nil --- application.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/application.rb b/application.rb index 67a46d1..c49242a 100644 --- a/application.rb +++ b/application.rb @@ -366,6 +366,11 @@ post '/predict/?' do # post chemical name to model :title => model.name, :error => prediction.metadata[OT.error] } + elsif prediction_dataset.value(@compound).nil? + @predictions << { + :title => model.name, + :error => "Not enough similar compounds in training dataset." + } else @predictions << { :title => model.name, -- cgit v1.2.3 From f382c9ca28901984ede61c20914260ec944cb20a Mon Sep 17 00:00:00 2001 From: mguetlein Date: Wed, 25 May 2011 14:47:40 +0200 Subject: fixing nil error --- application.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application.rb b/application.rb index c49242a..75d4c70 100644 --- a/application.rb +++ b/application.rb @@ -314,7 +314,7 @@ post '/models' do # create a new model rescue => e LOGGER.debug "Model validation failed with #{e.message}." @model.save # to avoid dirty models - @model.update :warnings => @model.warnings + "\nModel validation failed with #{e.message}.", :status => "Error", :error_messages => e.message + @model.update :warnings => @model.warnings.to_s+"\nModel validation failed with #{e.message}.", :status => "Error", :error_messages => e.message end else -- cgit v1.2.3 From 824436bb5dcca97f58b855a0b97e2966c10a4361 Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Mon, 30 May 2011 10:11:34 +0000 Subject: cached predictions fixed --- application.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application.rb b/application.rb index 75d4c70..4d00475 100644 --- a/application.rb +++ b/application.rb @@ -350,7 +350,7 @@ post '/predict/?' do # post chemical name to model confidence = nil title = nil db_activities = [] - lazar = OpenTox::Model::Lazar.new model.uri + lazar = OpenTox::Model::Lazar.find model.uri, subjectid prediction_dataset_uri = lazar.run({:compound_uri => @compound.uri, :subjectid => subjectid}) prediction_dataset = OpenTox::LazarPrediction.find(prediction_dataset_uri, subjectid) if prediction_dataset.metadata[OT.hasSource].match(/dataset/) -- cgit v1.2.3 From 80a751445012d520beefa156e5f886695ff8765d Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Mon, 30 May 2011 10:36:35 +0000 Subject: cached predictions fixed --- application.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application.rb b/application.rb index 4d00475..75d4c70 100644 --- a/application.rb +++ b/application.rb @@ -350,7 +350,7 @@ post '/predict/?' do # post chemical name to model confidence = nil title = nil db_activities = [] - lazar = OpenTox::Model::Lazar.find model.uri, subjectid + lazar = OpenTox::Model::Lazar.new model.uri prediction_dataset_uri = lazar.run({:compound_uri => @compound.uri, :subjectid => subjectid}) prediction_dataset = OpenTox::LazarPrediction.find(prediction_dataset_uri, subjectid) if prediction_dataset.metadata[OT.hasSource].match(/dataset/) -- cgit v1.2.3 From 58bf485d18fc94e86365e03f24a62cb46977bd50 Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Tue, 31 May 2011 11:10:18 +0000 Subject: regression example dataset added --- public/EPAFHM.csv | 618 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ public/EPAFHM.xls | Bin 0 -> 55808 bytes views/help.haml | 20 +- 3 files changed, 634 insertions(+), 4 deletions(-) create mode 100644 public/EPAFHM.csv create mode 100644 public/EPAFHM.xls diff --git a/public/EPAFHM.csv b/public/EPAFHM.csv new file mode 100644 index 0000000..9092abc --- /dev/null +++ b/public/EPAFHM.csv @@ -0,0 +1,618 @@ +"STRUCTURE_SMILES","LC50_mmol" +"C1=CC(C=O)=CC(OC)=C1OCCCCCC",1.13E-02 +"C1(OC)=C([N+]([O-])=O)C(C=O)=CC(Br)=C1O",2.66E-01 +"CCCCCCCCOC(=O)C1=CC=CC(C(=O)OCCCCCCCC)=C1", +"C1=CC(Cl)=CC=C1OC2=C([N+](=O)[O-])C=CC=C2",7.69E-03 +"CC1=C(NC=O)C=CC=C1Cl",2.75E-01 +"CCCCOC(=O)C1=CC=CC(C(=O)OCCCC)=C1",3.23E-03 +"C(C1=CC=CC=C1)(C2=CC=CC=C2)(O)C#C",5.33E-02 +"CCCSCCSCCC",4.22E-02 +"CCCCCCCCOC(=O)C1=CC=C(C(=O)OCCCCCCCC)C=C1", +"OCCCCOC(=O)C1=CC=CC=C1C(=O)OCCCCOC(=O)C2=CC=CC=C2C(=O)OCCCCO", +"CCCSCCCCSCCC",1.45E-02 +"C1([N+](=O)[O-])=CC=C(C)C=C1OP(=O)(OC2=C([N+](=O)[O-])C=CC(C)=C2)OC3=C([N+]([O-])=O)C=CC(C)=C3", +"C1=C([N+]([O-])=O)C=CC=C1P(=O)(C2=CC([N+](=O)[O-])=CC=C2)C3=CC([N+](=O)[O-])=CC=C3", +"ClCCOC(=O)NC1CCCCC1",1.70E-01 +"O=C1C(C2=CC=CC=C2)(C(=O)NC(=O)N1)CC",2.08E+00 +"OC1=C(C=C(C=C1)[N+](=O)[O-])[N+](=O)[O-]",5.92E-02 +"NC(=O)OCC",5.88E+01 +"[O-]C(C1=CC=CC=C1O)=O.[Na+]",1.25E+01 +"C1=CC=CC=C1C(=O)N",5.46E+00 +"CC[N+](CC)(CC)CC1(=CC=CC=C1).[Cl-]",7.07E-01 +"CN(C)N",1.31E-01 +"CC(C(C(NC([O-])=N1)=O)(C1=O)CC)CCC.[Na+]",1.99E-01 +"N1C(=O)C(CC)(CCC(C)C)C(=O)NC1=O",3.77E-01 +"O=C1C2=C(N=CN2C)N(C(=O)N1C)C",7.78E-01 +"C1=CC=C2C(=C1)C(=O)C(C)=CC2=O",6.39E-04 +"OC1=C(Cl)C(Cl)=C(Cl)C=C1Cl",4.44E-03 +"OC1=CC(C)=C(Cl)C=C1",3.84E-02 +"[H]Cl.C1=CC=CC=C1CC2=NCCN2",1.80E+00 +"O=S(O)(O)=O.C1(=CC=CC=C1CC(N)C).C2=CC=CC=C2CC(N)C",7.82E-02 +"O(CC)CC",3.45E+01 +"O=C2N5[C@@]3([H])[C@@]1([H])[C@](C[C@]4([H])N(C7)CC[C@]34C6=C5C=CC=C6)([H])C7=CCO[C@]([H])1C2.O=C9N%12[C@@]%10([H])[C@@]8([H])[C@](C[C@]%11([H])N(C%14)CC[C@]%10%11C%13=C%12C=CC=C%13)([H])C%14=CCO[C@]([H])8C9.O=S(O)(O)=O",1.11E-03 +"NC1=CC=CC=C1",1.13E+00 +"O=C(OC1=C2C(=CC=C1)C=CC=C2)NC",4.35E-02 +"CCO",3.19E+02 +"C1(=NC=CC=C1C2CCCN2C).OS(O)(=O)=O",5.30E-02 +"C1(O)=CC=CC=C1C(=O)N",7.36E-01 +"O=C1NC(=O)NC=C1", +"CCCCCC=O",1.75E-01 +"O=C1OC2=CC=CC=C2C(O)=C1CC3=C(O)C4=CC=CC=C4OC3=O",1.52E-02 +"C1(C=O)=CC=C(OC2=CC=CC=C2)C=C1",2.32E-02 +"CO",9.17E+02 +"OC(C)C",1.44E+02 +"CC(=O)C",1.23E+02 +"ClC(Cl)Cl",5.92E-01 +"CS(=O)C",4.35E+02 +"ClC(C(Cl)(Cl)Cl)(Cl)Cl",6.00E-03 +"OC1=C(C=C(C(=C1CC2=C(C(=CC(=C2Cl)Cl)Cl)O)Cl)Cl)Cl",5.16E-05 +"C1=CC(=CC=C1N)C(=O)CC",9.79E-01 +"OCCC",7.57E+01 +"CCCCO",2.33E+01 +"CCCCCO",5.36E+00 +"C1=CC=CC=C1",2.25E-01 +"CC(Cl)(Cl)Cl",3.55E-01 +"[S-]C1=NC(C(C(C)CCC)(CC)C(N1)=O)=O.[Na+]",9.91E-02 +"CC#N",4.01E+01 +"CC=O",7.67E-01 +"ClCCl",3.89E+00 +"IC(I)I",7.42E-03 +"[N+](C)(C)(C)C.[Cl-]",4.22E+00 +"CC(C)(C)O",8.65E+01 +"C(F)(F)(F)CO",1.19E+00 +"CC(=O)C(C)(C)C",8.69E-01 +"ClC(C(Cl)Cl)(Cl)Cl",3.72E-02 +"CC1(C)NC(=O)NC1=O",1.29E+02 +"CCC(O)(C)CC",6.58E+00 +"C#CC(O)(C)CC",1.24E+01 +"C1CCCC(C#C)(O)C1",2.06E+00 +"CCCCOCCOP(=O)(OCCOCCCC)OCCOCCCC",2.81E-02 +"OCC(C)C",1.93E+01 +"CC(Cl)CCl",1.12E+00 +"NCC(N)C",1.36E+01 +"CC(O)CC",4.95E+01 +"CCC(=O)C",4.47E+01 +"OC(C)CN",3.36E+01 +"ClC(CCl)Cl",6.12E-01 +"ClC(=CCl)Cl",3.36E-01 +"CC(=O)OC",4.82E+00 +"ClC(C(Cl)Cl)Cl",1.21E-01 +"C1(C)(C)CCCC(C)=C1C=CC(C)=O",2.65E-02 +"ClC1=C(O)C(Cl)=CC(=C1)C(C2=CC(Cl)=C(O)C(=C2)Cl)(C)C",3.63E-03 +"C(C1C=CC(=CC=1)O)(CC)(C)C",1.58E-02 +"C1CC(CCC1(N)C)C(C)(N)C",3.83E-01 +"ClC(Cl)C1=C(Cl)C=CC=C1Cl",4.22E-03 +"C1=CC=C2C=CC=C3C2=C1CC3",1.12E-02 +"CC1=CNC2=C1C=CC=C2",6.74E-02 +"O=C([C@](C(C=C4OC)=C(C=C4OC)OC3)([H])[C@]3([H])O2)C(C=C5)=C2C1=C5O[C@@H]([C@@](C)=C)C1",1.32E-05 +"O=C2C1=NC3=C(C=C(C)C(C)=C3)N(C[C@H](O)[C@H](O)[C@H](O)CO)C1=NC(N2)=O", +"C1=CC=CC=C1OC(=O)C2=CC=CC=C2C(=O)OC3=CC=CC=C3",2.51E-04 +"O=C1C2=C(C=CC=C2)C(=O)C3=C1C=CC=C3", +"CCOC(=O)C1=CC=CC=C1C(=O)OCC",1.43E-01 +"C1=CC=C(C(=O)OCCCC)C(=C1)C(=O)OCCCC",3.5900E-03 +"CCC1=C(Br)C(Br)=C(Br)C(Br)=C1Br", +"O=C1C2=C(C=CC=C2)N=NN1CSP(=S)(OC)OC",2.02E-04 +"C1=CC=CC=C1NC(=O)C2=C(O)C=CC=C2",1.85E-02 +"Cl\C(Cl)=C(Cl)/C(Cl)=C(Cl)\Cl",3.45E-04 +"OC1=C(C(=C(C(=C1Cl)Cl)Cl)Cl)Cl",9.12E-04 +"OC1=C(C=C(C=C1Cl)Cl)Cl",2.48E-02 +"OC1=CC(C(F)(F)F)=C([N+]([O-])=O)C=C1",4.41E-02 +"C1(N)=CC=CC=C1C(=O)N",2.90E+00 +"OC1=C([N+]([O-])=O)C=CC=C1",1.15E+00 +"OC1=C(C=C(C=C1C(CC)C)[N+](=O)[O-])[N+](=O)[O-]",2.23E-03 +"O=CC1=CC=CC=C1O",1.88E-02 +"OC1=CC=CC2=CC=CC=C12",3.21E-02 +"OC1=C(C=CC=C1)C2=CC=CC=C2",3.61E-02 +"C12C(=O)C3=C(OC=1C=CC=C2)C=CC=C3", +"BrC1=C(O)C(C=O)=CC(Br)=C1",3.04E-03 +"C1=C2C(=CC=C1)C=CC=C2",4.79E-02 +"N1=CC=CC2=C1C=CC=C2",6.02E-01 +"CCN(CC)C1CCCCC1",1.38E-01 +"CCN(CC)C1=CC=CC=C1",1.10E-01 +"OCCN(CC)C1=CC(C)=CC=C1",2.95E-01 +"C1CCCCC1C2CCCCC2", +"C1=CC=CC=C1C(=O)CC(=O)C",6.78E-03 +"C1=CC(N)=CC=C1C(=O)OCC",2.16E-01 +"O1COC2=CC=C(/C=C/C=C/C(=O)N3CCCCC3)C=C12",2.75E-02 +"C1(C=O)=C(O)C=C(O)C=C1",9.50E-02 +"CC1=C(C)C=CC=C1",1.54E-01 +"OC1=C(C)C=CC=C1",1.29E-01 +"ClC1=C(C=CC=C1)Cl",6.40E-02 +"NC1=C(Cl)C=CC=C1",4.50E-02 +"CC1=C(F)C=CC=C1",1.76E-01 +"OC1=CC=CC=C1Cl",8.87E-02 +"CC1=C(C=CC(=C1)C)C",6.42E-02 +"CC1=CC(Cl)=C(Cl)C=C1",1.81E-02 +"NC1=CC(Cl)=C(Cl)C=C1",4.67E-02 +"C=C(C)C(=O)OCC=C",7.85E-03 +"BrCC(Br)CO",3.26E-01 +"CC(C=O)CC",1.16E-01 +"ClCC(Cl)CCl",3.91E-01 +"CCC(=O)CC",1.79E+01 +"CCC(C)=NO",9.68E+00 +"OCCN(C(C)C)C(C)C",1.38E+00 +"NC1=C([N+]([O-])=O)C=C([N+]([O-])=O)C=C1",8.08E-02 +"OC1=CC=C(Cl)C=C1CC2=CC(Cl)=CC=C2O",1.15E-03 +"C[N+](C1=CC=CC=C1)(C)C.[I-]",9.24E-01 +"C(C1=CC=C(O)C=C1)(C)(C)C",3.43E-02 +"C1=CC=CC=C1C(C)C",5.26E-02 +"C1=CC=CC=C1C(=O)C",1.35E+00 +"O=[N+](C1=CC=CC=C1)[O-]",9.67E-01 +"C1=C(C(=O)C)C=C(N)C=C1",2.83E+00 +"CC1=CC([N+](=O)[O-])=CC=C1",1.87E-01 +"CN(C)C1=CC=C(C)C=C1",3.62E-01 +"O=[N+](C1=CC=C(C=C1)N)[O-]",9.05E-01 +"OC1=CC=C([N+](=O)[O-])C=C1",3.22E-01 +"CN(C)C1=CC=C(C=O)C=C1",3.06E-01 +"[O-][N+](=O)C1=CC=C([N+]([O-])=O)C=C1",4.22E-03 +"CCN(CCO)CC",1.52E+01 +"CCC1=CC=CC=C1",9.89E-02 +"NCC1=CC=CC=C1",9.52E-01 +"O=CC1=CC=CC=C1",9.30E-02 +"C1=CC=C(NC)C=C1",9.33E-01 +"ON=C1CCCCC1",1.84E+00 +"N1=C(C#N)C=CC=C1",6.97E+00 +"N1=C(CC)C=CC=C1",3.86E+00 +"CC1(C)OCC(CO)O1",1.26E+02 +"C1N2CN3CN(C2)CN1C3",3.55E+02 +"C1=CC=CC=C1OC2=CC=CC=C2",2.35E-02 +"CCNC1=CC(C)=CC=C1",3.66E-01 +"CCCN(CCC)CCC",3.55E-01 +"OCCN(CCO)CCO",7.91E+01 +"C1=CC=CC=C1CCC(C)(C)O",4.04E-01 +"C1=CC(C)=CC=C1SSC2=CC=C(C)C=C2", +"OCCN1CCNCC1",4.92E+01 +"CN(C)CC1=CC=CC=C1",2.80E-01 +"C1(=CC=C(C=C1)O)NC(C)=O",5.39E+00 +"NC1=CC=C(CCCC)C=C1",6.80E-02 +"CCCCCCCCCC1=CC=C(O)C=C1",6.35E-04 +"NC1=CC=C(CCCCCCCCCCCC)C=C1", +"CCC(CCCC)CO",2.17E-01 +"ClC1=CC=C(C=O)C=C1",1.56E-02 +"N1=C(C)C=CC(CC)=C1",6.69E-01 +"CC(=O)CCCN(CC)CC",2.14E+00 +"CCOC(=O)CC(=O)OCC",9.18E-02 +"OC1=C(C)C=C(C)C=C1",1.36E-01 +"CCCCOC(=O)C=CC(=O)OCCCC",2.76E-03 +"CCCCOC(=O)CCCCC(=O)OCCCC",1.41E-02 +"NC1=CC=C(Br)C=C1",2.76E-01 +"CC1=CC=C(C)C=C1",8.35E-02 +"OC1=CC=C(C)C=C1",1.53E-01 +"NC1=CC=C(C=C1)Cl",2.46E-01 +"OC1=CC=C(Cl)C=C1",4.75E-02 +"NC1=CC=C(C)C=C1",1.49E+00 +"C=CC(=O)OCC(C)C",1.64E-02 +"BrCCC",5.47E-01 +"C=CC=O",3.03E-04 +"ClCCCl",1.37E+00 +"ClCCO",6.67E-01 +"CCCN",5.21E+00 +"CCC#N",2.76E+01 +"ClCC#N",1.78E-02 +"NCCN",3.66E+00 +"C=CCO",5.51E-03 +"C(O)C#C",2.64E-02 +"CC=NO",1.29E+00 +"C[C@](CC(O)C)(C)O",9.05E+01 +"CC(C)(C)CC(C)(C)N",1.90E-01 +"CC(C)(C)SC(C)(C)C",1.99E-01 +"CCCC(=O)C",1.44E+01 +"CC(=O)CC(C)C",5.21E+00 +"CC(C)OC(C)C",7.69E+00 +"CC1=CC=CC=C1",3.68E-01 +"N1=CC=C(C)C=C1",4.33E+00 +"ClC1=CC=CC=C1",1.50E-01 +"C1CCCCC1O",7.03E+00 +"O=C1CCCCC1",6.33E+00 +"OC1=CC=CC=C1",3.47E-01 +"N1=CC(C)=CC=C1",1.55E+00 +"CN1CCNCC1",2.30E+01 +"N1=C(C)C=CC=C1",9.63E+00 +"N1CC(C)NCC1",2.24E+01 +"CC(=O)OCCC",5.87E-01 +"BrCCCBr",1.04E-02 +"BrCCCC",2.68E-01 +"CCCCN",3.66E+00 +"C=CCC#N",2.71E+00 +"NCCCN",1.61E+01 +"N#CCC#N",8.48E-03 +"COCCN",6.98E+00 +"CCNCC",1.17E+01 +"N1C=CC=C1",3.13E+00 +"C1CCCO1",3.00E+01 +"C1=COC=C1",8.96E-01 +"CC(C)(C)SSC(C)(C)C",7.68E-03 +"CC(=O)CCC(C)C",1.39E+00 +"CCOC(=O)CCCCCCCCC(=O)OCC",1.05E-02 +"CCCCCC(=O)C",1.15E+00 +"CCCCCC",2.90E-02 +"ClCCCCCl",4.06E-01 +"CCCCCN",2.03E+00 +"CCCCC=O",1.50E-01 +"C(O)C#CC(O)",6.23E-01 +"CCNCCO",1.66E+01 +"C1CCCCC1",5.38E-02 +"N1=CC=CC=C1",1.26E+00 +"C1OCOCO1",6.61E+01 +"O=C(CC/C=C(C)/C)C",6.79E-01 +"CC(=O)CCCCCC",2.81E-01 +"CC(=O)OCCOCC",3.19E-01 +"BrCCCCCC",2.09E-02 +"CCCCCCN",5.59E-01 +"CCCCCCO",9.56E-01 +"OCCNCCO",4.48E+01 +"OCCOCCO",7.09E+02 +"CCCSCCC",1.84E-01 +"CCCCCCCN",1.89E-01 +"N#CCCCCC#N",1.79E+01 +"CCCCCCCO",2.97E-01 +"BrCCCCCCCC",4.34E-03 +"CCCCCCCCN",4.02E-02 +"CCCCCCCCO",1.04E-01 +"CCOCCOCCO",1.98E+02 +"CCCCCCCCC(=O)O",6.57E-01 +"CCCCCCCCCC(=O)C",8.81E-03 +"CCCCCCCCCN",1.50E-02 +"OCCOCCOCCO",4.59E+02 +"CCCCCCCCCCO",1.52E-02 +"CCCCCCCCCCCCCO", +"CC(C)OC1=CC=CC=C1OC(=O)NC",4.21E-02 +"CC(O)(C)C#C",3.91E+01 +"C(Cl)(Cl)(Cl)CO",2.00E+00 +"OC(C1=CC=C(C=C1)Cl)(C2=CC=C(C=C2)Cl)C(Cl)(Cl)Cl",1.67E-03 +"C1=CC=CC=C1OP(=O)(OC2=CC=CC=C2)OC3=CC=CC=C3",2.66E-03 +"S(=O)(C)C1=CC=C(OP(=S)(OCC)OCC)C=C1",1.40E-01 +"CC(C=NOC(=O)NC)(SC)C",4.52E-03 +"O=C(C1=C(C=CC=C1)C(=O)OCC(CCCC)CC)OCC(CCCC)CC", +"CCCCCCCCOC(=O)C1=CC=CC=C1C(=O)OCCCCCCCC", +"C1=CC=CC(O)=C1C(=O)OC2=CC=CC=C2",5.51E-03 +"C1=CC=CC(O)=C1C(=O)OCC",1.22E-01 +"OC1=C(Br)C=C(Br)C=C1Br",1.98E-02 +"OC1=C(C=C(C=C1)N)[N+](=O)[O-]",2.35E-01 +"C1=CC=CC=C1C(=O)C2=CC=CC=C2",8.07E-02 +"C1=CC=CC=C1N(CCO)CCO",4.06E+00 +"C1=CC(=CC=C1C=O)N(CC)CC",1.35E-01 +"OC1=C(C=CC=C1)O",8.37E-02 +"ClC1=C(Cl)C=C(Cl)C=C1",1.65E-02 +"ClC1=C(C=CC(=C1)Cl)O",4.75E-02 +"CC1=C(C=C(C=C1)[N+](=O)[O-])[N+](=O)[O-]",1.33E-01 +"O=CC1=CC(OCC)=C(O)C=C1",5.27E-01 +"C1(C=O)=CC(OC)=C(O)C=C1",5.51E-01 +"CN(C1=CC=CC=C1)C",5.29E-01 +"ClC1=CC([N+](=O)[O-])=CC=C1",1.19E-01 +"O=C(C(SP(=S)(OC)OC)CC(=O)OCC)OCC",4.27E-02 +"NC1=C(Cl)C=C([N+]([O-])=O)C=C1",1.16E-01 +"C1(C=O)=CC=C(C(C)C)C=C1",4.47E-02 +"C1=CC=CC=C1NC2=CC=CC=C2",2.24E-02 +"C1=CC=CC=C1OCCO",2.49E+00 +"OC1=CC=C(CC)C=C1",8.51E-02 +"CC(C=O)CCC",1.88E-01 +"CC(=O)CC(=O)C",1.35E+00 +"CCCCCC(=O)OCC",6.17E-02 +"CCCC=O",2.04E-01 +"CC(=O)OCCCC",1.55E-01 +"C1COCCO1",1.17E+02 +"CCCCCCCCCCCCN",5.56E-04 +"CCCCCCCCCCCCCC=O", +"CCCCOP(=O)(OCCCC)OCCCC",3.56E-02 +"O=C(CC(=O)C1)CC1(C)C",8.20E+01 +"OC(C)CCl",2.59E+00 +"ClC(=C(Cl)Cl)Cl",9.95E-02 +"CC(C1=CC=CC=C1)(O)C#C",7.73E-01 +"OC1=C(C=C(C=C1C(C)(C)C)C)C(C)(C)C",1.65E-03 +"O=S(C1=CC=CC=C1C([N-]2)=O)2=O.[Na+].[O]",8.20E+01 +"C1=CC=CC2C3=CC=CC=C3OC1=2",8.92E-03 +"C1=CC=CC=C1OC(=O)C2=C(O)C=C(N)C=C2",2.08E-02 +"CCN(CC)C(=O)C1=CC=CC(C)=C1",5.75E-01 +"CCC([O-])=O.[Na+]",4.99E+01 +"NCCN1CCNCC1",1.70E+01 +"CCCCOC(=O)CCC(=O)OCCCC",1.94E-02 +"CCOC(=O)CCCCC(=O)OCC",8.99E-02 +"OCCN",3.39E+01 +"CC(=O)OCC",2.61E+00 +"N1CC(C)OC(C)C1",3.36E+00 +"CCC1=CC(CC)=CC=C1",3.09E-02 +"ClCCCCl",9.82E-01 +"CCCCCC(O)=O",2.76E+00 +"CC(=O)OCCCCCC",3.05E-02 +"CCCCOCCCC",2.48E-01 +"CCCCCCCCCO",3.95E-02 +"CCCCCCNCCCCCC",4.21E-03 +"OCCCCCCCC\C=C/CCCCCCCC", +"C1(C=O)=C(O)C(OC)=CC=C1",1.58E-02 +"OC1=CC(OC)=CC=C1",5.96E-01 +"COC1=CC=C(C=C1)O",8.86E-01 +"COC1=CC=C(OC)C=C1",8.47E-01 +"C1=COC2=C1C=CC=C2",1.19E-01 +"C(CN(C1)C2)N(C1)C2",1.54E+01 +"C(CC(CC1CC23)C2)(C1)C3",2.06E-03 +"CCOP(OCC)(=S)SCCSCC",9.95E-03 +"[O-]C(N1)=NC(C(C(CCC)C)(CC=C)C1=O)=O.[Na+]",9.07E-02 +"BrC1=C(C)NC(=O)N(C(C)CC)C1=O",7.12E-01 +"OC1=C([N+](=O)[O-])C=CC([N+]([O-])=O)=C1",1.82E-02 +"ClC1=C(C=CC(=C1)NC(=O)N(C)C)Cl",6.09E-02 +"C1=CC(F)=CC=C1OC2=CC=C(F)C=C2",5.48E-03 +"S=P(OC1=NC(=NC(=C1)C)C(C)C)(OCC)OCC",3.07E-02 +"FC1=CC=C([N+](=O)[O-])C=C1",2.01E-01 +"C(F)(F)(F)C1=CC(C#N)=CC=C1",2.79E-01 +"NC1=CC=C(F)C=C1",1.52E-01 +"C1(C=O)=C(Cl)C=CC=C1F",5.93E-02 +"NC1=C(C(F)(F)F)C=C(F)C=C1",1.65E-01 +"C1(C=O)=C(F)C=CC=C1",1.09E-02 +"C1=CC=CC(=C1C(F)(F)F)C#N",2.47E-01 +"C1(C=O)=CC(C(F)(F)F)=CC=C1",5.31E-03 +"CNC1=CC=C(F)C=C1",3.07E-01 +"CCCCCCC(=O)CCCCCC", +"O[C@H]1[C@@]([C@@](C)2C)(C)CC[C@H]2C1",4.10E-01 +"O=C(CC1C2)C(C2)(C1(C)C)C",1.12E-01 +"CC2(C)OC1(C)CCC2CC1",6.61E-01 +"O=[C@](O)[C@@]1(C)[C@]([C@]([C@]([H])2CC3)(C)CCC1)([H])CCC2=C\C3=C(C)/C",4.93E-03 +"N1=C(C2=CC=CC=C2)NC(C3=CC=CC=C3)=C1C4=CC=CC=C4", +"C1COC2=CC=CC=C12",6.80E-01 +"O[C@H]1[C@H](CC2)C[C@H]2C1",2.03E+00 +"C1C2C=CC1CC2",1.06E-01 +"N1=C(C(=O)O)C=CC=C1C(=O)O",1.93E+00 +"N1=CC(C=O)=CC=C1",1.53E-01 +"CCCCC(=O)CCCC",2.18E-01 +"C=C(C)C(C)=C",8.41E-02 +"O=[C@](O)[C@@]3(C)[C@@]1([H])[C@@](CCC3)(C)[C@]2([H])C(C=[C@@]([C@@H](C)C)CC2)=CC1",7.87E-03 +"C1=CC=CC=C1C2=CC(=O)C3=CC=CC=C3O2",1.57E-02 +"OC1=C(C)C=C(C)C=C1C",9.54E-02 +"C1(C#N)=CC=CC=C1C",3.82E-01 +"C1(C=O)=C(C)C=CC=C1",4.40E-01 +"C1(=CC=CC=C1)C(=O)[O-].[Na+]",3.36E+00 +"OC1=C(C)C=C([N+]([O-])=O)C=C1[N+]([O-])=O",8.73E-03 +"C1=CC=CC=C1CCCCC",1.15E-02 +"O=C(OC(C)(C)C)C",2.82E+00 +"ClC1=CC(Cl)=CC=C1",5.46E-02 +"Cl\C=C\CCl",2.15E-03 +"CCCCSCCCC",2.45E-02 +"C1(O)=CC(OC)=CC=C1C(=O)C",4.18E-01 +"C1(C=O)=C([N+]([O-])=O)C=CC=C1",9.53E-02 +"O=CC1=CC=C([N+](=O)[O-])C=C1",6.68E-02 +"CC(=O)C(C)C",1.00E+01 +"OC1=C([N+]([O-])=O)C=CC=C1[N+]([O-])=O",2.16E-01 +"BrC1=C(Br)C=CC=C1",1.72E-02 +"C=CCNC1=CC=CC=C1",2.70E-01 +"NC1=CC=C(CC)C=C1",6.02E-01 +"CC(C)CC=O",3.77E-02 +"CCCCC(=O)C",4.27E+00 +"CC=CC=CC",2.43E-01 +"CCCCCCCCCCCC(=O)C",1.81E-03 +"C1=CC=CC=C1[Sn](C2=CC=CC=C2)(C3=CC=CC=C3)C4=CC=CC=C4", +"[H][C@]1(CC2)C(C)(C)CCC[C@@](C)1[C@@H](CC[C@@](O)(C)C=C)C2=C",4.13E-04 +"CC[Sn](CC)(CC)CC",4.68E-05 +"CC(C)C(C)N",3.26E+00 +"CC(C)C(O)C(C)C",1.40E+00 +"C1=CC=CC=C1N(C2=CC=CC=C2)C3=CC=CC=C3", +"C1=CC=CC=C1N(C2=CC=CC=C2)C=O",1.54E-01 +"CCOC(=O)C(CC1=CC=CC=C1)C(=O)OCC",2.17E-02 +"OC1=C(Br)C(Br)=C(Br)C(Br)=C1Br",1.90E-04 +"OC1=C(I)C=C(I)C=C1I",2.56E-03 +"C1(C=O)=C(OC)C=C(OC)C=C1",1.21E-01 +"OC1=C(NC(=O)C)C=CC=C1",1.79E-01 +"NC1=C(Cl)C=C(C)C=C1",2.54E-01 +"NC1=C([N+]([O-])=O)C=C(OCC)C=C1",1.43E-01 +"C1=CC([N+](=O)[O-])=CC=C1C(=O)OC",1.31E-01 +"C1=CC([N+]([O-])=O)=CC=C1C(=O)N",8.01E-01 +"C1=CC=CC=C1OC2=CC=C([N+](=O)[O-])C=C2",1.23E-02 +"C1=CC=C(CS(=O)CC2=CC=CC=C2)C=C1",3.48E-01 +"OC1=CC(NC(=O)C)=CC=C1",7.48E+00 +"OCCN1CCOCC1",2.07E+01 +"ClCC1=CC=C(CCl)C=C1",2.23E-04 +"IC1=CC=C(I)C=C1", +"O1C(C)=CC=C1C",7.40E-01 +"ClCCCCCCl",1.79E-01 +"BrCCCCCCC",8.21E-03 +"CCCSSCCC",1.70E-02 +"N#CCCCCCCC#N",3.88E+00 +"NC1=C(Cl)C(Cl)=C(Cl)C=C1",1.85E-02 +"C1(C=O)=C(O)C=CC(Cl)=C1",4.92E-03 +"OC1=CC=C(CCC)C=C1",8.08E-02 +"C1(C=O)=C(F)C(F)=C(F)C(F)=C1F",5.61E-03 +"C(Cl)(Cl)C(=O)N",1.88E+00 +"CCCCCCC(C)N",4.02E-02 +"CC(=O)CCCCCCCC",3.09E-02 +"CCCCCOCCCCC",1.98E-02 +"CC1=COC=N1",1.67E+01 +"CC1=NC=CN1",3.48E+00 +"O=C1C3CC2CC1CC(C3)C2",4.05E-01 +"CCCCCCC1OC(=O)CC1",1.06E-01 +"C1(C=O)=C(O)C=C(OC)C=C1OC",1.47E-02 +"C1=C(Cl)C(Cl)=CC=C1NC(=O)CC",3.94E-02 +"OC1=C(C=C(C=C1C(C)(C)C)C(C)(C)C)C(C)(C)C",2.32E-04 +"C=CC(Cl)C(Cl)",6.54E-02 +"C(=O)N(CCCC)CCCC",5.68E-01 +"C(O)C#CC",1.44E-01 +"CC(C)=CC=C(C)C",3.43E-02 +"NC13CC(CC(C3)C2)CC2C1",1.65E-01 +"N1=C(O)C(C#N)=C(C)C=C1C",1.06E+00 +"NC1=C(F)C(F)=C(F)C(F)=C1F",2.03E-01 +"ClC1=CC=C(SCSP(=S)(OCC)OCC)C=C1",7.00E-04 +"C1=CC=CC=C1P(=O)(C2=CC=CC=C2)C3=CC=CC=C3",1.93E-01 +"C1=CC(N(C)C)=CC=C1P(=O)(C2=CC=C(N(C)C)C=C2)C3=CC=C(N(C)C)C=C3", +"C=CC(=O)OCCO",4.14E-02 +"C#CC(O)CCCCC",3.27E-03 +"CCCCCCCC(=O)C",1.07E-01 +"Cl[C@@H]1CCCC[C@H]1Cl",1.20E-01 +"C1=CC=CC=C1OC2=CC=C(O)C=C2",2.66E-02 +"C=C(C)C(=O)OCCO",1.74E+00 +"C1(Br)=CSC=C1",3.80E-02 +"O=CC1=C(Cl)C=C(Cl)C=C1",1.03E-02 +"C1=CC=CC=C1SSC2=CC=CC=C2",5.04E-04 +"C1(=CC=CC=C1)/C=C/C=C/C2=CC=CC=C2", +"O=C(OCC)C1=CC(N)=CC=C1.OS(C)(=O)=O",3.02E-01 +"C(F)(F)(F)C(O)C(F)(F)(F)",1.45E+00 +"C=CC(O)CC=C",3.88E-01 +"C(O)CC#C",5.15E-01 +"CC\C=C/CCO",3.80E+00 +"CC/C=C/CCO",2.71E+00 +"CN1C(C(=O)C)=CC=C1",1.28E+00 +"N1=CC=C(C2=CC=CC=C2)C=C1",1.04E-01 +"C1=CC=CC=C1S(=O)C2=CC=CC=C2",4.32E-01 +"C1=CC=CC=C1C2=CC=C(C3=CC=CC=C3)O2", +"C=CC(=O)OCC(O)C",2.60E-02 +"N1=C(N)C=CC(Br)=C1",1.02E+00 +"CCOP(=O)(CC1=CC=CC=C1)OCC",1.47E+00 +"CCCCCCCCCCCC(=O)N", +"N1=CC=C(C(=O)C)C=C1",1.39E+00 +"C1=CC(Cl)=CC=C1C(=O)OC",6.40E-02 +"CCCCOC1=CC=CC=C1",3.80E-02 +"C1=CC(C#N)=CC=C1C(=O)OC",2.90E-01 +"OC1=C(O)C(Cl)=C(Cl)C(Cl)=C1Cl",5.12E-03 +"C1=C(C(=O)CBr)C(OC)=CC=C1OC",2.55E-03 +"CCCC[Sn](CCCC)(CCCC)CCCC",1.30E-04 +"C#CC(C)(O)C(C)C",1.83E+00 +"C1=CC=C2C3=CC=CC=C3N(C2=C1)C=C",1.66E-05 +"C1=C(N)C=CC=C1OCC2=CC=CC=C2",4.59E-02 +"O=C(NC)OC1=CC=CC(C2)=C1OC2(C)C",3.81E-03 +"CC(OC)(C)C",7.62E+00 +"C=CCCCCCCC=C",2.10E-03 +"C1=CC(O)=CC=C1/N=N/C2=CC=CC=C2",6.00E-03 +"C1=C(I)C(O)=C(I)C=C1C#N",1.83E-02 +"C1=C(Br)C(O)=C(Br)C=C1C#N",4.55E-02 +"O=[C@](O)[C@@]3(C)[C@@]2([H])[C@@](CCC3)(C)C1=C(CC2)C=[C@@]([C@@H](C)C)C=C1",6.99E-03 +"C=CCC1=CC=CC=C1O",1.12E-01 +"C1(C=O)=C(O)C=CC(Br)=C1",6.46E-03 +"C=C(CCl)C(Cl)",1.52E-03 +"C1=C(Cl)C(O)=C(Cl)C=C1C#N",1.29E-01 +"CCCCOC(=O)C1=CC=C(C(=O)OCCCC)C=C1",2.12E-03 +"C1=CC(O)=CC=C1OC2=CC=C(O)C=C2",2.86E-02 +"C1(Cl)=CC=CC(Cl)=C1C(=O)N",2.47E+00 +"CCCCCCCCCCN",6.55E-03 +"CNC(=O)OC1=CC(C)=C(N(C)C)C=C1",9.36E-03 +"N1=C(Br)NC(Br)=C1Br",2.01E-02 +"CCOP(=S)(OC1=CC=C(C=C1)[N+](=O)[O-])C2=CC=CC=C2",2.43E-04 +"OC(C)CC#C",4.17E-01 +"OC1=C(O)C=C(Cl)C=C1",1.09E-02 +"C1(O)=CC(O)=CC=C1C(=O)OC",2.72E-01 +"C=CC(=O)OCCCCCCCCCCCC", +"N1=C(Cl)C(Cl)=C(Cl)C(Cl)=C1Cl",1.87E-03 +"C1[C@H](C[C@H]([C@@H](C1)C(C)C)O)C",1.21E-01 +"C1=CN=CN1S(=O)(=O)C2=CC=C(C)C=C2",1.88E-01 +"C1=C(C(=O)C)C(Cl)=CC(Cl)=C1",6.89E-02 +"CCCCCCCCC#N",3.77E-02 +"NC1=CC(C(F)(F)F)=C(F)C=C1",1.68E-01 +"[C@H]1(CCCC[C@H]1O)C2=CC=CC=C2",2.52E-01 +"C=C(C)C(=O)OCCOCC",1.75E-01 +"OC1=C(C)C(C)=CC=C1C",6.02E-02 +"CCCCCCCCCCCC#N",2.37E-03 +"C1(OC)=CC=CC=C1C(=O)N",7.94E-01 +"C1(Cl)=CC(Cl)=CC=C1C(=O)N",5.03E-01 +"C=C(C)C(=O)OCC1OCCC1",2.04E-01 +"OC1=C(OC)C=C(Cl)C(Cl)=C1",2.32E-02 +"C=C(C)C(=O)OCC1=CC=CC=C1",2.65E-02 +"C=CC(=O)OCCCCCC",7.10E-03 +"CC(C)(C)C1=CC=C(OC(=O)NC)C=C1",4.82E-02 +"N1=C(CCN)C=CC=C1", +"C1=CC=CC=C1CN2CCNCC2",2.69E-01 +"N1=CC=CC(=C1)CCCO",1.09E+00 +"CCCCCCCCCCCCCN",3.28E-04 +"C1=CC=CC(N)=C1C(=O)C2=CC=C(Cl)C=C2",9.15E-03 +"C1(Cl)=CC=C(Cl)C=C1C(=O)OC",6.83E-02 +"S=P(OC1=NC(=C(C=C1Cl)Cl)Cl)(OCC)OCC",9.07E-04 +"C1(OC)=CC(C=O)=CC(Br)=C1O",2.58E-01 +"C=CC(=O)OC1CCCCC1",9.60E-03 +"S(C1=CC=C(Cl)C=C1)(=O)C2=CC=C(Cl)C=C2", +"CCOC(=O)N(C(=O)OCC)C(=O)OCC",5.70E-02 +"OC1=C(O)C=C(Cl)C(Cl)=C1",4.97E-03 +"NC1=C(Cl)C(Cl)=CC(Cl)=C1Cl",1.17E-03 +"N1=C(C2=CC=CC=C2)C=CC=C1C3=CC=CC=C3",9.08E-04 +"ClC1=CC(Cl)=C([N+]([O-])=O)C=C1[N+]([O-])=O",1.92E-04 +"C1(Cl)=CC(Cl)=C(Cl)C=C1SSC2=C(Cl)C=C(Cl)C(Cl)=C2", +"C1=C(C)C(C)=CC=C1OP(=O)(OC2=CC(C)=C(C)C=C2)OC3=CC(C)=C(C)C=C3", +"CCC(C)C(C)C=O",1.40E-01 +"C(O)C#CCCCCCCC",6.94E-03 +"N1=C(O)C=CC(Cl)=C1",8.80E+00 +"CC(C)SSC(C)C",5.53E-02 +"C1(C=O)=C(OC)C=C(OC)C(OC)=C1",2.52E-01 +"C=C(C)C(=O)OC(C)C",2.96E-01 +"C=CC(O)CCC",3.04E-01 +"OC1=C(Cl)C(Cl)=C(Cl)C(Cl)=C1",1.77E-03 +"C1=CN=CC=C1CCC2=CC=NC=C2",8.20E-01 +"C1C(=O)N(CC)C(=S)N(CC)C1=O",2.25E+01 +"COC(=O)C1=CC=C(C(=O)OC)C=C1[N+]([O-])=O",2.73E-02 +"C1=CC(Cl)=CC2N=C(S)SC1=2",1.59E-02 +"COC(=O)C1=CC=C(C(=O)OC)C=C1N",4.27E-02 +"CCSCCSCC",4.01E-01 +"CN(CCCCl)C.[H]Cl",8.41E-01 +"C1=C(C(=O)C)C=C([N+]([O-])=O)C(Cl)=C1",2.76E-02 +"CC1=CC(Cl)=NC(N)=N1",9.82E-01 +"CC1=C(OC)C=CC=C1OC",1.33E-01 +"N1=C(N(C)C)C=CC=C1",1.04E+00 +"CC(C)(C)CN",5.45E+00 +"O=[C@](O)[C@@]3(C)[C@@]1([H])[C@@](CCC3)(C)[C@]2([H])C(C[C@](C=C)(C)CC2)=CC1",2.88E-03 +"C1(N)=CC=C(Cl)C=C1C#N",1.87E-01 +"ClC(Cl)(C(C)(O)C)Cl.ClC(Cl)(C(C)(O)C)Cl.[H]O[H]",3.62E-01 +"CCCCCCCCCCC(=O)C",6.40E-03 +"C1=C(/C=C/C=O)C=CC(N(C)C)=C1",3.67E-02 +"C(C(=O)O)[N+]1(=CC=CC=C1).[Cl-]",9.33E-01 +"ClC1=C([N+]([O-])=O)C(Cl)=C([N+]([O-])=O)C(Cl)=C1",8.18E-04 +"ClC1=CC=C([N+](=O)[O-])C=C1C=O",2.09E-02 +"N#CC1=C(Cl)C=CC=C1C",9.96E-02 +"N1=C(Br)C(O)=CC=C1",2.70E+00 +"N1=C(Cl)C(O)=CC=C1",4.80E+00 +"C#CCN(CC#C)CC#C",2.26E+00 +"CCOC(OCC)CN(C)CC(OCC)OCC",2.41E+00 +"NCCCN1CCN(CCCN)CC1",1.55E+01 +"OC(CC/C=C(C)/CC/C=C(C)\C)(C)C=C",6.43E-03 +"ClCCN1CCCC1.[H]Cl",9.00E-01 +"CCCCCCCCCCCN",1.23E-03 +"C#CC(O)CCCC",1.57E-02 +"C1(C=O)=CC=C(OCC)C=C1",1.87E-01 +"O=C(C(C(C1C2)(C)C)(C2)C)C1Br",2.96E-01 +"CC(C)=CC1C(C)(C)C1C(=O)OCC2=COC(CC3=CC=CC=C3)=C2",1.82E-05 +"CCOP(=S)(OCC)SCSC(C)(C)C",4.61E-05 +"BrC(Br)C1=C(C(Br)Br)C=CC=C1",1.04E-03 +"C1=C(C(=O)C)C(Cl)=C(Cl)C(Cl)=C1",8.95E-03 +"C1(OC)=C(OC)C(OC)=CC=C1C(=O)C",9.47E-01 +"CCOC(=O)C(Cl)C(=O)OCC",4.88E-03 +"CCNCC1=CC=CC=C1",4.22E-01 +"ClC1=CC=CC=[N+]1C.[I-]",7.79E-01 +"C1=CC(Br)=CC=C1C(=O)C2=CC=CN=C2",7.78E-02 +"C1=CC=CC=C1C(=O)C2=CC=NC=C2",5.62E-01 +"CC1(C)CCC(C)(C)O1",1.31E+00 +"N1=C([N+]([O-])=O)C(O)=CC=C1",1.19E+00 +"C1(CC)=CC=CC(CC)=C1N(COC)C(=O)CCl",1.85E-02 +"NC1=CC=C(CCCCCCCC)C=C1",5.84E-04 +"CSC(C)=NOC(=O)NC",1.30E-02 +"N1=C(O)C=CC=C1Cl",1.65E+00 +"NC1=NN=C(C)C(C)=N1",7.67E+00 +"C1=CC([N+]([O-])=O)=CC([N+](=O)[O-])=C1OC2=CC=C(Br)C=C2", +"O=CC1=CC=C(N(CC)CC)C=C1O",2.77E-02 +"N1=C(C)C=CC=C1Cl",1.82E+00 +"C#CC(CCC(C)C)(C)O",3.49E-01 +"CC1=C(C)OC(C)=N1",4.04E+00 +"CC(=O)C(C)CN(C)C",6.58E-02 +"C1=CC([N+](=O)[O-])=CC=C1OC2=CC(C)=C(Cl)C=C2", +"C1=CC=C(Br)C=C1C(=O)N",4.63E-01 +"O=C(C(=NOC(=O)NC)SC)N(C)C",3.09E-02 +"NC1=C(C(C)C)C=CC=C1C(C)C",8.63E-02 +"[Na+].[N-]=[N+]=[N-]",8.40E-02 +"C[N+](C1=CC=CC=C1)(C)C.[O-]S(=O)(=O)OC",1.00E+00 +"ClC1=C(C(=C(C(=C1Cl)Cl)Cl)Cl)C(=C(Cl)Cl)Cl", +"CC(C)(O)C(F)(C(F)F)F",3.64E+00 +"CCC(N)C",3.76E+00 +"COCCCNCC1=CC(OC)=C(OC)C(OC)=C1",5.05E-01 +"BrCC1OCCCC1",1.15E+00 +"NC1=CC=C(CCCCCCCCCC)C=C1",2.66E-04 +"NC1=CC=C(OCCCCCC)C=C1",1.56E-02 +"C1([N+](=O)[O-])=CC(Cl)=CC=C1C(=O)OC",1.28E-01 +"C1(C=O)=C([N+](=O)[O-])C=CC(O)=C1",2.51E-01 +"O=C(C(C1=CC=C(C=C1)Cl)C(C)C)OC(C2=CC=CC(=C2)OC3=CC=CC=C3)C#N",1.21E-05 +"C1=CC=C(OC2=CC=CC=C2)C=C1COC(=O)C3C(C)(C)C3C=C(Cl)Cl",4.09E-05 +"CCSCCCCSCC",3.40E-02 +"CCCCCCCCOC1=CC=CC=C1NC(=O)C",1.71E-03 +"C1=CC(C(C)(C)C)=CC=C1C(=O)N",1.80E-01 +"CSCCCCCCSC",5.66E-02 +"CC(O)C#C",1.67E-01 +"C1(C)=C(C)C=CC=C1OP(=O)(OC2=C(C)C(C)=CC=C2)OC3=C(C)C(C)=CC=C3", +"C1C(=CC=C[N+]=1CC2C=CC=CC=2)S(=O)(=O)[O-]",9.67E+00 +"C1=CC(C(C)(C)C)=CC=C1OC2=CC=CC(C=O)=C2",1.45E-03 +"O=C(OC(C2=CC=CC(OC3=CC=CC=C3)=C2)C#N)[C@H](C1=CC=C(OC(F)F)C=C1)[C@H](C)C",4.21E-07 +"ClC1=CC=CC(Cl)=C1OP(=O)(OC2=C(Cl)C=CC=C2Cl)OC3=C(Cl)C=CC=C3Cl", +"C1=C(C=O)C=CC=C1OC2=CC(Cl)=C(Cl)C=C2",1.12E-03 +"[Na+].O.O.[O-]C1=C([N+]([O-])=O)C=C([N+]([O-])=O)C2=CC=CC=C12",1.45E-02 +"CC(C)(C)C1=CC=C(C=C)C=C1",3.06E-03 +"O=P(OCC)(SCCSCC)OCC",6.19E-02 +"ClCC1=CC(C=C)=CC=C1",2.03E-03 diff --git a/public/EPAFHM.xls b/public/EPAFHM.xls new file mode 100644 index 0000000..fbfb016 Binary files /dev/null and b/public/EPAFHM.xls differ diff --git a/views/help.haml b/views/help.haml index 3d39641..4882380 100644 --- a/views/help.haml +++ b/views/help.haml @@ -85,8 +85,14 @@ %td 0 %p - Excel example file for download: - = link_to "hamster_carcinogenicity.xls", "/hamster_carcinogenicity.xls" + Excel examples for download: + %ul + %li + = link_to "hamster_carcinogenicity.xls", "/hamster_carcinogenicity.xls" + (classification) + %li + = link_to "EPAFHM.xls", "/EPAFHM.xls" + (regression) %h3 CSV example @@ -104,7 +110,13 @@ %br CN1CCCC1c2cccnc2, 0 %p - CSV example for download: - = link_to "hamster_carcinogenicity.csv", "/hamster_carcinogenicity.csv" + CSV examples for download: + %ul + %li + = link_to "hamster_carcinogenicity.csv", "/hamster_carcinogenicity.csv" + (classification) + %li + = link_to "EPAFHM.csv", "/EPAFHM.csv" + (regression) %p You can create CSV files in Excel: Create a sheet with two columns and export them as CSV file with the "Save As" option from the menu, selecting the CSV (comma delimited) format. -- cgit v1.2.3 From 7b7f8e55b9863a513fad33faf96206a818ff19f2 Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Tue, 14 Jun 2011 15:30:29 +0000 Subject: activity markup fixed --- .gitignore | 1 + helper.rb | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index f138bed..079637f 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ log/* TODO documentation/ *.*~ +.sass-cache diff --git a/helper.rb b/helper.rb index 2fe8785..2bbab30 100644 --- a/helper.rb +++ b/helper.rb @@ -66,8 +66,15 @@ helpers do when /Float/ haml ".other #{sprintf('%.03g', activity)}", :layout => false when /String/ - haml ".other #{activity.to_s}", :layout => false - else + case activity + when "true" + haml ".active active", :layout => false + when "false" + haml ".inactive inactive", :layout => false + else + haml ".other #{activity.to_s}", :layout => false + end + else if activity #true haml ".active active", :layout => false elsif !activity # false -- cgit v1.2.3 From 305aa1146692f7b9a5c278f3cd4d0a843a1755bd Mon Sep 17 00:00:00 2001 From: mr Date: Thu, 16 Jun 2011 14:06:38 +0200 Subject: external links for classification validation --- views/classification_validation.haml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/views/classification_validation.haml b/views/classification_validation.haml index 41362ba..5649d7f 100644 --- a/views/classification_validation.haml +++ b/views/classification_validation.haml @@ -3,17 +3,17 @@ = sprintf("%.2f", model.correct_predictions.to_f) if model.correct_predictions = '%' %dt - %a{:href => "http://en.wikipedia.org/wiki/Receiver_operating_characteristic", :target => "_blank"} Weighted area under ROC: + %a{:href => "http://en.wikipedia.org/wiki/Receiver_operating_characteristic", :rel => "external"} Weighted area under ROC: %dd = sprintf("%.3f", model.weighted_area_under_roc.to_f) if model.weighted_area_under_roc %dt - %a{:href => "http://en.wikipedia.org/wiki/Sensitivity_and_specificity", :target => "_blank"} Specificity: + %a{:href => "http://en.wikipedia.org/wiki/Sensitivity_and_specificity", :rel => "external"} Specificity: %dd= sprintf("%.3f", model.specificity.to_f) if model.specificity %dt - %a{:href => "http://en.wikipedia.org/wiki/Sensitivity_and_specificity", :target => "_blank"} Sensitivity: + %a{:href => "http://en.wikipedia.org/wiki/Sensitivity_and_specificity", :rel => "external"} Sensitivity: %dd= sprintf("%.3f", model.sensitivity.to_f) if model.sensitivity %dt - %a{:href => "http://en.wikipedia.org/wiki/Confusion_matrix", :target => "_blank"} Confusion Matrix: + %a{:href => "http://en.wikipedia.org/wiki/Confusion_matrix", :rel => "external"} Confusion Matrix: %dd %table %tr -- cgit v1.2.3 From d829934eb8dd69c5380d2582bdf4f20f0ad4500f Mon Sep 17 00:00:00 2001 From: mr Date: Thu, 16 Jun 2011 14:47:24 +0200 Subject: add GMT to time information --- views/model.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/model.haml b/views/model.haml index b4b3c59..d5fbb24 100644 --- a/views/model.haml +++ b/views/model.haml @@ -36,7 +36,7 @@ %br %dt Started: - %dd= Time.parse(model.created_at.to_s).strftime("%m/%d/%Y - %I:%M:%S%p") if model.created_at + %dd= Time.parse(model.created_at.to_s).strftime("%m/%d/%Y - %I:%M:%S%p GMT") if model.created_at - if model.nr_compounds %dt Training compounds: %dd= model.nr_compounds -- cgit v1.2.3 From fe98831689d9658d723acd1f6dc77d2804bcf7fa Mon Sep 17 00:00:00 2001 From: mr Date: Thu, 16 Jun 2011 15:03:58 +0200 Subject: replace GMT with %Z --- views/model.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/model.haml b/views/model.haml index d5fbb24..c64d81e 100644 --- a/views/model.haml +++ b/views/model.haml @@ -36,7 +36,7 @@ %br %dt Started: - %dd= Time.parse(model.created_at.to_s).strftime("%m/%d/%Y - %I:%M:%S%p GMT") if model.created_at + %dd= Time.parse(model.created_at.to_s).strftime("%m/%d/%Y - %I:%M:%S%p %Z") if model.created_at - if model.nr_compounds %dt Training compounds: %dd= model.nr_compounds -- cgit v1.2.3 From a6bc5cd38c6880653fc4f30d1418ca8f664c9379 Mon Sep 17 00:00:00 2001 From: mr Date: Thu, 16 Jun 2011 15:39:38 +0200 Subject: add notice if there are no models --- views/models.haml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/views/models.haml b/views/models.haml index 6724807..9ab2858 100644 --- a/views/models.haml +++ b/views/models.haml @@ -21,3 +21,5 @@ - if @models - @models.each do |model| = haml :model, :locals=>{:model=>model,:subjectstring=>subjectstring}, :layout => false +-if @models.size == 0 + .notice There are currently no models. You have to create a model first. -- cgit v1.2.3 From 8f750e73832be3cccba8e53548e5ce7ffde2014b Mon Sep 17 00:00:00 2001 From: mr Date: Mon, 11 Jul 2011 12:03:21 +0200 Subject: do not refresh when an error occurs --- public/javascripts/toxcreate.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/javascripts/toxcreate.js b/public/javascripts/toxcreate.js index d9946c4..1769623 100755 --- a/public/javascripts/toxcreate.js +++ b/public/javascripts/toxcreate.js @@ -50,7 +50,7 @@ $(function() { if( status_before != status_after) { $("span#model_" + id + "_status").html(data); loadModel(id, 'model'); - if (status_after == "Completed") id = -1; + if (status_after == "Completed" || status_after == "Error") id = -1; } }, error: function(data) { -- cgit v1.2.3 From 2e79dc191027651acdda0e63c32da78a9c33148b Mon Sep 17 00:00:00 2001 From: mguetlein Date: Mon, 11 Jul 2011 14:02:59 +0200 Subject: modify error handling in toxcreate model creation --- application.rb | 43 ++++++++++++++++++++++++----------------- public/javascripts/toxcreate.js | 2 +- views/model.haml | 5 +++++ 3 files changed, 31 insertions(+), 19 deletions(-) diff --git a/application.rb b/application.rb index 75d4c70..a2ead03 100644 --- a/application.rb +++ b/application.rb @@ -17,11 +17,16 @@ set :lock, true helpers do - def error(message) + # message will be displayed to the user + # error will be raised -> taks will be set to error -> error details available via task-uri + def error(message, error=nil) LOGGER.error message @model.update :status => "Error", :error_messages => message - flash[:notice] = message - redirect url_for('/create') + if error + raise error + else + raise message + end end private @@ -75,6 +80,7 @@ end get '/models/?' do @models = ToxCreateModel.all.sort(:order => "DESC") + @models.each{|m| raise "internal redis error: model is nil" unless m} subjectstring = session[:subjectid] ? "?subjectid=#{CGI.escape(session[:subjectid])}" : "" haml :models, :locals=>{:models=>@models, :subjectstring => subjectstring} end @@ -225,7 +231,7 @@ post '/models' do # create a new model @model = ToxCreateModel.create(:name => name, :subjectid => subjectid) @model.update :web_uri => url_for("/model/#{@model.id}", :full), :warnings => "" - task = OpenTox::Task.create("Uploading dataset and creating lazar model",url_for("/models",:full)) do |task| + task = OpenTox::Task.create("Toxcreate Task - Uploading dataset and creating lazar model",url_for("/models",:full)) do |task| task.progress(5) @model.update :status => "Uploading and saving dataset", :task_uri => task.uri @@ -243,14 +249,14 @@ post '/models' do # create a new model File.rename(params[:file][:tempfile].path, excel_file) # add extension, spreadsheet does not read files without extensions @dataset.load_spreadsheet(Excel.new excel_file, subjectid) if @dataset.metadata[OT.Errors] - error "Incorrect file format. Please follow the instructions for #{link_to "Excel", "/help"} or #{link_to "CSV", "/help"} formats." + raise "Incorrect file format. Please follow the instructions for #{link_to "Excel", "/help"} or #{link_to "CSV", "/help"} formats." end else - error "#{params[:file][:filename]} has a unsupported file type." + raise "#{params[:file][:filename]} has an unsupported file type." end @dataset.save(subjectid) rescue => e - error "Dataset creation failed with #{e.message}" + error "Dataset creation failed '#{e.message}'",e end if @dataset.features.keys.size != 1 error "More than one feature in dataset #{params[:file][:filename]}. Please delete irrelvant columns and try again." @@ -267,11 +273,11 @@ post '/models' do # create a new model @model.update :warnings => @dataset.metadata[OT.Warnings] unless @dataset.metadata[OT.Warnings] and @dataset.metadata[OT.Warnings].empty? task.progress(15) begin - lazar = OpenTox::Model::Lazar.create(:dataset_uri => @dataset.uri, :prediction_feature => @prediction_feature.uri, :subjectid => subjectid) + lazar = OpenTox::Model::Lazar.create( {:dataset_uri => @dataset.uri, :prediction_feature => @prediction_feature.uri, :subjectid => subjectid}, + OpenTox::SubTask.new(task,15,25)) rescue => e - error "Model creation failed with '#{e.message}'."# Please check if the input file is in a valid #{link_to "Excel", "/help"} or #{link_to "CSV", "/help"} format." + error "Model creation failed",e # Please check if the input file is in a valid #{link_to "Excel", "/help"} or #{link_to "CSV", "/help"} format." end - task.progress(25) =begin type = "unknown" if lazar.metadata[RDF.type].grep(/Classification/) @@ -304,27 +310,28 @@ post '/models' do # create a new model eval "@model.update :#{k.to_s} => 0" end end - + rescue => e + @model.update :warnings => @model.warnings.to_s+"\nModel validation failed with #{e.message}." + error "Model validation failed",e + end + + begin @model.update :status => "Creating validation report" validation_report_uri = validation.find_or_create_report(subjectid, OpenTox::SubTask.new(task,80,90)) #unless @model.dirty? @model.update :validation_report_uri => validation_report_uri, :status => "Creating QMRF report" qmrf_report = OpenTox::Crossvalidation::QMRFReport.create(@model.uri, subjectid, OpenTox::SubTask.new(task,90,99)) @model.update(:validation_qmrf_uri => qmrf_report.uri, :status => "Completed") - rescue => e - LOGGER.debug "Model validation failed with #{e.message}." - @model.save # to avoid dirty models - @model.update :warnings => @model.warnings.to_s+"\nModel validation failed with #{e.message}.", :status => "Error", :error_messages => e.message + error "Model report creation failed",e end - else @model.update(:status => "Completed") #, :warnings => @model.warnings + "\nValidation service cannot be accessed from localhost.") - task.progress(100) + task.progress(99) end lazar.uri end @model.update :task_uri => task.uri - + sleep 0.25 # power nap: ohm sometimes returns nil values for model.status or for model itself flash[:notice] = "Model creation and validation started - this may last up to several hours depending on the number and size of the training compounds." redirect url_for('/models') diff --git a/public/javascripts/toxcreate.js b/public/javascripts/toxcreate.js index d9946c4..1769623 100755 --- a/public/javascripts/toxcreate.js +++ b/public/javascripts/toxcreate.js @@ -50,7 +50,7 @@ $(function() { if( status_before != status_after) { $("span#model_" + id + "_status").html(data); loadModel(id, 'model'); - if (status_after == "Completed") id = -1; + if (status_after == "Completed" || status_after == "Error") id = -1; } }, error: function(data) { diff --git a/views/model.haml b/views/model.haml index c64d81e..d54150d 100644 --- a/views/model.haml +++ b/views/model.haml @@ -43,6 +43,11 @@ - if model.error_messages %dt Errors: %dd= model.error_messages + - if CONFIG[:logger]=="debug" + %dt Task: + %dd + %a{:href => "#{model.task_uri}", :rel => "external"} + = model.task_uri - if model.warnings %dt Warnings: %a{:href => "#", :id => "show_model_#{model.id}_warnings"} show -- cgit v1.2.3 From da05e77d831aa174adfa8d487345f2c6f3a80ec3 Mon Sep 17 00:00:00 2001 From: mr Date: Tue, 12 Jul 2011 11:43:53 +0200 Subject: fix broken prediction details https://github.com/opentox/toxcreate/issues/49 --- application.rb | 1 + helper.rb | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/application.rb b/application.rb index a2ead03..54aeb3d 100644 --- a/application.rb +++ b/application.rb @@ -359,6 +359,7 @@ post '/predict/?' do # post chemical name to model db_activities = [] lazar = OpenTox::Model::Lazar.new model.uri prediction_dataset_uri = lazar.run({:compound_uri => @compound.uri, :subjectid => subjectid}) + LOGGER.debug "Prediction dataset_uri: #{prediction_dataset_uri}" prediction_dataset = OpenTox::LazarPrediction.find(prediction_dataset_uri, subjectid) if prediction_dataset.metadata[OT.hasSource].match(/dataset/) @predictions << { diff --git a/helper.rb b/helper.rb index 2bbab30..0acb90e 100644 --- a/helper.rb +++ b/helper.rb @@ -53,7 +53,13 @@ helpers do def sort(descriptors) features = {:activating => [], :deactivating => []} - descriptors.each { |d| features[d[OT.effect].to_sym] << {:smarts => d[OT.smarts],:p_value => d[OT.pValue]} } + descriptors.each do |d| + if d[OT.effect] =~ TRUE_REGEXP + features[:activating] << {:smarts => d[OT.smarts],:p_value => d[OT.pValue]} + elsif d[OT.effect] =~ FALSE_REGEXP + features[:deactivating] << {:smarts => d[OT.smarts],:p_value => d[OT.pValue]} + end + end features end -- cgit v1.2.3 From 425cbf28a4686e59e9e46b9987f1e3d8348f39a1 Mon Sep 17 00:00:00 2001 From: mr Date: Tue, 12 Jul 2011 11:45:36 +0200 Subject: fix broken prediction details https://github.com/opentox/toxcreate/issues/49 --- helper.rb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/helper.rb b/helper.rb index 2bbab30..b3be149 100644 --- a/helper.rb +++ b/helper.rb @@ -53,7 +53,13 @@ helpers do def sort(descriptors) features = {:activating => [], :deactivating => []} - descriptors.each { |d| features[d[OT.effect].to_sym] << {:smarts => d[OT.smarts],:p_value => d[OT.pValue]} } + descriptors.each do |d| + if d[OT.effect] =~ TRUE_REGEXP + features[:activating] << {:smarts => d[OT.smarts],:p_value => d[OT.pValue]} + elsif d[OT.effect] =~ FALSE_REGEXP + features[:deactivating] << {:smarts => d[OT.smarts],:p_value => d[OT.pValue]} + end + end features end -- cgit v1.2.3 From feccf0995ef995a4d32119fb5582b9a37b7f9dd0 Mon Sep 17 00:00:00 2001 From: mr Date: Wed, 13 Jul 2011 16:07:52 +0200 Subject: fix invalid HTML --- public/javascripts/toxcreate.js | 4 ++-- views/model.haml | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/public/javascripts/toxcreate.js b/public/javascripts/toxcreate.js index 1769623..68cd769 100755 --- a/public/javascripts/toxcreate.js +++ b/public/javascripts/toxcreate.js @@ -4,10 +4,10 @@ $(function() { var id = id; this.bind("click", function() { if($("a#show_model_" + id + "_warnings").html()=="show") { - $("dd#model_" + id + "_warnings").slideDown("slow"); + $("div#model_" + id + "_warnings").slideDown("slow"); $("a#show_model_" + id + "_warnings").html("hide"); }else{ - $("dd#model_" + id + "_warnings").slideUp("slow"); + $("div#model_" + id + "_warnings").slideUp("slow"); $("a#show_model_" + id + "_warnings").html("show"); } return false; diff --git a/views/model.haml b/views/model.haml index c64d81e..e9d3b95 100644 --- a/views/model.haml +++ b/views/model.haml @@ -45,8 +45,10 @@ %dd= model.error_messages - if model.warnings %dt Warnings: - %a{:href => "#", :id => "show_model_#{model.id}_warnings"} show - %dd{:id => "model_#{model.id}_warnings", :style => "display: none;"}= model.warnings + + %dd + %a{:href => "#", :id => "show_model_#{model.id}_warnings"} show + %div{:id => "model_#{model.id}_warnings", :style => "display: none;"}= model.warnings %dt Algorithm: %dd= toggle_link("#lazar_description","lazar") - if model.type -- cgit v1.2.3 From 6505452f82c04017911e1ca1713c9fd08b775249 Mon Sep 17 00:00:00 2001 From: mr Date: Wed, 13 Jul 2011 16:13:42 +0200 Subject: fix invalid HTML --- public/javascripts/toxcreate.js | 4 ++-- views/model.haml | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/public/javascripts/toxcreate.js b/public/javascripts/toxcreate.js index 1769623..68cd769 100755 --- a/public/javascripts/toxcreate.js +++ b/public/javascripts/toxcreate.js @@ -4,10 +4,10 @@ $(function() { var id = id; this.bind("click", function() { if($("a#show_model_" + id + "_warnings").html()=="show") { - $("dd#model_" + id + "_warnings").slideDown("slow"); + $("div#model_" + id + "_warnings").slideDown("slow"); $("a#show_model_" + id + "_warnings").html("hide"); }else{ - $("dd#model_" + id + "_warnings").slideUp("slow"); + $("div#model_" + id + "_warnings").slideUp("slow"); $("a#show_model_" + id + "_warnings").html("show"); } return false; diff --git a/views/model.haml b/views/model.haml index d54150d..d2637c8 100644 --- a/views/model.haml +++ b/views/model.haml @@ -50,8 +50,9 @@ = model.task_uri - if model.warnings %dt Warnings: - %a{:href => "#", :id => "show_model_#{model.id}_warnings"} show - %dd{:id => "model_#{model.id}_warnings", :style => "display: none;"}= model.warnings + %dd + %a{:href => "#", :id => "show_model_#{model.id}_warnings"} show + %div{:id => "model_#{model.id}_warnings", :style => "display: none;"}= model.warnings %dt Algorithm: %dd= toggle_link("#lazar_description","lazar") - if model.type -- cgit v1.2.3 From 183fa2384e642374e7b51ba10aaa29c20bff549f Mon Sep 17 00:00:00 2001 From: mr Date: Wed, 13 Jul 2011 16:30:55 +0200 Subject: javascript for external links if html parts are after document.ready event --- public/javascripts/toxcreate.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/public/javascripts/toxcreate.js b/public/javascripts/toxcreate.js index 68cd769..a5dc44c 100755 --- a/public/javascripts/toxcreate.js +++ b/public/javascripts/toxcreate.js @@ -101,6 +101,7 @@ $(function() { success: function(data) { if (view == "model") $("div#model_" + id).html(data); if (view.match(/validation/)) $("dl#model_validation_" + id).html(data); + addExternalLinks(); }, error: function(data) { //alert("loadModel error"); @@ -228,6 +229,10 @@ jQuery.fn.deleteModel = function(type, options) { }; $(document).ready(function() { + addExternalLinks(); +}); + +addExternalLinks = function() { $('A[rel="external"]').each(function() { $(this).attr('alt', 'Link opens in new window.'); $(this).attr('title', 'Link opens in new window.'); @@ -236,5 +241,4 @@ $(document).ready(function() { window.open($(this).attr('href')); return false; }); -}); - +}; -- cgit v1.2.3 From 46451d215e87c8009c95a894522cb44b214e0e57 Mon Sep 17 00:00:00 2001 From: mr Date: Fri, 15 Jul 2011 12:21:01 +0200 Subject: crossvalidation confusion matrix multinominal --- application.rb | 30 ++++++++++++------ helper.rb | 2 +- model.rb | 10 ++---- views/classification_validation.haml | 59 +++++++++++++++++++++--------------- 4 files changed, 60 insertions(+), 41 deletions(-) diff --git a/application.rb b/application.rb index 54aeb3d..2e058bb 100644 --- a/application.rb +++ b/application.rb @@ -291,7 +291,7 @@ post '/models' do # create a new model if CONFIG[:services]["opentox-validation"] @model.update :status => "Validating model" begin - validation = OpenTox::Crossvalidation.create( { + crossvalidation = OpenTox::Crossvalidation.create( { :algorithm_uri => lazar.metadata[OT.algorithm], :dataset_uri => lazar.parameter("dataset_uri"), :subjectid => subjectid, @@ -299,25 +299,37 @@ post '/models' do # create a new model :algorithm_params => "feature_generation_uri=#{lazar.parameter("feature_generation_uri")}" }, nil, OpenTox::SubTask.new(task,25,80)) - @model.update(:validation_uri => validation.uri) + @model.update(:validation_uri => crossvalidation.uri) LOGGER.debug "Validation URI: #{@model.validation_uri}" # create summary - validation.summary(subjectid).each do |k,v| - begin - eval "@model.update :#{k.to_s} => v" if v - rescue - eval "@model.update :#{k.to_s} => 0" + validation = crossvalidation.statistics(subjectid) + @model.update(:nr_predictions => validation.metadata[OT.numInstances].to_i - validation.metadata[OT.numUnpredicted].to_i) + if validation.metadata[OT.classificationStatistics] + @model.update(:correct_predictions => validation.metadata[OT.classificationStatistics][OT.percentCorrect].to_f) + @model.update(:confusion_matrix => validation.confusion_matrix.to_yaml) + @model.update(:weighted_area_under_roc => validation.metadata[OT.classificationStatistics][OT.weightedAreaUnderRoc].to_f) + validation.metadata[OT.classificationStatistics][OT.classValueStatistics].each do |m| + if m[OT.classValue] =~ TRUE_REGEXP + #HACK: estimate true feature value correctly + @model.update(:sensitivity => m[OT.truePositiveRate]) + @model.update(:specificity => m[OT.trueNegativeRate]) + break + end end + else + @model.update(:r_square => validation.metadata[OT.regressionStatistics][OT.rSquare].to_f) + @model.update(:root_mean_squared_error => validation.metadata[OT.regressionStatistics][OT.rootMeanSquaredError].to_f) + @model.update(:mean_absolute_error => validation.metadata[OT.regressionStatistics][OT.meanAbsoluteError].to_f) end rescue => e - @model.update :warnings => @model.warnings.to_s+"\nModel validation failed with #{e.message}." + @model.update :warnings => @model.warnings.to_s+"\nModel crossvalidation failed with #{e.message}." error "Model validation failed",e end begin @model.update :status => "Creating validation report" - validation_report_uri = validation.find_or_create_report(subjectid, OpenTox::SubTask.new(task,80,90)) #unless @model.dirty? + validation_report_uri = crossvalidation.find_or_create_report(subjectid, OpenTox::SubTask.new(task,80,90)) #unless @model.dirty? @model.update :validation_report_uri => validation_report_uri, :status => "Creating QMRF report" qmrf_report = OpenTox::Crossvalidation::QMRFReport.create(@model.uri, subjectid, OpenTox::SubTask.new(task,90,99)) @model.update(:validation_qmrf_uri => qmrf_report.uri, :status => "Completed") diff --git a/helper.rb b/helper.rb index 0acb90e..408f8bc 100644 --- a/helper.rb +++ b/helper.rb @@ -53,7 +53,7 @@ helpers do def sort(descriptors) features = {:activating => [], :deactivating => []} - descriptors.each do |d| + descriptors.each do |d| if d[OT.effect] =~ TRUE_REGEXP features[:activating] << {:smarts => d[OT.smarts],:p_value => d[OT.pValue]} elsif d[OT.effect] =~ FALSE_REGEXP diff --git a/model.rb b/model.rb index 5b1f4f5..e433893 100644 --- a/model.rb +++ b/model.rb @@ -27,14 +27,10 @@ class ToxCreateModel < Ohm::Model #attributey :validation_qmrf_task_uri attribute :validation_qmrf_uri - + attribute :confusion_matrix attribute :nr_compounds - attribute :nr_predictions - attribute :true_positives - attribute :false_positives - attribute :true_negatives - attribute :false_negatives - attribute :correct_predictions + attribute :nr_predictions + attribute :correct_predictions attribute :weighted_area_under_roc attribute :sensitivity attribute :specificity diff --git a/views/classification_validation.haml b/views/classification_validation.haml index 5649d7f..f25a321 100644 --- a/views/classification_validation.haml +++ b/views/classification_validation.haml @@ -1,33 +1,44 @@ %dt Correct predictions: %dd - = sprintf("%.2f", model.correct_predictions.to_f) if model.correct_predictions - = '%' + = sprintf("%.2f", model.correct_predictions.to_f) if model.correct_predictions + = '%' %dt - %a{:href => "http://en.wikipedia.org/wiki/Receiver_operating_characteristic", :rel => "external"} Weighted area under ROC: + %a{:href => "http://en.wikipedia.org/wiki/Receiver_operating_characteristic", :rel => "external"} Weighted area under ROC: %dd - = sprintf("%.3f", model.weighted_area_under_roc.to_f) if model.weighted_area_under_roc + = sprintf("%.3f", model.weighted_area_under_roc.to_f) if model.weighted_area_under_roc %dt - %a{:href => "http://en.wikipedia.org/wiki/Sensitivity_and_specificity", :rel => "external"} Specificity: + %a{:href => "http://en.wikipedia.org/wiki/Sensitivity_and_specificity", :rel => "external"} Specificity: %dd= sprintf("%.3f", model.specificity.to_f) if model.specificity %dt - %a{:href => "http://en.wikipedia.org/wiki/Sensitivity_and_specificity", :rel => "external"} Sensitivity: + %a{:href => "http://en.wikipedia.org/wiki/Sensitivity_and_specificity", :rel => "external"} Sensitivity: %dd= sprintf("%.3f", model.sensitivity.to_f) if model.sensitivity %dt - %a{:href => "http://en.wikipedia.org/wiki/Confusion_matrix", :rel => "external"} Confusion Matrix: -%dd - %table - %tr - %td{:colspan => 2, :rowspan => 2} - %th{:colspan => 2} Measured - %tr - %th{:bgcolor => "#CCD2DC"} active - %th{:bgcolor => "#CCD2DC"} inactive - %tr - %th{:rowspan => 2} Predicted - %th{:bgcolor => "#CCD2DC"} active - %td= model.true_positives if model.true_positives - %td= model.false_positives if model.false_positives - %tr - %th{:bgcolor => "#CCD2DC"} inactive - %td= model.false_negatives if model.false_negatives - %td= model.true_negatives if model.true_negatives + %a{:href => "http://en.wikipedia.org/wiki/Confusion_matrix", :rel => "external"} Confusion Matrix: +- if model.confusion_matrix + - cm = YAML.load(model.confusion_matrix) + %dd + %table + %tr + %td{:colspan => 2, :rowspan => 2} + %th{:colspan => (cm.size - 1)} Measured + %tr + - (1..cm[0].size-1).each do |i| + %th{:bgcolor => "#CCD2DC"} + = cm[0][i] + %tr + %th{:rowspan => (cm.size - 1)} Predicted + - (0..cm[1].size-1).each do |i| + - if i == 0 + %th{:bgcolor => "#CCD2DC"} + = cm[1][i] + - else + %td= cm[1][i] + - if cm.size > 2 + - (2..cm.size-1).each do |i| + %tr + - (0..cm[i].size-1).each do |j| + - if j == 0 + %th{:bgcolor => "#CCD2DC"} + = cm[i][j] + - else + %td= cm[i][j] -- cgit v1.2.3 From 41945b3dc251ca00580916c3cbc7d26c2093ca89 Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Mon, 25 Jul 2011 16:25:10 +0000 Subject: text modifications as suggested by davids review --- views/create.haml | 17 ++++++++++++++--- views/layout.haml | 13 ++++++++++++- views/style.sass | 1 + 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/views/create.haml b/views/create.haml index 757adc2..11482c5 100644 --- a/views/create.haml +++ b/views/create.haml @@ -1,6 +1,12 @@ .input - This service creates + This service creates and validates new + %em= toggle_link("#classification","classification") + and + %em= toggle_link("#regression","regression") + structure-activity models from your experimental data. The models can be used to predict toxicity of new chemicals (e.g. for + %a{:href => "http://ec.europa.eu/environment/chemicals/reach/reach_intro.htm", :rel => "external"} REACH + purposes) and to reduce the need for animal testing. The following methods are currently available: %ul %li = toggle_link("#lazar_description","lazar") @@ -10,9 +16,14 @@ = toggle_link("#lazar_description","lazar") %em= toggle_link("#regression","regression") models (experimental) - from your uploaded datasets. Further modelling algorithms will be added in future versions. - + Further modelling algorithms will be added in future versions. + %p + To create a prediction model, you will need to upload training data that includes chemical structures and their measured toxicity values, in + = link_to "Excel", '/help' + or + = link_to "CSV", '/help' + file formats. Please read the = link_to "instructions for creating training datasets", '/help' before submitting. diff --git a/views/layout.haml b/views/layout.haml index 174db9f..6f6afcb 100644 --- a/views/layout.haml +++ b/views/layout.haml @@ -14,7 +14,7 @@ .logo %img{:src => "ToxCreate_rgb_72.png", :alt => 'ToxCreate', :align => 'right'}/ %br - Create and evaluate models to predict toxicity + Creates computational models to predict toxicity .index %ul %li{:class => ("selected" if /\/create|echa|ambit|feature/ =~ request.path )} @@ -47,7 +47,18 @@ = yield .footer + Disclaimer: ToxCreate uses state-of-the-art published and tested algorithms and methodologies with full validation information. However, just as with experimental measurements, computational predictions are subject to varying degrees of accuracy and uncertainty, so please read the full report carefully, particularly the validation information. No liability is accepted for any inaccuracy in predictions. + %p + - tag = `git tag`.split("\n").last + - tagdate = `git show #{tag}|grep Date`.chomp + Version: + = tag + , + = tagdate © %a{:href => 'http://www.in-silico.ch', :rel => "external"} in silico toxicology 2009-2011, powered by %a{:href => 'http://www.opentox.org', :rel => "external"} OpenTox + (a project funded by the + %a{:href => "http://cordis.europa.eu/fp7/"} 7th Framework Programme + of the European Commission) diff --git a/views/style.sass b/views/style.sass index ffae6a5..15ae256 100644 --- a/views/style.sass +++ b/views/style.sass @@ -220,6 +220,7 @@ body .footer margin: 0.5em padding: 0.5em + font-size: small .active color: red -- cgit v1.2.3 From 091957683d81ab84412581dea062e1294fc00a33 Mon Sep 17 00:00:00 2001 From: gebele Date: Tue, 26 Jul 2011 12:17:09 +0200 Subject: fp7 link to new window --- views/layout.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/layout.haml b/views/layout.haml index 6f6afcb..d20b964 100644 --- a/views/layout.haml +++ b/views/layout.haml @@ -60,5 +60,5 @@ 2009-2011, powered by %a{:href => 'http://www.opentox.org', :rel => "external"} OpenTox (a project funded by the - %a{:href => "http://cordis.europa.eu/fp7/"} 7th Framework Programme + %a{:href => "http://cordis.europa.eu/fp7/", :rel => "external"} 7th Framework Programme of the European Commission) -- cgit v1.2.3 From b8d1c67894585729573e4e7270141f36924d0ac7 Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Thu, 28 Jul 2011 15:45:44 +0000 Subject: sdf upload implemented --- application.rb | 3 + public/hamster_carcinogenicity.sdf | 2805 ++++++++++++++++++++++++++++++++++++ views/create.haml | 11 +- views/help.haml | 61 +- 4 files changed, 2865 insertions(+), 15 deletions(-) create mode 100644 public/hamster_carcinogenicity.sdf diff --git a/application.rb b/application.rb index 2e058bb..328384a 100644 --- a/application.rb +++ b/application.rb @@ -251,6 +251,9 @@ post '/models' do # create a new model if @dataset.metadata[OT.Errors] raise "Incorrect file format. Please follow the instructions for #{link_to "Excel", "/help"} or #{link_to "CSV", "/help"} formats." end + when ".sdf" + sdf = params[:file][:tempfile].read + @dataset.load_sdf(sdf, subjectid) else raise "#{params[:file][:filename]} has an unsupported file type." end diff --git a/public/hamster_carcinogenicity.sdf b/public/hamster_carcinogenicity.sdf new file mode 100644 index 0000000..df230d5 --- /dev/null +++ b/public/hamster_carcinogenicity.sdf @@ -0,0 +1,2805 @@ + + + + 3 2 0 0 0 0 0 0 0 0 1 V2000 + 2.3030 -0.6656 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1515 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -0.6656 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 2 0 0 0 0 +M END +> +active + +$$$$ + + + + 17 19 0 0 0 0 0 0 0 0 1 V2000 + 5.7640 -1.7698 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.0213 -1.3540 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.8046 -2.4275 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.1296 -2.2921 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.6712 -1.0735 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.8878 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.5629 -0.1451 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.0213 -3.5106 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7640 -3.0948 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6035 -3.7621 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4526 -3.0948 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4526 -1.7698 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6035 -1.1025 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3017 -3.7621 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1509 -3.0948 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -3.7621 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1509 -1.7698 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 1 9 1 0 0 0 0 + 1 13 2 0 0 0 0 + 2 3 2 0 0 0 0 + 2 7 1 0 0 0 0 + 3 4 1 0 0 0 0 + 3 8 1 0 0 0 0 + 4 5 2 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 2 0 0 0 0 + 8 9 1 0 0 0 0 + 9 10 2 0 0 0 0 + 10 11 1 0 0 0 0 + 11 12 2 0 0 0 0 + 11 14 1 0 0 0 0 + 12 13 1 0 0 0 0 + 14 15 1 0 0 0 0 + 15 16 1 0 0 0 0 + 15 17 2 0 0 0 0 +M END +> +active + +$$$$ + + + + 18 19 0 0 0 0 0 0 0 0 2 V2000 + 3.2537 -3.5906 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.2537 -2.2607 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.4062 -1.5958 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.4062 -4.2555 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 2.1011 -4.2555 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9682 -0.2748 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 0.6649 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.1011 -1.5958 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -1.1525 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.8866 -2.1366 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7006 -3.5817 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 7.0038 -3.8654 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.5587 -2.2607 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.6687 -2.7129 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.7733 -1.7199 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.5446 -5.0800 0.0000 N 0 3 0 0 0 0 0 0 0 0 0 0 + 6.7644 -6.1527 0.0000 O 0 5 0 0 0 0 0 0 0 0 0 0 + 8.8656 -5.2130 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 1 5 1 0 0 0 0 + 1 4 2 0 0 0 0 + 2 3 2 0 0 0 0 + 2 8 1 0 0 0 0 + 3 13 1 0 0 0 0 + 6 7 1 0 0 0 0 + 6 8 1 0 0 0 0 + 7 9 2 0 0 0 0 + 8 10 2 0 0 0 0 + 9 10 1 0 0 0 0 + 11 12 1 0 0 0 0 + 11 13 1 0 0 0 0 + 12 14 2 0 0 0 0 + 12 16 1 0 0 0 0 + 13 15 2 0 0 0 0 + 14 15 1 0 0 0 0 + 16 17 1 0 0 0 0 + 16 18 2 0 0 0 0 +M CHG 2 16 1 17 -1 +M END +> +active + +$$$$ + + + + 6 6 0 0 0 0 0 0 0 0 1 V2000 + 1.3304 -1.0738 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.1104 0.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 3.3767 -0.4086 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.3767 -1.7390 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 2.1104 -2.1509 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -1.0738 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 1 5 2 0 0 0 0 + 1 6 1 0 0 0 0 + 2 3 2 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 1 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 13 13 0 0 0 0 0 0 0 0 1 V2000 + 1.1541 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3012 -0.6703 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4553 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6094 -0.6703 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6094 -1.9972 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4553 -2.6606 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3012 -1.9972 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1541 -2.6606 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.4837 -1.5134 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.8175 -3.8147 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -3.3309 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7566 -2.6606 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9107 -1.9972 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 2 0 0 0 0 + 2 7 1 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 2 0 0 0 0 + 5 6 1 0 0 0 0 + 5 12 1 0 0 0 0 + 6 7 2 0 0 0 0 + 7 8 1 0 0 0 0 + 8 9 1 0 0 0 0 + 8 10 1 0 0 0 0 + 8 11 1 0 0 0 0 + 12 13 1 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 3 0 0 0 0 0 0 0 0 0 2 V2000 + 10.0000 -0.0700 0.0000 Cl 0 5 0 0 0 0 0 0 0 0 0 0 + 4.5200 0.0000 0.0000 Cd 0 2 0 0 0 0 0 0 0 0 0 0 + 0.0000 -0.3400 0.0000 Cl 0 5 0 0 0 0 0 0 0 0 0 0 +M CHG 3 1 -1 2 2 3 -1 +M END +> +inactive + +$$$$ + + + + 6 4 0 0 0 0 0 0 0 0 2 V2000 + 2.6600 -2.6600 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6600 -1.3320 0.0000 S 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6600 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3280 -1.3320 0.0000 O 0 5 0 0 0 0 0 0 0 0 0 0 + 3.9880 -1.3320 0.0000 O 0 5 0 0 0 0 0 0 0 0 0 0 + 0.0000 -1.3320 0.0000 Cd 0 2 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 2 3 2 0 0 0 0 + 2 4 1 0 0 0 0 + 2 5 1 0 0 0 0 +M CHG 3 4 -1 5 -1 6 2 +M END +> +inactive + +$$$$ + + + + 0 0 0 0 0 0 0 0 0 0 1 V2000 +M END +> +inactive + +$$$$ + + + + 21 22 0 0 0 0 0 0 0 0 1 V2000 + 5.7698 0.0000 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7698 -1.3315 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9111 -2.0036 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9111 -3.3351 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7698 -3.9945 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6158 -3.3351 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6158 -2.0036 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4619 -3.9945 0.0000 S 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3079 -3.3351 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1540 -3.9945 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1540 -5.3260 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -3.3351 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 8.0650 -3.9945 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 9.2190 -3.3351 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.2190 -2.0036 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 10.3730 -1.3315 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 11.5269 -2.0036 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 11.5269 -3.3351 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 10.3730 -3.9945 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 10.3730 -5.3260 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 12.6809 -3.9945 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 2 0 0 0 0 + 2 7 1 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 2 0 0 0 0 + 4 13 1 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 2 0 0 0 0 + 6 8 1 0 0 0 0 + 8 9 1 0 0 0 0 + 9 10 1 0 0 0 0 + 10 11 2 0 0 0 0 + 10 12 1 0 0 0 0 + 13 14 1 0 0 0 0 + 14 15 2 0 0 0 0 + 14 19 1 0 0 0 0 + 15 16 1 0 0 0 0 + 16 17 2 0 0 0 0 + 17 18 1 0 0 0 0 + 18 19 2 0 0 0 0 + 18 21 1 0 0 0 0 + 19 20 1 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 4 3 0 0 0 0 0 0 0 0 1 V2000 + 3.4575 0.0000 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3061 -0.6638 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1513 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -0.6638 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 +M END +> +active + +$$$$ + + + + 5 4 0 0 0 0 0 0 0 0 1 V2000 + 2.2415 -0.6520 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1191 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.3606 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -0.6520 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.2415 -2.0836 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 1 3 2 0 0 0 0 + 1 5 1 0 0 0 0 + 2 4 2 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 21 22 0 0 0 0 0 0 0 0 1 V2000 + 12.5806 -1.3138 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 11.2668 -1.3138 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.9397 -1.3138 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 5.3083 -2.4683 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9945 -2.4683 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 13.2574 -0.1592 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.3177 -1.3138 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.9718 -1.3138 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.3177 -3.6229 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.9585 -3.6229 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 13.2707 -2.4683 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 9.2762 -2.4683 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3403 -2.4683 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.9359 -2.4683 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9906 -1.3138 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9906 -3.6229 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.2989 -3.6229 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.2989 -1.3138 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -2.4683 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 11.2668 -2.6674 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 11.2668 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 1 6 2 0 0 0 0 + 1 11 1 0 0 0 0 + 2 3 1 0 0 0 0 + 2 20 1 0 0 0 0 + 2 21 1 0 0 0 0 + 3 12 1 0 0 0 0 + 4 8 2 0 0 0 0 + 4 5 1 0 0 0 0 + 4 10 1 0 0 0 0 + 5 7 1 0 0 0 0 + 5 9 2 0 0 0 0 + 7 15 2 0 0 0 0 + 8 18 1 0 0 0 0 + 9 16 1 0 0 0 0 + 10 17 2 0 0 0 0 + 12 14 1 0 0 0 0 + 13 16 2 0 0 0 0 + 13 19 1 0 0 0 0 + 13 15 1 0 0 0 0 + 14 17 1 0 0 0 0 + 14 18 2 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 11 12 0 0 0 0 0 0 0 0 1 V2000 + 0.0000 -2.6606 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1518 -1.9983 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3036 -2.6606 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4554 -1.9983 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4554 -0.6680 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6071 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7589 -0.6680 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7589 -1.9983 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6071 -2.6606 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3036 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1518 -0.6680 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 2 3 1 0 0 0 0 + 2 11 1 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 2 0 0 0 0 + 4 9 1 0 0 0 0 + 5 6 1 0 0 0 0 + 5 10 1 0 0 0 0 + 6 7 2 0 0 0 0 + 7 8 1 0 0 0 0 + 8 9 2 0 0 0 0 + 10 11 2 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 18 19 0 0 0 0 0 0 0 0 1 V2000 + 3.4540 0.0000 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6054 -0.6632 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6054 -1.9895 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7567 -2.6527 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9080 -1.9895 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.0594 -2.6527 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.0594 -3.9882 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9080 -4.6514 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7567 -3.9882 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.2107 -4.6514 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4540 -2.6527 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4540 -3.9882 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3027 -4.6514 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1513 -3.9882 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1513 -2.6527 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3027 -1.9895 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -4.6514 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7567 0.0000 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 2 0 0 0 0 + 2 18 1 0 0 0 0 + 3 4 1 0 0 0 0 + 3 11 1 0 0 0 0 + 4 5 2 0 0 0 0 + 4 9 1 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 2 0 0 0 0 + 7 8 1 0 0 0 0 + 7 10 1 0 0 0 0 + 8 9 2 0 0 0 0 + 11 12 2 0 0 0 0 + 11 16 1 0 0 0 0 + 12 13 1 0 0 0 0 + 13 14 2 0 0 0 0 + 14 15 1 0 0 0 0 + 14 17 1 0 0 0 0 + 15 16 2 0 0 0 0 +M END +> +active + +$$$$ + + + + 19 20 0 0 0 0 0 0 0 0 1 V2000 + 3.2800 -1.3268 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6068 -1.3268 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6068 -2.6535 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7585 -3.3169 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9102 -2.6535 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.0619 -3.3169 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.0619 -4.6529 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9102 -5.3162 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7585 -4.6529 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.2136 -5.3162 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4551 -3.3169 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4551 -4.6529 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3034 -5.3162 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1517 -4.6529 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1517 -3.3169 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3034 -2.6535 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -5.3162 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6068 0.0000 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 5.9336 -1.3268 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 1 0 0 0 0 + 2 18 1 0 0 0 0 + 2 19 1 0 0 0 0 + 3 4 1 0 0 0 0 + 3 11 1 0 0 0 0 + 4 5 2 0 0 0 0 + 4 9 1 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 2 0 0 0 0 + 7 8 1 0 0 0 0 + 7 10 1 0 0 0 0 + 8 9 2 0 0 0 0 + 11 12 2 0 0 0 0 + 11 16 1 0 0 0 0 + 12 13 1 0 0 0 0 + 13 14 2 0 0 0 0 + 14 15 1 0 0 0 0 + 14 17 1 0 0 0 0 + 15 16 2 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 9 8 0 0 0 0 0 0 0 0 1 V2000 + 2.6588 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9976 -1.1548 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6588 -2.3049 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9976 -3.4597 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6588 -4.6098 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9905 -4.6098 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6563 -3.4597 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.6659 -3.4597 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -2.3049 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 1 0 0 0 0 + 4 8 1 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 2 0 0 0 0 + 8 9 2 0 0 0 0 +M END +> +active + +$$$$ + + + + 19 23 0 0 0 0 0 0 0 0 1 V2000 + 1.2310 -2.6401 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -2.6401 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 0.6007 -3.6931 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.2470 -2.9219 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4113 -2.7068 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.7946 -3.9008 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.1061 -5.0280 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.3001 -3.6931 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.8500 -2.0023 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.3902 -3.1295 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.6954 -3.7599 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.3258 -2.7068 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.4159 -2.4250 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 6.1478 -4.8203 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9749 -4.3235 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 4.3902 -0.7787 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.1318 0.0000 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 3.5522 -0.0742 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 5.6583 -1.1643 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 1 3 1 0 0 0 0 + 1 4 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 6 1 0 0 0 0 + 4 5 1 0 0 0 0 + 4 7 1 0 0 0 0 + 5 9 1 0 0 0 0 + 5 8 1 0 0 0 0 + 6 7 1 0 0 0 0 + 6 8 1 0 0 0 0 + 8 10 1 0 0 0 0 + 9 12 1 0 0 0 0 + 9 16 1 0 0 0 0 + 9 19 1 0 0 0 0 + 10 11 1 0 0 0 0 + 10 16 1 0 0 0 0 + 10 15 1 0 0 0 0 + 11 12 2 0 0 0 0 + 11 14 1 0 0 0 0 + 12 13 1 0 0 0 0 + 16 17 1 0 0 0 0 + 16 18 1 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 6 5 0 0 0 0 0 0 0 0 1 V2000 + 1.3307 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9943 -1.1509 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3307 -2.3053 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9943 -3.4563 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -2.3053 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.3250 -1.1509 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 2 3 1 0 0 0 0 + 2 6 1 0 0 0 0 + 3 4 1 0 0 0 0 + 3 5 1 0 0 0 0 +M END +> +active + +$$$$ + + + + 4 3 0 0 0 0 0 0 0 0 1 V2000 + 1.9950 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3292 -1.1518 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9950 -2.3037 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -1.1518 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 1 0 0 0 0 + 2 4 1 0 0 0 0 +M END +> +active + +$$$$ + + + + 8 5 0 0 0 0 0 0 0 0 1 V2000 + 2.7482 -0.6668 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9000 0.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 5.0518 -0.6668 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.5964 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6623 -1.9955 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9909 -1.9955 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -1.9955 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3286 -1.9955 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 1 4 1 0 0 0 0 + 2 3 1 0 0 0 0 + 5 6 1 0 0 0 0 + 7 8 1 0 0 0 0 +M END +> +active + +$$$$ + + + + 3 2 0 0 0 0 0 0 0 0 1 V2000 + 2.3030 -0.6656 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1515 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -0.6656 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 1 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 11 10 0 0 0 0 0 0 0 0 1 V2000 + 2.2999 -3.9852 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 2.2999 -2.6591 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1534 -1.9891 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1534 -0.6630 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -2.6591 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -3.9852 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4534 -1.9891 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6068 -2.6591 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7533 -1.9891 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9067 -2.6591 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 2 3 1 0 0 0 0 + 2 8 1 0 0 0 0 + 3 4 1 0 0 0 0 + 3 6 1 0 0 0 0 + 4 5 1 0 0 0 0 + 6 7 2 0 0 0 0 + 8 9 1 0 0 0 0 + 9 10 1 0 0 0 0 + 10 11 1 0 0 0 0 +M END +> +active + +$$$$ + + + + 12 11 0 0 0 0 0 0 0 0 1 V2000 + 2.3006 -3.9862 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3006 -2.6598 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1537 -1.9897 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1537 -0.6632 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -2.6598 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -3.9862 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4543 -1.9897 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6080 -2.6598 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7548 -1.9897 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7548 -0.6632 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9086 -2.6598 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 2 3 1 0 0 0 0 + 2 8 1 0 0 0 0 + 3 4 1 0 0 0 0 + 3 6 1 0 0 0 0 + 4 5 1 0 0 0 0 + 6 7 2 0 0 0 0 + 8 9 1 0 0 0 0 + 9 10 1 0 0 0 0 + 10 11 2 0 0 0 0 + 10 12 1 0 0 0 0 +M END +> +active + +$$$$ + + + + 2 1 0 0 0 0 0 0 0 0 1 V2000 + 0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3300 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 17 18 0 0 0 0 0 0 0 0 2 V2000 + 11.3714 -1.9900 0.0000 O 0 5 0 0 0 0 0 0 0 0 0 0 + 10.2229 -1.3304 0.0000 N 0 3 0 0 0 0 0 0 0 0 0 0 + 10.2229 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 9.0743 -1.9900 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.9265 -3.3204 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.6302 -3.5933 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9706 -2.4448 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.8576 -1.4555 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 5.6402 -2.3084 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.7532 -3.2863 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.5365 -2.7519 0.0000 S 0 0 0 0 0 0 0 0 0 0 0 0 + 3.6729 -1.4328 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.9807 -1.1485 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6950 -0.5345 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1.4442 -1.0121 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1.2395 -2.3311 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -2.8087 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 2 0 0 0 0 + 2 4 1 0 0 0 0 + 4 5 2 0 0 0 0 + 4 8 1 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 2 0 0 0 0 + 7 8 1 0 0 0 0 + 7 9 1 0 0 0 0 + 9 10 2 0 0 0 0 + 9 13 1 0 0 0 0 + 10 11 1 0 0 0 0 + 11 12 1 0 0 0 0 + 12 13 2 0 0 0 0 + 12 14 1 0 0 0 0 + 14 15 1 0 0 0 0 + 15 16 1 0 0 0 0 + 16 17 2 0 0 0 0 +M CHG 2 1 -1 2 1 +M END +> +active + +$$$$ + + + + 7 7 0 0 0 0 0 0 0 0 1 V2000 + 0.0000 -1.5998 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1503 -2.2653 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3050 -1.5998 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.4416 -0.2777 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.7417 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.4072 -1.1547 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.5169 -2.1419 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 2 0 0 0 0 + 3 7 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 2 0 0 0 0 + 6 7 1 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 5 5 0 0 0 0 0 0 0 0 1 V2000 + 0.0000 -1.1519 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1519 -1.8168 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3037 -1.1519 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.9687 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.6336 -1.1519 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 3 5 1 0 0 0 0 + 4 5 1 0 0 0 0 +M END +> +active + +$$$$ + + + + 24 26 0 0 1 0 0 0 0 0 1 V2000 + 6.2320 -1.0924 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 5.8471 -2.3097 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6298 -2.7050 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6298 -3.9743 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.8471 -4.3593 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 6.5857 -3.3293 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.2308 -2.2369 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.5001 -2.2369 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.1347 -3.3293 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 10.4040 -3.3293 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 8.5001 -4.4321 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.2308 -4.4321 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.5857 -5.5453 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.0019 -0.9780 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 7.9799 -0.1665 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.5374 -4.6090 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.5374 -5.8783 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 2.4241 -3.9743 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3213 -4.6090 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -3.1316 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.4241 -2.7050 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.5374 -2.0600 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.5374 -0.7907 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1.6334 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 2 3 1 0 0 0 0 + 6 2 1 1 0 0 0 + 3 4 2 0 0 0 0 + 3 22 1 0 0 0 0 + 4 5 1 0 0 0 0 + 4 16 1 0 0 0 0 + 6 5 1 6 0 0 0 + 6 7 1 0 0 0 0 + 6 12 1 0 0 0 0 + 7 8 2 0 0 0 0 + 7 14 1 0 0 0 0 + 8 9 1 0 0 0 0 + 9 10 2 0 0 0 0 + 9 11 1 0 0 0 0 + 11 12 1 0 0 0 0 + 12 13 1 1 0 0 0 + 14 15 1 0 0 0 0 + 16 17 1 0 0 0 0 + 16 18 2 0 0 0 0 + 18 19 1 0 0 0 0 + 18 21 1 0 0 0 0 + 19 20 1 0 0 0 0 + 21 22 2 0 0 0 0 + 22 23 1 0 0 0 0 + 23 24 1 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 12 12 0 0 0 0 0 0 0 0 1 V2000 + 0.0000 -2.3036 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3300 -2.3036 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9950 -1.1491 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.3250 -1.1491 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9901 -2.3036 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.3250 -3.4581 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9950 -3.4581 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3300 -4.6072 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9901 -4.6072 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 5.3201 -2.3036 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9901 0.0000 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3300 0.0000 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 2 0 0 0 0 + 2 7 1 0 0 0 0 + 3 4 1 0 0 0 0 + 3 12 1 0 0 0 0 + 4 5 2 0 0 0 0 + 4 11 1 0 0 0 0 + 5 6 1 0 0 0 0 + 5 10 1 0 0 0 0 + 6 7 2 0 0 0 0 + 6 9 1 0 0 0 0 + 7 8 1 0 0 0 0 +M END +> +active + +$$$$ + + + + 2 1 0 0 0 0 0 0 0 0 1 V2000 + 0.0000 0.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3300 0.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 +M END +> +active + +$$$$ + + + + 7 5 0 0 0 0 0 0 0 0 1 V2000 + 3.9900 -2.6600 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9900 -1.3300 0.0000 S 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6600 -1.3300 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 5.3200 -1.3300 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9900 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -1.3300 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3300 -1.3300 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 2 0 0 0 0 + 2 4 2 0 0 0 0 + 2 5 1 0 0 0 0 + 6 7 1 0 0 0 0 +M END +> +active + +$$$$ + + + + 18 20 0 0 0 0 0 0 0 0 1 V2000 + 0.0000 -2.3030 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3313 -2.3030 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9920 -3.4593 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9920 -1.1564 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3313 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.3233 -1.1564 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9938 -2.3030 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.3251 -2.3030 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.9858 -1.1564 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.3251 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9938 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.2880 -1.4284 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.3666 -0.6511 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.5812 -1.1952 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.7173 -2.5168 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.6387 -3.2942 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.4240 -2.7500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.2093 -3.2942 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 2 0 0 0 0 + 2 4 1 0 0 0 0 + 4 5 1 0 0 0 0 + 4 6 1 0 0 0 0 + 6 7 2 0 0 0 0 + 6 11 1 0 0 0 0 + 7 8 1 0 0 0 0 + 8 9 2 0 0 0 0 + 8 18 1 0 0 0 0 + 9 10 1 0 0 0 0 + 9 12 1 0 0 0 0 + 10 11 2 0 0 0 0 + 12 13 2 0 0 0 0 + 12 17 1 0 0 0 0 + 13 14 1 0 0 0 0 + 14 15 2 0 0 0 0 + 15 16 1 0 0 0 0 + 16 17 2 0 0 0 0 + 17 18 1 0 0 0 0 +M END +> +active + +$$$$ + + + + 5 4 0 0 0 0 0 0 0 0 1 V2000 + 0.0000 -0.6638 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1525 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3050 -0.6638 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4575 0.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6099 -0.6638 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 1 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 10 10 0 0 0 0 0 0 0 0 1 V2000 + 4.6545 -3.4536 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9889 -2.3040 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6577 -2.3040 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9968 -3.4536 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.6656 -3.4536 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -2.3040 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 0.6656 -1.1497 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9968 -1.1497 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6545 -1.1497 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9889 0.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 2 3 1 0 0 0 0 + 2 9 1 0 0 0 0 + 3 4 2 0 0 0 0 + 3 8 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 2 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 2 0 0 0 0 + 9 10 1 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 9 9 0 0 0 0 0 0 0 0 1 V2000 + 0.0000 -2.3037 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 0.6655 -1.1542 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9965 -1.1542 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6574 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9884 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6539 -1.1542 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9884 -2.3037 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6574 -2.3037 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 2 0 0 0 0 + 2 4 1 0 0 0 0 + 4 5 2 0 0 0 0 + 4 9 1 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 2 0 0 0 0 + 7 8 1 0 0 0 0 + 8 9 2 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 14 14 0 0 0 0 0 0 0 0 1 V2000 + 3.4524 -0.6629 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4524 -1.9978 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6031 -2.6606 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7539 -1.9978 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7539 -0.6629 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9047 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.0555 -0.6629 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.0555 -1.9978 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9047 -2.6606 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.2063 -2.6606 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3016 -2.6606 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1508 -1.9978 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -2.6606 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1508 -0.6629 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 2 3 1 0 0 0 0 + 2 11 1 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 2 0 0 0 0 + 4 9 1 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 2 0 0 0 0 + 7 8 1 0 0 0 0 + 8 9 2 0 0 0 0 + 8 10 1 0 0 0 0 + 11 12 1 0 0 0 0 + 12 13 1 0 0 0 0 + 12 14 1 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 13 13 0 0 0 0 0 0 0 0 1 V2000 + 3.4601 -0.6694 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4601 -2.0002 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6054 -2.6616 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7587 -2.0002 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7587 -0.6694 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9121 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.0654 -0.6694 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.0654 -2.0002 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9121 -2.6616 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3067 -2.6616 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1534 -2.0002 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -2.6616 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1534 -0.6694 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 2 3 1 0 0 0 0 + 2 10 1 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 2 0 0 0 0 + 4 9 1 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 2 0 0 0 0 + 7 8 1 0 0 0 0 + 8 9 2 0 0 0 0 + 10 11 1 0 0 0 0 + 11 12 1 0 0 0 0 + 11 13 1 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 15 6 0 0 0 0 0 0 0 0 3 V2000 + 5.7806 -4.7517 0.0000 Pb 0 2 0 0 0 2 0 0 0 0 0 0 + 5.1849 0.0000 0.0000 O 0 5 0 0 0 0 0 0 0 0 0 0 + 4.5351 -1.1507 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.1849 -2.3014 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.1949 -1.1507 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 2.0036 0.0000 0.0000 O 0 5 0 0 0 0 0 0 0 0 0 0 + 1.3267 -1.1507 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.0036 -2.3014 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -1.1507 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 7.6759 -4.9413 0.0000 O 0 5 0 0 0 0 0 0 0 0 0 0 + 5.8754 -5.6452 0.0000 O 0 5 0 0 0 0 0 0 0 0 0 0 + 11.4935 -1.8817 0.0000 Pb 0 2 0 0 0 2 0 0 0 0 0 0 + 13.5377 -1.9900 0.0000 O 0 5 0 0 0 0 0 0 0 0 0 0 + 11.7778 -2.7075 0.0000 O 0 5 0 0 0 0 0 0 0 0 0 0 + 3.6281 -3.4792 0.0000 Pb 0 2 0 0 0 2 0 0 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 3 5 2 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 1 0 0 0 0 + 7 9 2 0 0 0 0 +M CHG 8 1 2 2 -1 6 -1 10 -1 11 -1 12 2 13 -1 14 -1 +M CHG 1 15 2 +M END +> +inactive + +$$$$ + + + + 20 20 0 0 0 0 0 0 0 0 1 V2000 + 4.4090 -3.9937 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 5.5672 -4.6567 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.7174 -3.9937 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.8676 -4.6567 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.8676 -5.9906 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.7174 -6.6535 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.5672 -5.9906 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 3.2589 -4.6567 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.1087 -3.9937 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.8946 -4.5368 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -3.5464 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.6630 -2.3962 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9649 -2.6678 0.0000 S 0 0 0 0 0 0 0 0 0 0 0 0 + 4.4090 -2.6598 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.2589 -1.9969 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.2589 -0.6630 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 2.1087 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.4090 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.3307 -7.9874 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6567 -7.9874 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 1 8 1 0 0 0 0 + 1 14 1 0 0 0 0 + 2 3 1 0 0 0 0 + 2 7 2 0 0 0 0 + 3 4 2 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 2 0 0 0 0 + 6 7 1 0 0 0 0 + 8 9 1 0 0 0 0 + 9 10 2 0 0 0 0 + 9 13 1 0 0 0 0 + 10 11 1 0 0 0 0 + 11 12 2 0 0 0 0 + 12 13 1 0 0 0 0 + 14 15 1 0 0 0 0 + 15 16 1 0 0 0 0 + 16 17 1 0 0 0 0 + 16 18 1 0 0 0 0 + 19 20 1 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 33 35 0 0 1 0 0 0 0 0 1 V2000 + 14.9725 -5.3302 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 13.8197 -5.9890 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 12.6668 -5.3302 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 11.5139 -5.9890 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 11.5139 -7.3216 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 12.6668 -7.9804 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 13.8197 -7.3216 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 12.6668 -9.3129 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 10.3610 -5.3302 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 10.3610 -3.9977 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 11.5139 -3.3239 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 12.6668 -3.9977 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 11.5139 -1.9913 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 10.3610 -1.3326 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 9.2081 -1.9913 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.2081 -3.3239 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.0552 -3.9977 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9173 -3.3239 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9173 -1.9913 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.0552 -1.3326 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7644 -3.9977 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6115 -3.3239 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7644 -5.3302 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6115 -5.9890 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4587 -5.3302 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3058 -5.9890 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1529 -5.3302 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1529 -3.9977 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -5.9890 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6115 -7.3216 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4587 -7.9804 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7644 -7.9804 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 10.3610 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 2 0 0 0 0 + 2 7 1 0 0 0 0 + 3 4 1 0 0 0 0 + 3 12 1 0 0 0 0 + 4 5 2 0 0 0 0 + 4 9 1 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 2 0 0 0 0 + 6 8 1 0 0 0 0 + 9 10 2 0 0 0 0 + 10 11 1 0 0 0 0 + 11 12 2 0 0 0 0 + 11 13 1 0 0 0 0 + 13 14 1 0 0 0 0 + 14 15 1 0 0 0 0 + 14 33 1 0 0 0 0 + 15 16 2 0 0 0 0 + 15 20 1 0 0 0 0 + 16 17 1 0 0 0 0 + 17 18 2 0 0 0 0 + 18 19 1 0 0 0 0 + 18 21 1 0 0 0 0 + 19 20 2 0 0 0 0 + 21 22 2 0 0 0 0 + 21 23 1 0 0 0 0 + 24 23 1 6 0 0 0 + 24 25 1 0 0 0 0 + 24 30 1 0 0 0 0 + 25 26 1 0 0 0 0 + 26 27 1 0 0 0 0 + 27 28 2 0 0 0 0 + 27 29 1 0 0 0 0 + 30 31 2 0 0 0 0 + 30 32 1 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 5 4 0 0 0 0 0 0 0 0 1 V2000 + 2.3056 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3056 -1.3308 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4567 -1.9945 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1511 -1.9945 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -1.3308 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 1 0 0 0 0 + 2 4 1 0 0 0 0 + 4 5 2 0 0 0 0 +M END +> +active + +$$$$ + + + + 7 6 0 0 0 0 0 0 0 0 1 V2000 + 0.0000 -2.3052 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3306 -2.3052 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9941 -1.1508 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.3247 -1.1508 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3306 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9941 -3.4560 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.3247 -3.4560 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 2 3 1 0 0 0 0 + 2 6 1 0 0 0 0 + 3 4 2 0 0 0 0 + 3 5 1 0 0 0 0 + 6 7 1 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 3 2 0 0 0 0 0 0 0 0 1 V2000 + 2.3030 -0.6656 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1515 0.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -0.6656 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 1 0 0 0 0 +M END +> +active + +$$$$ + + + + 15 15 0 0 0 0 0 0 0 0 1 V2000 + 3.4524 -3.9915 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4524 -2.6644 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3016 -2.0009 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1508 -2.6644 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -2.0009 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -0.6635 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1508 0.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3016 -0.6635 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6032 -2.0009 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7643 -2.6644 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9151 -2.0009 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.0659 -2.6644 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 9.2167 -2.0009 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 10.3675 -2.6644 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 8.0659 -3.9915 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 2 3 1 0 0 0 0 + 2 9 1 0 0 0 0 + 3 4 2 0 0 0 0 + 3 8 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 2 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 2 0 0 0 0 + 9 10 1 0 0 0 0 + 10 11 1 0 0 0 0 + 11 12 1 0 0 0 0 + 12 13 1 0 0 0 0 + 12 15 1 0 0 0 0 + 13 14 2 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 9 9 0 0 0 0 0 0 0 0 1 V2000 + 0.0000 -2.3037 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3315 -2.3037 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9950 -1.1518 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.3265 -1.1518 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9899 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9899 -2.3037 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 3.3265 -3.4555 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9899 -4.6073 0.0000 S 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9950 -3.4555 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 2 0 0 0 0 + 2 9 1 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 2 0 0 0 0 + 4 6 1 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 2 0 0 0 0 + 7 9 1 0 0 0 0 +M END +> +active + +$$$$ + + + + 23 25 0 0 0 0 0 0 0 0 1 V2000 + 1.6416 -5.7565 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.2982 -4.6074 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1491 -3.9398 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -4.6074 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1491 -2.6156 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 2.9658 -3.4583 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 4.3010 -3.4583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.9576 -2.2982 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.2928 -2.2982 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9604 -3.4583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.2928 -4.6074 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.9576 -4.6074 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.2846 -3.4583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.9522 -4.6074 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 10.2764 -4.6074 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 10.9440 -3.4583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 10.2764 -2.2982 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.9522 -2.2982 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.2846 -1.1491 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.9522 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 10.2764 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 10.9440 -1.1491 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4583 -5.2750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 1 0 0 0 0 + 2 6 1 0 0 0 0 + 2 23 1 0 0 0 0 + 3 4 1 0 0 0 0 + 3 5 2 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 2 0 0 0 0 + 7 12 1 0 0 0 0 + 8 9 1 0 0 0 0 + 9 10 2 0 0 0 0 + 10 11 1 0 0 0 0 + 10 13 1 0 0 0 0 + 11 12 2 0 0 0 0 + 13 14 1 0 0 0 0 + 13 18 1 0 0 0 0 + 14 15 1 0 0 0 0 + 15 16 1 0 0 0 0 + 16 17 1 0 0 0 0 + 17 18 2 0 0 0 0 + 17 22 1 0 0 0 0 + 18 19 1 0 0 0 0 + 19 20 2 0 0 0 0 + 20 21 1 0 0 0 0 + 21 22 2 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 4 2 0 0 0 0 0 0 0 0 2 V2000 + 2.3030 -0.6656 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1515 0.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -0.6656 0.0000 O 0 5 0 0 0 0 0 0 0 0 0 0 + 1.1975 -1.9944 0.0000 Na 0 3 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 2 3 1 0 0 0 0 +M CHG 2 3 -1 4 1 +M END +> +inactive + +$$$$ + + + + 17 18 0 0 0 0 0 0 0 0 2 V2000 + 1.2652 -1.2985 0.0000 N 0 3 0 0 0 0 0 0 0 0 0 0 + 0.0000 -1.7091 0.0000 O 0 5 0 0 0 0 0 0 0 0 0 0 + 1.5426 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 2.2529 -2.1863 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.5514 -1.9089 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 4.2173 -3.0631 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.3294 -4.0508 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.1086 -3.5070 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.5380 -3.1963 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.4258 -2.2085 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 7.6466 -2.7523 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.5023 -4.0730 0.0000 S 0 0 0 0 0 0 0 0 0 0 0 0 + 6.2039 -4.3505 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.8008 -2.0865 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 9.9439 -2.7523 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.9439 -4.0841 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 11.0981 -2.0865 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 1 3 2 0 0 0 0 + 1 4 1 0 0 0 0 + 4 5 1 0 0 0 0 + 4 8 2 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 2 0 0 0 0 + 6 9 1 0 0 0 0 + 7 8 1 0 0 0 0 + 9 10 1 0 0 0 0 + 9 13 2 0 0 0 0 + 10 11 2 0 0 0 0 + 11 12 1 0 0 0 0 + 11 14 1 0 0 0 0 + 12 13 1 0 0 0 0 + 14 15 1 0 0 0 0 + 15 16 2 0 0 0 0 + 15 17 1 0 0 0 0 +M CHG 2 1 1 2 -1 +M END +> +active + +$$$$ + + + + 16 17 0 0 0 0 0 0 0 0 2 V2000 + 10.9589 -1.9945 0.0000 O 0 5 0 0 0 0 0 0 0 0 0 0 + 9.8082 -1.3260 0.0000 N 0 3 0 0 0 0 0 0 0 0 0 0 + 9.8082 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 8.6575 -1.9945 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.5151 -3.3205 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.2110 -3.5945 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.5534 -2.4438 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.4411 -1.4575 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 5.2274 -2.3014 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.3397 -3.2877 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.1233 -2.7507 0.0000 S 0 0 0 0 0 0 0 0 0 0 0 0 + 3.2658 -1.4247 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.5589 -1.1507 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 2.2795 -0.5370 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1.0301 -1.0192 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -0.1753 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 2 0 0 0 0 + 2 4 1 0 0 0 0 + 4 5 2 0 0 0 0 + 4 8 1 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 2 0 0 0 0 + 7 8 1 0 0 0 0 + 7 9 1 0 0 0 0 + 9 10 2 0 0 0 0 + 9 13 1 0 0 0 0 + 10 11 1 0 0 0 0 + 11 12 1 0 0 0 0 + 12 13 2 0 0 0 0 + 12 14 1 0 0 0 0 + 14 15 1 0 0 0 0 + 15 16 2 0 0 0 0 +M CHG 2 1 -1 2 1 +M END +> +active + +$$$$ + + + + 15 17 0 0 0 0 0 0 0 0 2 V2000 + 4.2842 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 4.2842 -1.3283 0.0000 N 0 3 0 0 0 0 0 0 0 0 0 0 + 3.1294 -1.9925 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9805 -1.3283 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.8257 -1.9925 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.8257 -3.3268 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9805 -3.9910 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.1294 -3.3268 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.2842 -3.9910 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.2842 -5.3193 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.1294 -5.9835 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9805 -5.3193 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.6642 -5.5168 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -4.3620 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.4330 -1.9925 0.0000 O 0 5 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 2 3 1 0 0 0 0 + 2 15 1 0 0 0 0 + 3 4 2 0 0 0 0 + 3 8 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 2 0 0 0 0 + 6 7 1 0 0 0 0 + 6 14 1 0 0 0 0 + 7 8 2 0 0 0 0 + 7 12 1 0 0 0 0 + 8 9 1 0 0 0 0 + 9 10 2 0 0 0 0 + 10 11 1 0 0 0 0 + 11 12 2 0 0 0 0 + 12 13 1 0 0 0 0 + 13 14 1 0 0 0 0 +M CHG 2 2 1 15 -1 +M END +> +inactive + +$$$$ + + + + 12 11 0 0 0 0 0 0 0 0 1 V2000 + 3.3277 -1.1482 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9859 -2.3038 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.3169 -2.3038 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.9825 -1.1482 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.3135 -1.1482 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 5.9825 -3.4520 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9966 -1.1482 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3311 -2.3038 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9966 -3.4520 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -2.3038 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9859 0.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 5.3169 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 1 7 1 0 0 0 0 + 1 11 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 3 6 1 0 0 0 0 + 4 5 1 0 0 0 0 + 7 8 1 0 0 0 0 + 8 9 1 0 0 0 0 + 8 10 1 0 0 0 0 + 11 12 2 0 0 0 0 +M END +> +active + +$$$$ + + + + 12 11 0 0 0 0 0 0 0 0 1 V2000 + 3.3277 -1.1482 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9859 -2.3038 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.3169 -2.3038 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.9825 -1.1482 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.3135 -1.1482 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 5.9825 -3.4520 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9966 -1.1482 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3311 -2.3038 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9966 -3.4520 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -2.3038 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9859 0.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 5.3169 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 1 7 1 0 0 0 0 + 1 11 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 3 6 1 0 0 0 0 + 4 5 1 0 0 0 0 + 7 8 1 0 0 0 0 + 8 9 1 0 0 0 0 + 8 10 2 0 0 0 0 + 11 12 2 0 0 0 0 +M END +> +active + +$$$$ + + + + 11 10 0 0 0 0 0 0 0 0 1 V2000 + 3.9901 -2.3031 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 3.3261 -1.1486 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9921 -1.1486 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3280 -2.3031 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -2.3031 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3280 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 5.3182 -2.3031 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.9822 -1.1486 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.3182 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.3261 -3.4517 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9921 -3.4517 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 1 7 1 0 0 0 0 + 1 10 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 3 6 1 0 0 0 0 + 4 5 1 0 0 0 0 + 7 8 1 0 0 0 0 + 8 9 1 0 0 0 0 + 10 11 2 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 10 9 0 0 0 0 0 0 0 0 1 V2000 + 1.9973 -3.4592 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6584 -2.3046 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9973 -1.1546 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.6658 -1.1546 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6584 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6584 -4.6091 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9899 -4.6091 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6557 -3.4592 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 0.6658 -3.4592 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -2.3046 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 1 6 1 0 0 0 0 + 1 9 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 3 5 2 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 1 0 0 0 0 + 9 10 2 0 0 0 0 +M END +> +active + +$$$$ + + + + 11 11 0 0 0 0 0 0 0 0 1 V2000 + 3.3269 -3.4585 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9925 -3.4585 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3283 -2.3037 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9925 -1.1548 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.3269 -1.1548 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9910 -2.3037 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 5.3194 -2.3037 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 5.9835 -1.1548 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3283 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -2.3037 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3283 -4.6073 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 1 6 1 0 0 0 0 + 2 3 1 0 0 0 0 + 2 11 1 0 0 0 0 + 3 4 1 0 0 0 0 + 3 10 1 0 0 0 0 + 4 5 1 0 0 0 0 + 4 9 1 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 2 0 0 0 0 +M END +> +active + +$$$$ + + + + 10 9 0 0 0 0 0 0 0 0 1 V2000 + 1.9973 -3.4592 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6584 -2.3046 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9973 -1.1546 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.6658 -1.1546 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6584 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6584 -4.6091 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9899 -4.6091 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6557 -3.4592 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.6658 -3.4592 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -2.3046 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 1 6 1 0 0 0 0 + 1 9 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 3 5 2 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 2 0 0 0 0 + 9 10 2 0 0 0 0 +M END +> +active + +$$$$ + + + + 9 8 0 0 0 0 0 0 0 0 1 V2000 + 2.3046 -1.9992 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4569 -2.6618 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6092 -1.9992 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6092 -0.6683 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4569 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7615 -2.6618 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3046 -0.6683 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1523 -2.6618 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -1.9992 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 1 7 1 0 0 0 0 + 1 8 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 3 6 1 0 0 0 0 + 4 5 1 0 0 0 0 + 8 9 2 0 0 0 0 +M END +> +active + +$$$$ + + + + 8 8 0 0 0 0 0 0 0 0 1 V2000 + 0.0000 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 0.6654 -1.1540 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9962 -1.1540 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6569 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9877 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6531 -1.1540 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9877 -2.3033 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6569 -2.3033 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 3 8 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 1 0 0 0 0 +M END +> +active + +$$$$ + + + + 13 14 0 0 0 0 0 0 0 0 1 V2000 + 2.2670 0.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 3.5961 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.2606 -1.1490 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.5961 -2.3042 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.2670 -2.3042 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.5962 -1.1490 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.5962 -3.4532 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.1427 -4.6705 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4408 -4.9438 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 3.8507 -6.2108 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1490 -5.5587 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -4.8941 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.2795 -3.5961 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 1 6 2 0 0 0 0 + 2 3 2 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 2 0 0 0 0 + 5 6 1 0 0 0 0 + 5 7 1 0 0 0 0 + 7 8 1 0 0 0 0 + 7 13 1 0 0 0 0 + 8 9 1 0 0 0 0 + 8 11 1 0 0 0 0 + 9 10 2 0 0 0 0 + 11 12 1 0 0 0 0 + 12 13 1 0 0 0 0 +M END +> +active + +$$$$ + + + + 14 15 0 0 0 0 0 0 0 0 2 V2000 + 5.5085 -1.1540 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.1727 -2.3014 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.5085 -3.4554 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.1800 -3.4554 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.5091 -2.3014 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.1800 -1.1540 0.0000 N 0 3 0 0 0 0 0 0 0 0 0 0 + 3.5091 0.0000 0.0000 O 0 5 0 0 0 0 0 0 0 0 0 0 + 3.5091 -4.6027 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.0525 -5.8171 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.0662 -6.7095 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9122 -6.0453 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.1873 -4.7436 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3016 -3.7573 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -4.0324 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 1 6 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 2 0 0 0 0 + 4 5 1 0 0 0 0 + 4 8 1 0 0 0 0 + 5 6 2 0 0 0 0 + 6 7 1 0 0 0 0 + 8 9 1 0 0 0 0 + 8 12 1 0 0 0 0 + 9 10 1 0 0 0 0 + 10 11 1 0 0 0 0 + 11 12 1 0 0 0 0 + 12 13 1 0 0 0 0 + 13 14 2 0 0 0 0 +M CHG 2 6 1 7 -1 +M END +> +inactive + +$$$$ + + + + 8 8 0 0 0 0 0 0 0 0 1 V2000 + 0.0000 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 0.6654 -1.1540 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9962 -1.1540 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6569 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9877 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6531 -1.1540 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9877 -2.3033 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6569 -2.3033 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 3 8 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 1 0 0 0 0 +M END +> +active + +$$$$ + + + + 7 7 0 0 0 0 0 0 0 0 1 V2000 + 0.0000 -1.5998 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1503 -2.2653 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3050 -1.5998 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 2.4416 -0.2777 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.7417 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.4072 -1.1547 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.5169 -2.1419 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 3 7 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 1 0 0 0 0 +M END +> +active + +$$$$ + + + + 13 12 0 0 0 0 0 0 0 0 1 V2000 + 3.3259 -3.4535 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9879 -2.2970 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.3259 -1.1485 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9939 -1.1485 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3320 -2.2970 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9939 -3.4535 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -2.2970 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9879 0.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 5.3199 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 5.3199 -2.2970 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 5.9818 -3.4535 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.3138 -3.4535 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.9758 -4.6020 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 2 3 1 0 0 0 0 + 2 10 1 0 0 0 0 + 3 4 1 0 0 0 0 + 3 8 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 1 0 0 0 0 + 5 7 2 0 0 0 0 + 8 9 2 0 0 0 0 + 10 11 1 0 0 0 0 + 11 12 1 0 0 0 0 + 12 13 1 0 0 0 0 +M END +> +active + +$$$$ + + + + 10 9 0 0 0 0 0 0 0 0 1 V2000 + 2.3042 -1.9989 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3042 -0.6682 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4563 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1521 0.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1521 -2.6614 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -1.9989 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4563 -2.6614 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6084 -1.9989 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7605 -2.6614 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6084 -0.6682 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 1 5 1 0 0 0 0 + 1 7 1 0 0 0 0 + 2 3 2 0 0 0 0 + 2 4 1 0 0 0 0 + 5 6 2 0 0 0 0 + 7 8 1 0 0 0 0 + 8 9 1 0 0 0 0 + 8 10 2 0 0 0 0 +M END +> +active + +$$$$ + + + + 11 11 0 0 0 0 0 0 0 0 1 V2000 + 5.7578 -1.9999 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6046 -2.6612 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4595 -1.9999 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3063 -2.6612 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1532 -1.9999 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -1.3306 0.0000 S 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7578 -0.6693 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9109 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.0641 -0.6693 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.0641 -1.9999 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9109 -2.6612 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 1 7 2 0 0 0 0 + 1 11 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 2 0 0 0 0 + 5 6 2 0 0 0 0 + 7 8 1 0 0 0 0 + 8 9 2 0 0 0 0 + 9 10 1 0 0 0 0 + 10 11 2 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 17 18 0 0 0 0 0 0 0 0 1 V2000 + 2.3044 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3044 -1.3295 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4567 -1.9942 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.7640 -2.2232 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.6208 -1.2039 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9281 -1.4329 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.3860 -2.6885 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.5292 -3.7078 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.2219 -3.4714 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4567 -3.3237 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6089 -3.9884 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3044 -3.9884 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1522 -3.3237 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -3.9884 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1522 -1.9942 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9146 -0.7460 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.2219 -0.5096 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 2 3 1 0 0 0 0 + 2 15 1 0 0 0 0 + 3 4 1 0 0 0 0 + 3 10 1 0 0 0 0 + 3 16 1 0 0 0 0 + 4 5 2 0 0 0 0 + 4 9 1 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 2 0 0 0 0 + 7 8 1 0 0 0 0 + 8 9 2 0 0 0 0 + 10 11 2 0 0 0 0 + 10 12 1 0 0 0 0 + 12 13 1 0 0 0 0 + 13 14 2 0 0 0 0 + 13 15 1 0 0 0 0 + 16 17 1 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 17 19 0 0 0 0 0 0 0 0 1 V2000 + 5.7546 -2.6609 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9055 -1.9980 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9055 -0.6629 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7546 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6037 -0.6629 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6037 -1.9980 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4528 -2.6609 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3018 -1.9980 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1509 -2.6609 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -1.9980 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -0.6629 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1509 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3018 -0.6629 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.0564 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.2074 -0.6629 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.2074 -1.9980 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.0564 -2.6609 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 1 6 1 0 0 0 0 + 2 3 1 0 0 0 0 + 2 17 1 0 0 0 0 + 3 4 2 0 0 0 0 + 3 14 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 2 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 1 0 0 0 0 + 8 9 2 0 0 0 0 + 8 13 1 0 0 0 0 + 9 10 1 0 0 0 0 + 10 11 2 0 0 0 0 + 11 12 1 0 0 0 0 + 12 13 2 0 0 0 0 + 14 15 2 0 0 0 0 + 15 16 1 0 0 0 0 + 16 17 2 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 23 26 0 0 0 0 0 0 0 0 1 V2000 + 4.6025 -7.9798 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6025 -6.6499 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4579 -5.9889 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4579 -4.6589 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3053 -3.9899 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1526 -4.6589 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -3.9899 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -2.6599 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1526 -1.9990 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3053 -2.6599 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1526 -5.9889 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3053 -6.6499 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6025 -3.9899 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7552 -4.6589 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7552 -5.9889 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9078 -3.9899 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.0604 -4.6589 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9078 -2.6599 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7552 -1.9990 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7552 -0.6690 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9078 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.0604 -0.6690 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.0604 -1.9990 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 2 3 1 0 0 0 0 + 2 15 1 0 0 0 0 + 3 4 1 0 0 0 0 + 3 12 1 0 0 0 0 + 4 5 1 0 0 0 0 + 4 13 1 0 0 0 0 + 5 6 2 0 0 0 0 + 5 10 1 0 0 0 0 + 6 7 1 0 0 0 0 + 6 11 1 0 0 0 0 + 7 8 2 0 0 0 0 + 8 9 1 0 0 0 0 + 9 10 2 0 0 0 0 + 11 12 1 0 0 0 0 + 13 14 1 0 0 0 0 + 14 15 1 0 0 0 0 + 14 16 1 0 0 0 0 + 16 17 2 0 0 0 0 + 16 18 1 0 0 0 0 + 18 19 1 0 0 0 0 + 18 23 1 0 0 0 0 + 19 20 1 0 0 0 0 + 20 21 1 0 0 0 0 + 21 22 1 0 0 0 0 + 22 23 1 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 11 11 0 0 0 0 0 0 0 0 1 V2000 + 1.9925 -2.3037 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6567 -1.1488 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9910 -1.1488 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6552 -2.3037 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.9835 -2.3037 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9910 -3.4525 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6567 -3.4525 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6552 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 0.6642 -2.3037 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -3.4525 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -1.1488 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 1 7 1 0 0 0 0 + 1 9 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 2 0 0 0 0 + 3 8 1 0 0 0 0 + 4 5 1 0 0 0 0 + 4 6 1 0 0 0 0 + 6 7 2 0 0 0 0 + 9 10 1 0 0 0 0 + 9 11 2 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 24 24 0 0 0 0 0 0 0 0 1 V2000 + 4.6016 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6016 -1.3369 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4512 -2.0002 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4512 -3.3268 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3008 -3.9901 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1504 -3.3268 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1504 -2.0002 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3008 -1.3369 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3008 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -3.9901 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6016 -3.9901 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7623 -3.3268 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7623 -2.0002 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9127 -1.3369 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9127 -3.9901 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.0631 -3.3268 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.2135 -3.9901 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.2135 -5.3270 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.0631 -5.9903 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9127 -5.3270 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 10.3639 -5.9903 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 10.3639 -3.3268 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 5.1819 -7.3169 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.8554 -7.3169 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 2 3 1 0 0 0 0 + 2 13 1 0 0 0 0 + 3 4 2 0 0 0 0 + 3 8 1 0 0 0 0 + 4 5 1 0 0 0 0 + 4 11 1 0 0 0 0 + 5 6 2 0 0 0 0 + 6 7 1 0 0 0 0 + 6 10 1 0 0 0 0 + 7 8 2 0 0 0 0 + 8 9 1 0 0 0 0 + 11 12 1 0 0 0 0 + 12 13 2 0 0 0 0 + 12 15 1 0 0 0 0 + 13 14 1 0 0 0 0 + 15 16 2 0 0 0 0 + 15 20 1 0 0 0 0 + 16 17 1 0 0 0 0 + 17 18 2 0 0 0 0 + 17 22 1 0 0 0 0 + 18 19 1 0 0 0 0 + 18 21 1 0 0 0 0 + 19 20 2 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 25 26 0 0 0 0 0 0 0 0 1 V2000 + 10.6420 -6.9191 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.9717 -8.0683 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.6429 -8.0683 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.9845 -6.9191 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.6429 -5.7580 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.9717 -5.7580 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.9845 -4.6088 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.6429 -3.4596 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.9845 -2.3104 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.6429 -1.1492 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.9717 -1.1492 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 10.6420 0.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 10.6420 -2.3104 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.9717 -3.4596 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 11.9708 -2.3104 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.6558 -4.6088 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.9854 -5.7580 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6566 -5.7580 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9863 -4.6088 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6575 -4.6088 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6566 -3.4596 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.9854 -3.4596 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 10.6420 -9.2175 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -4.5609 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3288 -4.5609 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 1 6 1 0 0 0 0 + 2 3 1 0 0 0 0 + 2 23 1 0 0 0 0 + 3 4 2 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 2 0 0 0 0 + 5 7 1 0 0 0 0 + 7 8 1 0 0 0 0 + 7 16 2 0 0 0 0 + 8 9 2 0 0 0 0 + 8 14 1 0 0 0 0 + 9 10 1 0 0 0 0 + 10 11 2 0 0 0 0 + 11 12 1 0 0 0 0 + 11 13 1 0 0 0 0 + 13 14 2 0 0 0 0 + 13 15 1 0 0 0 0 + 16 17 1 0 0 0 0 + 16 22 1 0 0 0 0 + 17 18 2 0 0 0 0 + 18 19 1 0 0 0 0 + 19 20 2 0 0 0 0 + 19 21 1 0 0 0 0 + 21 22 2 0 0 0 0 + 24 25 1 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 24 25 0 0 0 0 0 0 0 0 1 V2000 + 7.9826 -4.6086 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.6532 -3.4591 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.9826 -2.2990 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.6532 -1.1495 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.9730 -1.1495 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 10.6435 -2.2990 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.9730 -3.4591 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 10.6435 0.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 8.6532 -5.7581 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.9730 -5.7581 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 10.6435 -6.9076 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.9730 -8.0678 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.6532 -8.0678 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.9826 -6.9076 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 10.6435 -9.2173 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 6.6522 -4.6086 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.9923 -5.7581 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6619 -5.7581 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9913 -4.6086 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6619 -3.4591 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.9923 -3.4591 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6609 -4.6086 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -4.5554 0.0000 H 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3304 -4.5554 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 1 9 1 0 0 0 0 + 1 16 2 0 0 0 0 + 2 3 2 0 0 0 0 + 2 7 1 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 2 0 0 0 0 + 5 6 1 0 0 0 0 + 5 8 1 0 0 0 0 + 6 7 2 0 0 0 0 + 9 10 2 0 0 0 0 + 9 14 1 0 0 0 0 + 10 11 1 0 0 0 0 + 11 12 2 0 0 0 0 + 12 13 1 0 0 0 0 + 12 15 1 0 0 0 0 + 13 14 2 0 0 0 0 + 16 17 1 0 0 0 0 + 16 21 1 0 0 0 0 + 17 18 2 0 0 0 0 + 18 19 1 0 0 0 0 + 19 20 1 0 0 0 0 + 19 22 2 0 0 0 0 + 20 21 2 0 0 0 0 + 23 24 1 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 43 47 0 0 1 0 0 0 0 0 1 V2000 + 4.6024 -11.2995 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6024 -9.9693 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7644 -9.3118 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9112 -9.9693 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.0580 -9.3118 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.2048 -9.9693 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.2048 -11.2995 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.0580 -11.9723 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9112 -11.2995 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7644 -11.9723 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 10.3668 -11.9723 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 8.0580 -7.9815 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7644 -7.9815 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4556 -9.3118 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4556 -7.9815 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6024 -7.3088 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6024 -5.9785 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7644 -5.3210 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7644 -3.9908 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9112 -3.3180 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9112 -1.9877 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.0580 -1.3303 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.2048 -1.9877 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 10.3668 -1.3303 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 9.2048 -3.3180 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.0580 -3.9908 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 10.3668 -3.9908 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.0580 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7644 -1.3303 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4556 -5.3210 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4556 -3.9908 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3088 -5.9785 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3088 -7.3088 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1468 -7.9815 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1468 -5.3210 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4556 -11.9723 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4556 -13.3026 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3088 -13.9600 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1468 -13.3026 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -13.9600 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1468 -11.9723 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3088 -11.2995 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3088 -15.2903 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 1 10 1 0 0 0 0 + 1 36 1 0 0 0 0 + 2 3 1 0 0 0 0 + 2 14 1 0 0 0 0 + 3 4 1 0 0 0 0 + 3 13 2 0 0 0 0 + 4 5 1 0 0 0 0 + 4 9 2 0 0 0 0 + 5 6 2 0 0 0 0 + 5 12 1 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 2 0 0 0 0 + 7 11 1 0 0 0 0 + 8 9 1 0 0 0 0 + 9 10 1 0 0 0 0 + 15 14 1 1 0 0 0 + 15 16 1 0 0 0 0 + 15 33 1 0 0 0 0 + 16 17 1 0 0 0 0 + 17 18 1 1 0 0 0 + 17 30 1 0 0 0 0 + 18 19 1 0 0 0 0 + 20 19 1 1 0 0 0 + 20 21 1 0 0 0 0 + 20 26 1 0 0 0 0 + 21 22 1 0 0 0 0 + 21 29 1 6 0 0 0 + 22 23 1 0 0 0 0 + 22 28 1 6 0 0 0 + 23 24 1 1 0 0 0 + 23 25 1 0 0 0 0 + 25 26 1 0 0 0 0 + 25 27 1 6 0 0 0 + 30 31 1 6 0 0 0 + 30 32 1 0 0 0 0 + 32 33 1 0 0 0 0 + 32 35 1 1 0 0 0 + 33 34 1 6 0 0 0 + 36 37 2 0 0 0 0 + 36 42 1 0 0 0 0 + 37 38 1 0 0 0 0 + 38 39 2 0 0 0 0 + 38 43 1 0 0 0 0 + 39 40 1 0 0 0 0 + 39 41 1 0 0 0 0 + 41 42 2 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 5 4 0 0 0 0 0 0 0 0 1 V2000 + 3.4567 -1.9945 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3056 -1.3308 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1511 -1.9945 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -1.3308 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3056 0.0000 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 2 0 0 0 0 + 2 5 1 0 0 0 0 + 3 4 1 0 0 0 0 +M END +> +inactive + +$$$$ + + + + 6 5 0 0 0 0 0 0 0 0 1 V2000 + 4.6084 -1.9954 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4563 -1.3318 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4563 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3042 -1.9954 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1521 -1.3318 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -1.9954 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 2 0 0 0 0 + 2 4 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 1 0 0 0 0 +M END +> +active + +$$$$ + + + + 3 2 0 0 0 0 0 0 0 0 1 V2000 + 2.3030 -0.6656 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1515 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -0.6656 0.0000 Cl 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 2 3 1 0 0 0 0 +M END +> +active + +$$$$ + + + + 13 12 0 0 0 0 0 0 0 0 2 V2000 + 0.0000 -1.1513 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3274 -1.1513 0.0000 N 0 3 0 0 0 0 0 0 0 0 0 0 + 2.6611 -1.1513 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.3217 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6554 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.3159 -1.1513 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6554 -2.3025 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.3217 -2.3025 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6611 -6.2911 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6611 -4.9636 0.0000 B 0 5 0 0 0 0 0 0 0 0 0 0 + 1.3274 -4.9636 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6611 -3.6299 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9885 -4.9636 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 3 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 2 0 0 0 0 + 3 8 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 2 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 2 0 0 0 0 + 9 10 1 0 0 0 0 + 10 11 1 0 0 0 0 + 10 12 1 0 0 0 0 + 10 13 1 0 0 0 0 +M CHG 2 2 1 10 -1 +M END +> +inactive + +$$$$ + + + + 12 12 0 0 0 0 0 0 0 0 1 V2000 + 3.4560 -1.3271 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6103 -1.9906 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6103 -3.3247 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4560 -3.9882 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3017 -3.3247 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3017 -1.9906 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1543 -1.3271 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -1.9906 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1543 -3.9882 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7577 -3.9882 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9120 -3.3247 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4560 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 1 6 1 0 0 0 0 + 1 12 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 3 10 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 1 0 0 0 0 + 5 9 1 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 2 0 0 0 0 + 10 11 2 0 0 0 0 +M END +> +active + +$$$$ + + + + 9 8 0 0 0 0 0 0 0 0 1 V2000 + 4.6053 -1.9954 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 3.4522 -1.3257 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.2992 -1.9954 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1530 -1.3257 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -1.9954 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1530 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6053 -3.3210 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7514 -1.3257 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 6.9045 -1.9954 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 1 7 1 0 0 0 0 + 1 8 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 1 0 0 0 0 + 4 6 1 0 0 0 0 + 8 9 2 0 0 0 0 +M END +> +active + +$$$$ + + + + 10 10 0 0 0 0 0 0 0 0 1 V2000 + 0.6656 -1.1543 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9968 -1.1543 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6577 -2.3040 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9889 -2.3040 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6545 -1.1543 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9968 -3.4583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.6656 -3.4583 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -2.3040 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -4.6079 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 1 8 1 0 0 0 0 + 1 10 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 3 6 1 0 0 0 0 + 4 5 2 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 1 0 0 0 0 + 7 9 1 0 0 0 0 +M END +> +active + +$$$$ + + + + 9 9 0 0 0 0 0 0 0 0 1 V2000 + 2.1136 -0.3740 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.3772 -0.7820 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.3772 -2.1136 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 2.1136 -2.5272 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3316 -1.4506 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -1.4506 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.4538 -2.8956 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 5.6665 -2.3572 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 4.4538 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 1 5 1 0 0 0 0 + 2 3 1 0 0 0 0 + 2 9 2 0 0 0 0 + 3 4 1 0 0 0 0 + 3 7 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 1 0 0 0 0 + 7 8 2 0 0 0 0 +M END +> +active + +$$$$ + + + + 9 8 0 0 0 0 0 0 0 0 1 V2000 + 0.0000 -1.1552 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.6644 -2.3044 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9932 -2.3044 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6576 -1.1552 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9932 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9924 -1.1552 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6568 -2.3044 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.6568 0.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 5.9855 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 2 0 0 0 0 + 4 6 1 0 0 0 0 + 6 7 1 0 0 0 0 + 6 8 1 0 0 0 0 + 8 9 2 0 0 0 0 +M END +> +active + +$$$$ + + + + 7 7 0 0 0 0 0 0 0 0 1 V2000 + 3.5169 -2.1419 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.3050 -1.5998 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 2.4416 -0.2777 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.7417 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 4.4072 -1.1547 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.1503 -2.2653 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -1.5998 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 1 5 1 0 0 0 0 + 2 3 1 0 0 0 0 + 2 6 1 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 1 0 0 0 0 + 6 7 2 0 0 0 0 +M END +> +active + +$$$$ + + + + 14 14 0 0 0 0 0 0 0 0 1 V2000 + 1.9935 -3.4527 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3316 -2.3044 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.9935 -1.1482 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 3.3251 -1.1482 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9869 -2.3044 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.3186 -2.3044 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.9804 -1.1482 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.3120 -1.1482 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.9739 -2.3044 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.3120 -3.4527 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.9804 -3.4527 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1.3316 0.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 0.0000 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -2.3044 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 2 0 0 0 0 + 2 3 1 0 0 0 0 + 2 14 1 0 0 0 0 + 3 4 1 0 0 0 0 + 3 12 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 2 0 0 0 0 + 6 11 1 0 0 0 0 + 7 8 1 0 0 0 0 + 8 9 2 0 0 0 0 + 9 10 1 0 0 0 0 + 10 11 2 0 0 0 0 + 12 13 2 0 0 0 0 +M END +> +active + +$$$$ + + + + 6 6 0 0 0 0 0 0 0 0 1 V2000 + 2.2694 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.2694 -1.3318 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 0.9376 -1.3318 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -2.2694 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 0.3409 -3.5516 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0 + 0.9376 0.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 1 6 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 3 6 1 0 0 0 0 + 4 5 2 0 0 0 0 +M END +> +active + +$$$$ + + + + 6 4 0 0 0 0 0 0 0 0 2 V2000 + 2.6600 -2.6600 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6600 -1.3320 0.0000 B 0 5 0 0 0 0 0 0 0 0 0 0 + 1.3280 -1.3320 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0 + 2.6600 0.0000 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0 + 3.9880 -1.3320 0.0000 F 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -1.3320 0.0000 Na 0 3 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 1 0 0 0 0 + 2 4 1 0 0 0 0 + 2 5 1 0 0 0 0 +M CHG 2 2 -1 6 1 +M END +> +inactive + diff --git a/views/create.haml b/views/create.haml index 11482c5..72bb428 100644 --- a/views/create.haml +++ b/views/create.haml @@ -21,10 +21,11 @@ %p To create a prediction model, you will need to upload training data that includes chemical structures and their measured toxicity values, in = link_to "Excel", '/help' - or + , = link_to "CSV", '/help' - file formats. - Please read the + or + = link_to "SDF", '/help' + file formats. Please read the = link_to "instructions for creating training datasets", '/help' before submitting. @@ -35,8 +36,10 @@ %label{:for => 'file'} Upload training data in = link_to "Excel", '/help' - or + , = link_to "CSV", '/help' + or + = link_to "SDF", '/help' format: %input{:type => 'file', :name => 'file', :id => 'file', :size => '41'} %input{ :type => "submit", :value => "Create model"} diff --git a/views/help.haml b/views/help.haml index 4882380..2b39d6c 100644 --- a/views/help.haml +++ b/views/help.haml @@ -1,4 +1,5 @@ = link_to "Back to model creation", '/create' +%h2 Spreadsheets (Excel, CSV) %p Input files have two columns. Enter in the first column the chemical structure in %a{:href => "http://en.wikipedia.org/wiki/Simplified_molecular_input_line_entry_specification", :rel => "external"} SMILES @@ -97,17 +98,18 @@ %h3 CSV example .code - %code - %br SMILES, Hamster Carcinogenicity - %br CC(=O)Nc1ccc(O)cc1, 1 - %br O=c1[nH]cnc2[nH]ncc12, 1 - %br CCCCNc1cc(cc(c1Oc2ccccc2)S(=O)(=O)N)C(=O)O, 1 - %br CC(C)(C)NCC(O)COc1cccc2NC(=O)CCc12, 1 - %br CN(C)CCCC1(OCc2cc(C#N)ccc21)c3ccc(F)cc3, 1 - %br CCC(CC)CCN1C(=O)CN=C(C2CCCCC2F)c3cc(Cl)ccc13, 0 - %br CCN(CC)CC(=O)Nc1c(C)cccc1C, 0 - %br CC(C)(C)NCC(O)COc1cccc2CC(O)C(O)Cc12, 0 - %br CN1CCCC1c2cccnc2, 0 + %pre + :preserve + SMILES, Hamster Carcinogenicity + CC(=O)Nc1ccc(O)cc1, 1 + O=c1[nH]cnc2[nH]ncc12, 1 + CCCCNc1cc(cc(c1Oc2ccccc2)S(=O)(=O)N)C(=O)O, 1 + CC(C)(C)NCC(O)COc1cccc2NC(=O)CCc12, 1 + CN(C)CCCC1(OCc2cc(C#N)ccc21)c3ccc(F)cc3, 1 + CCC(CC)CCN1C(=O)CN=C(C2CCCCC2F)c3cc(Cl)ccc13, 0 + CCN(CC)CC(=O)Nc1c(C)cccc1C, 0 + CC(C)(C)NCC(O)COc1cccc2CC(O)C(O)Cc12, 0 + CN1CCCC1c2cccnc2, 0 %p CSV examples for download: @@ -120,3 +122,40 @@ (regression) %p You can create CSV files in Excel: Create a sheet with two columns and export them as CSV file with the "Save As" option from the menu, selecting the CSV (comma delimited) format. + +%h2 SDF + +%p + Currently ToxCreate supports + %a{:href => "http://en.wikipedia.org/wiki/Chemical_table_file#SDF", :rel => "external"} SDF + files with a single data item as shown below (multiple data items will raise an error). You can also download an example SDF file: + = link_to "hamster_carcinogenicity.sdf", "/hamster_carcinogenicity.sdf" + +.code + %pre + -# keep empty lines -they are required by SDF + :preserve + + + + + 6 6 0 0 0 0 0 0 0 0 1 V2000 + 1.3304 -1.0738 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 2.1104 0.0000 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 3.3767 -0.4086 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.3767 -1.7390 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 2.1104 -2.1509 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 0.0000 -1.0738 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 1 5 2 0 0 0 0 + 1 6 1 0 0 0 0 + 2 3 2 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 1 0 0 0 0 + M END + > <ActivityOutcome_CPDBAS_Hamster> + inactive + + $$$$ + + -- cgit v1.2.3 From 75a6e38a09f468e69dd1449e01f6ccdc3e34d718 Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Fri, 29 Jul 2011 12:11:05 +0000 Subject: SDF export with data items --- views/model.haml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/views/model.haml b/views/model.haml index d2637c8..fe43a1f 100644 --- a/views/model.haml +++ b/views/model.haml @@ -71,6 +71,8 @@ , -#%a{:href => "#{model.training_dataset}.rdf"} RDF/XML -#%em (experts) , + %a{:href => "#{model.training_dataset}.sdf#{subjectstring}" } SDF + , %a{:href => "#{model.training_dataset}.yaml#{subjectstring}" } YAML %em (experts) - if model.feature_dataset @@ -80,6 +82,8 @@ -#, %a{:href => "#{model.feature_dataset}.xls#{subjectstring}"} Excel sheet , + %a{:href => "#{model.feature_dataset}.sdf#{subjectstring}"} SDF + , %a{:href => "#{model.feature_dataset}.yaml#{subjectstring}"} YAML %em (experts) - if model.uri -- cgit v1.2.3 From 351c6a84f83d2570660263ed43d0274ea86855e2 Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Fri, 29 Jul 2011 12:47:56 +0000 Subject: create page reordered --- views/create.haml | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/views/create.haml b/views/create.haml index 72bb428..b706484 100644 --- a/views/create.haml +++ b/views/create.haml @@ -1,31 +1,13 @@ .input - This service creates and validates new - %em= toggle_link("#classification","classification") - and - %em= toggle_link("#regression","regression") - structure-activity models from your experimental data. The models can be used to predict toxicity of new chemicals (e.g. for - %a{:href => "http://ec.europa.eu/environment/chemicals/reach/reach_intro.htm", :rel => "external"} REACH - purposes) and to reduce the need for animal testing. The following methods are currently available: - %ul - %li - = toggle_link("#lazar_description","lazar") - %em= toggle_link("#classification","classification") - models and - %li - = toggle_link("#lazar_description","lazar") - %em= toggle_link("#regression","regression") - models (experimental) - Further modelling algorithms will be added in future versions. - %p - To create a prediction model, you will need to upload training data that includes chemical structures and their measured toxicity values, in + You will need to upload training data that includes chemical structures and their measured toxicity values, in = link_to "Excel", '/help' , = link_to "CSV", '/help' or = link_to "SDF", '/help' - file formats. Please read the + file formats to create a prediction model. Please read the = link_to "instructions for creating training datasets", '/help' before submitting. @@ -57,6 +39,25 @@ = haml :endpoint, :layout => false = haml :unit, :layout => false + %p + This service creates and validates new + %em= toggle_link("#classification","classification") + and + %em= toggle_link("#regression","regression") + structure-activity models from your experimental data. The models can be used to predict toxicity of new chemicals (e.g. for + %a{:href => "http://ec.europa.eu/environment/chemicals/reach/reach_intro.htm", :rel => "external"} REACH + purposes) and to reduce the need for animal testing. The following methods are currently available: + %ul + %li + = toggle_link("#lazar_description","lazar") + %em= toggle_link("#classification","classification") + models and + %li + = toggle_link("#lazar_description","lazar") + %em= toggle_link("#regression","regression") + models (experimental) + Further modelling algorithms may be added in future versions. + .login_notice - if session[:username] == "guest" -- cgit v1.2.3 From 91b70cba5d1d0045b0db0d9c77f867e68e61fe2e Mon Sep 17 00:00:00 2001 From: mr Date: Tue, 2 Aug 2011 16:28:13 +0200 Subject: remove text 'user:' if no A&A --- views/layout.haml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/views/layout.haml b/views/layout.haml index d20b964..c76396d 100644 --- a/views/layout.haml +++ b/views/layout.haml @@ -31,8 +31,9 @@ .content .login_info - User: - %b= session[:username] + - if session[:username].size > 0 + User: + %b= session[:username] - if `hostname`.match(/ot-test/) .notice -- cgit v1.2.3 From 065a42d25e5bbace7af0e521d6fab0bb2bb030d6 Mon Sep 17 00:00:00 2001 From: mr Date: Wed, 3 Aug 2011 12:57:22 +0200 Subject: remove alt tag from progressbar --- public/javascripts/toxcreate.js | 3 +-- views/model.haml | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/public/javascripts/toxcreate.js b/public/javascripts/toxcreate.js index a5dc44c..91789f8 100755 --- a/public/javascripts/toxcreate.js +++ b/public/javascripts/toxcreate.js @@ -77,8 +77,7 @@ $(function() { if (progress == "100") return -1; $("div#model_" + id + "_progress").progressbar("value", parseInt(progress)); - $("div#model_" + id + "_progress").attr({title: parseInt(progress) + "%", alt: parseInt(progress) + "%"}); - //$("div#model_" + id + "_progress").attr("alt", parseInt(progress) + "%"); + $("div#model_" + id + "_progress").attr({title: parseInt(progress) + "%"}); }, error: function(data) { id = -1; diff --git a/views/model.haml b/views/model.haml index fe43a1f..f646dec 100644 --- a/views/model.haml +++ b/views/model.haml @@ -24,7 +24,7 @@ #{js} }); - %div{:id => "model_#{model.id}_progress", :class => "model_progress", :title => "#{percentage_completed}%", :alt => "#{percentage_completed}%"} + %div{:id => "model_#{model.id}_progress", :class => "model_progress", :title => "#{percentage_completed}%"} //= haml :model_progress, :locals=>{:percentage_completed=>percentage_completed}, :layout => false - if is_authorized(model.web_uri, "DELETE") %a{:href => url_for("/model/#{model.id}"), :id => "delete_#{model.id}", :class => 'delete_link'} -- cgit v1.2.3 From 4f83500afb33612cadd7084470ab9b42dfa59cf2 Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Thu, 4 Aug 2011 10:24:38 +0000 Subject: activity highlighting and significant features fixed --- application.rb | 3 ++- helper.rb | 10 +++++----- views/lazar.haml | 4 ++-- views/neighbors.haml | 6 +++--- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/application.rb b/application.rb index 328384a..21030aa 100644 --- a/application.rb +++ b/application.rb @@ -413,8 +413,9 @@ post "/lazar/?" do # get detailed prediction @page = 0 @page = params[:page].to_i if params[:page] @model_uri = params[:model_uri] - lazar = OpenTox::Model::Lazar.new @model_uri + lazar = OpenTox::Model::Lazar.find @model_uri prediction_dataset_uri = lazar.run(:compound_uri => params[:compound_uri], :subjectid => session[:subjectid]) + @value_map = lazar.value_map @prediction = OpenTox::LazarPrediction.find(prediction_dataset_uri, session[:subjectid]) @compound = OpenTox::Compound.new(params[:compound_uri]) haml :lazar diff --git a/helper.rb b/helper.rb index 408f8bc..943a182 100644 --- a/helper.rb +++ b/helper.rb @@ -51,20 +51,20 @@ helpers do haml :js_link, :locals => {:name => name, :destination => destination, :method => "toggle"}, :layout => false end - def sort(descriptors) + def sort(descriptors,value_map) features = {:activating => [], :deactivating => []} descriptors.each do |d| - if d[OT.effect] =~ TRUE_REGEXP + if value_map[d[OT.effect]] =~ TRUE_REGEXP features[:activating] << {:smarts => d[OT.smarts],:p_value => d[OT.pValue]} - elsif d[OT.effect] =~ FALSE_REGEXP + elsif value_map[d[OT.effect]] =~ FALSE_REGEXP features[:deactivating] << {:smarts => d[OT.smarts],:p_value => d[OT.pValue]} end end features end - def compound_image(compound,descriptors) - haml :compound_image, :locals => {:compound => compound, :features => sort(descriptors)}, :layout => false + def compound_image(compound,descriptors,value_map) + haml :compound_image, :locals => {:compound => compound, :features => sort(descriptors,value_map)}, :layout => false end def activity_markup(activity) diff --git a/views/lazar.haml b/views/lazar.haml index 3f1d030..2912567 100644 --- a/views/lazar.haml +++ b/views/lazar.haml @@ -18,7 +18,7 @@ %th Supporting information %tr - %td.image= compound_image(@compound,@prediction.descriptors(@compound)) + %td.image= compound_image(@compound,@prediction.descriptors(@compound),@value_map) %td= activity_markup(@prediction.value(@compound)) %td= sprintf('%.03g', @prediction.confidence(@compound)) %td @@ -40,7 +40,7 @@ %tr#fragments{ :style => "display: none;" } %td{:colspan => '4'} = hide_link('#fragments') - = haml :feature_table, :locals => {:features => sort(@prediction.descriptors(@compound))}, :layout => false + = haml :feature_table, :locals => {:features => sort(@prediction.descriptors(@compound),@value_map)}, :layout => false %tbody#neighbors = haml :neighbors, :locals => {:neighbors => @prediction.neighbors(@compound), :page => @page}, :layout => false diff --git a/views/neighbors.haml b/views/neighbors.haml index 2df9230..3f1dccd 100644 --- a/views/neighbors.haml +++ b/views/neighbors.haml @@ -13,8 +13,8 @@ - neighbor_id += 1 - compound = OpenTox::Compound.new(neighbor[OT.compound]) %tr - %td.image= compound_image(compound,@prediction.descriptors(compound)) - %td= activity_markup(neighbor[OT.measuredActivity]) + %td.image= compound_image(compound,@prediction.descriptors(compound),@value_map) + %td= activity_markup(@value_map[neighbor[OT.measuredActivity].to_i]) %td= sprintf('%.03g', neighbor[OT.similarity]) %td %ul @@ -39,5 +39,5 @@ %tr{:id => "fragments#{neighbor_id}", :style => "display: none;" } %td{:colspan => '4'} = hide_link("#fragments#{neighbor_id}") - = haml :feature_table, :locals => {:features => sort(@prediction.descriptors(compound))}, :layout => false + = haml :feature_table, :locals => {:features => sort(@prediction.descriptors(compound),@value_map)}, :layout => false -- cgit v1.2.3 From 004696cca244acd8ff0e078ee33ac09e3ebc03b0 Mon Sep 17 00:00:00 2001 From: mr Date: Thu, 4 Aug 2011 12:45:02 +0200 Subject: id for tasklinks (to fix doubled javascript) --- views/model.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/model.haml b/views/model.haml index f646dec..e688ae9 100644 --- a/views/model.haml +++ b/views/model.haml @@ -46,7 +46,7 @@ - if CONFIG[:logger]=="debug" %dt Task: %dd - %a{:href => "#{model.task_uri}", :rel => "external"} + %a{:href => "#{model.task_uri}", :id => "model_#{model.id}_task_link", :rel => "external"} = model.task_uri - if model.warnings %dt Warnings: -- cgit v1.2.3 From 304c4c484a062077bad08ca9fe3ed44d138c9416 Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Thu, 4 Aug 2011 13:55:58 +0000 Subject: feature highlighting and significant features fixed for generic classes and regression --- application.rb | 13 +++++++++++-- helper.rb | 35 ++++++++++++++++++++++++++++++----- views/feature_table.haml | 12 ++++++++++-- views/lazar.haml | 2 +- views/lazar_algorithm.haml | 20 ++++++++++++++------ views/neighbors.haml | 2 +- views/prediction.haml | 4 ++-- views/significant_fragments.haml | 2 +- 8 files changed, 70 insertions(+), 20 deletions(-) diff --git a/application.rb b/application.rb index 21030aa..c155d1f 100644 --- a/application.rb +++ b/application.rb @@ -372,9 +372,14 @@ post '/predict/?' do # post chemical name to model confidence = nil title = nil db_activities = [] - lazar = OpenTox::Model::Lazar.new model.uri + lazar = OpenTox::Model::Lazar.find model.uri prediction_dataset_uri = lazar.run({:compound_uri => @compound.uri, :subjectid => subjectid}) LOGGER.debug "Prediction dataset_uri: #{prediction_dataset_uri}" + if lazar.value_map + @value_map = lazar.value_map + else + @value_map = nil + end prediction_dataset = OpenTox::LazarPrediction.find(prediction_dataset_uri, subjectid) if prediction_dataset.metadata[OT.hasSource].match(/dataset/) @predictions << { @@ -415,7 +420,11 @@ post "/lazar/?" do # get detailed prediction @model_uri = params[:model_uri] lazar = OpenTox::Model::Lazar.find @model_uri prediction_dataset_uri = lazar.run(:compound_uri => params[:compound_uri], :subjectid => session[:subjectid]) - @value_map = lazar.value_map + if lazar.value_map + @value_map = lazar.value_map + else + @value_map = nil + end @prediction = OpenTox::LazarPrediction.find(prediction_dataset_uri, session[:subjectid]) @compound = OpenTox::Compound.new(params[:compound_uri]) haml :lazar diff --git a/helper.rb b/helper.rb index 943a182..698fd3e 100644 --- a/helper.rb +++ b/helper.rb @@ -54,10 +54,15 @@ helpers do def sort(descriptors,value_map) features = {:activating => [], :deactivating => []} descriptors.each do |d| - if value_map[d[OT.effect]] =~ TRUE_REGEXP - features[:activating] << {:smarts => d[OT.smarts],:p_value => d[OT.pValue]} - elsif value_map[d[OT.effect]] =~ FALSE_REGEXP - features[:deactivating] << {:smarts => d[OT.smarts],:p_value => d[OT.pValue]} + if !value_map.empty? + features[:activating] << {:smarts => d[OT.smarts],:p_value => d[OT.pValue]} if d[OT.effect] == 2 + features[:deactivating] << {:smarts => d[OT.smarts],:p_value => d[OT.pValue]} if d[OT.effect] == 1 + else + if d[OT.effect] =~ TRUE_REGEXP + features[:activating] << {:smarts => d[OT.smarts],:p_value => d[OT.pValue]} + elsif d[OT.effect] =~ FALSE_REGEXP + features[:deactivating] << {:smarts => d[OT.smarts],:p_value => d[OT.pValue]} + end end end features @@ -67,7 +72,26 @@ helpers do haml :compound_image, :locals => {:compound => compound, :features => sort(descriptors,value_map)}, :layout => false end - def activity_markup(activity) + def activity_markup(activity,value_map) + if value_map and !value_map.empty? + if value_map.size == 2 + activity = value_map.index(activity) if value_map.has_value? activity + if activity.to_i == 2 + haml ".active #{value_map[activity]}", :layout => false + elsif activity.to_i == 1 + haml ".inactive #{value_map[activity]}", :layout => false + else + haml ".other #{activity.to_s}", :layout => false + end + else + haml ".other #{activity.to_s}", :layout => false + end + elsif OpenTox::Algorithm::numeric? activity + haml ".other #{sprintf('%.03g', activity.to_f)}", :layout => false + else + haml ".other #{activity.to_s}", :layout => false + end +=begin case activity.class.to_s when /Float/ haml ".other #{sprintf('%.03g', activity)}", :layout => false @@ -89,6 +113,7 @@ helpers do haml ".other #{activity.to_s}", :layout => false end end +=end end def neighbors_navigation diff --git a/views/feature_table.haml b/views/feature_table.haml index a8a153f..e75c818 100644 --- a/views/feature_table.haml +++ b/views/feature_table.haml @@ -2,7 +2,11 @@ - unless features[:activating].empty? %tr %th - activating + - if @value_map.empty? + activating + - else + predominatly in compounds with activity + = "\"#{@value_map[2]}\"" ( %a{:href => "http://www.daylight.com/dayhtml/doc/theory/theory.smarts.html", :rel => "external"} SMARTS ) @@ -15,7 +19,11 @@ - unless features[:deactivating].empty? %tr %th - deactivating + - if @value_map.empty? + deactivating + - else + predominatly in compounds with activity + = "\"#{@value_map[1]}\"" ( %a{:href => "http://www.daylight.com/dayhtml/doc/theory/theory.smarts.html", :rel => "external"} SMARTS ) diff --git a/views/lazar.haml b/views/lazar.haml index 2912567..870fcab 100644 --- a/views/lazar.haml +++ b/views/lazar.haml @@ -19,7 +19,7 @@ %tr %td.image= compound_image(@compound,@prediction.descriptors(@compound),@value_map) - %td= activity_markup(@prediction.value(@compound)) + %td= activity_markup(@prediction.value(@compound), @value_map) %td= sprintf('%.03g', @prediction.confidence(@compound)) %td %ul diff --git a/views/lazar_algorithm.haml b/views/lazar_algorithm.haml index 85823b5..e5b70f6 100644 --- a/views/lazar_algorithm.haml +++ b/views/lazar_algorithm.haml @@ -33,12 +33,20 @@ = toggle_link "#significant_fragments", "Significant fragments" are highlighted in the structure display as follows: %ul - %li - .active activating fragments - %li - .inactive deactivating fragments - %li - .inconclusive regions, where activating and deactivating fragments overlap + - if @value_map.empty? + %li + .active activating fragments + %li + .inactive deactivating fragments + %li + .inconclusive regions, where activating and deactivating fragments overlap + - else + %li + .active= "features that occur predominately in compounds with activity: \"#{@value_map[2]}\"" + %li + .inactive= "features that occur predominately in compounds with activity: \"#{@value_map[1]}\"" + %li + .inconclusive regions, where fragments from different classes overlap %li .other inert parts diff --git a/views/neighbors.haml b/views/neighbors.haml index 3f1dccd..e2d65fa 100644 --- a/views/neighbors.haml +++ b/views/neighbors.haml @@ -14,7 +14,7 @@ - compound = OpenTox::Compound.new(neighbor[OT.compound]) %tr %td.image= compound_image(compound,@prediction.descriptors(compound),@value_map) - %td= activity_markup(@value_map[neighbor[OT.measuredActivity].to_i]) + %td= activity_markup(neighbor[OT.measuredActivity], @value_map) %td= sprintf('%.03g', neighbor[OT.similarity]) %td %ul diff --git a/views/prediction.haml b/views/prediction.haml index 9bb3f76..682b979 100644 --- a/views/prediction.haml +++ b/views/prediction.haml @@ -16,7 +16,7 @@ - if p[:measured_activities] %br - p[:measured_activities].each do |a| - = activity_markup(a) + = activity_markup(a, @value_map) %br ( %a{:href => "#", :id => "linkTrainingData#{p.object_id}"} Measured activity @@ -29,7 +29,7 @@ - elsif p[:error] %br= p[:error] - else - = activity_markup(p[:prediction]) + = activity_markup(p[:prediction], @value_map) - if p[:confidence] %br ( diff --git a/views/significant_fragments.haml b/views/significant_fragments.haml index bd39826..8cddf43 100644 --- a/views/significant_fragments.haml +++ b/views/significant_fragments.haml @@ -5,6 +5,6 @@ = hide_link "#significant_fragments" ) %dd - Substructures that occur (statistically significant) more frequently in active or inactive compounds. Substuctures can take any shape (without cycles) and are determined with the + Substructures that occur (statistically significant) more frequently in one of the toxicity classes or correlate with quantitative toxicity values. Substuctures can take any shape (without cycles) and are determined with the %a{:href => "http://www.maunz.de/libfminer2-bbrc-doc/", :rel => "external"} fminer algorithm. -- cgit v1.2.3 From 8b63e71e9cb0c6b377e83f793370039410012ed4 Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Thu, 4 Aug 2011 14:37:44 +0000 Subject: highlighting warning for multiple classes --- views/feature_table.haml | 4 ++-- views/lazar_algorithm.haml | 20 +++++++++++++------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/views/feature_table.haml b/views/feature_table.haml index e75c818..7c57331 100644 --- a/views/feature_table.haml +++ b/views/feature_table.haml @@ -6,7 +6,7 @@ activating - else predominatly in compounds with activity - = "\"#{@value_map[2]}\"" + = "\"#{@value_map[@value_map.keys.sort.last]}\"" ( %a{:href => "http://www.daylight.com/dayhtml/doc/theory/theory.smarts.html", :rel => "external"} SMARTS ) @@ -23,7 +23,7 @@ deactivating - else predominatly in compounds with activity - = "\"#{@value_map[1]}\"" + = "\"#{@value_map[@value_map.keys.sort.first]}\"" ( %a{:href => "http://www.daylight.com/dayhtml/doc/theory/theory.smarts.html", :rel => "external"} SMARTS ) diff --git a/views/lazar_algorithm.haml b/views/lazar_algorithm.haml index e5b70f6..76a993b 100644 --- a/views/lazar_algorithm.haml +++ b/views/lazar_algorithm.haml @@ -32,23 +32,29 @@ %p = toggle_link "#significant_fragments", "Significant fragments" are highlighted in the structure display as follows: - %ul - - if @value_map.empty? + - if @value_map.empty? + %ul %li .active activating fragments %li .inactive deactivating fragments %li .inconclusive regions, where activating and deactivating fragments overlap - - else %li - .active= "features that occur predominately in compounds with activity: \"#{@value_map[2]}\"" + .other inert parts + - else + %ul + %li + .active= "features that occur predominately in compounds with activity: \"#{@value_map[@value_map.keys.sort.last]}\"" %li - .inactive= "features that occur predominately in compounds with activity: \"#{@value_map[1]}\"" + .inactive= "features that occur predominately in compounds with activity: \"#{@value_map[@value_map.keys.sort.first]}\"" %li .inconclusive regions, where fragments from different classes overlap - %li - .other inert parts + %li + .other inert parts + - if @value_map.size > 2 + .notice Incomplete implementation of feature highlighting and display of significant fragments. Only features for 2 classes are shown! + %p Please keep in mind that predictions are based on the measured activities of neighbors. -- cgit v1.2.3 From aa588fc87f1a892f3de903f5d60df68d4eaa6b52 Mon Sep 17 00:00:00 2001 From: mr Date: Thu, 4 Aug 2011 17:49:29 +0200 Subject: ul in p --- views/help.haml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/views/help.haml b/views/help.haml index 2b39d6c..f602dff 100644 --- a/views/help.haml +++ b/views/help.haml @@ -87,13 +87,13 @@ %p Excel examples for download: - %ul - %li - = link_to "hamster_carcinogenicity.xls", "/hamster_carcinogenicity.xls" - (classification) - %li - = link_to "EPAFHM.xls", "/EPAFHM.xls" - (regression) +%ul + %li + = link_to "hamster_carcinogenicity.xls", "/hamster_carcinogenicity.xls" + (classification) + %li + = link_to "EPAFHM.xls", "/EPAFHM.xls" + (regression) %h3 CSV example @@ -113,13 +113,13 @@ %p CSV examples for download: - %ul - %li - = link_to "hamster_carcinogenicity.csv", "/hamster_carcinogenicity.csv" - (classification) - %li - = link_to "EPAFHM.csv", "/EPAFHM.csv" - (regression) +%ul + %li + = link_to "hamster_carcinogenicity.csv", "/hamster_carcinogenicity.csv" + (classification) + %li + = link_to "EPAFHM.csv", "/EPAFHM.csv" + (regression) %p You can create CSV files in Excel: Create a sheet with two columns and export them as CSV file with the "Save As" option from the menu, selecting the CSV (comma delimited) format. -- cgit v1.2.3