changeset 7:59b3b6ce10bb draft

Uploaded
author bgruening
date Tue, 29 Oct 2013 11:07:49 -0400
parents 7d49e315cb95
children 9262f801d739
files EDeN_feature.xml EDeN_nearest_neighbor.xml EDeN_test.xml EDeN_train.xml datatypes_conf.xml eden.py eden_macros.xml mol2gspan.py mol2gspan.xml tool_dependencies.xml
diffstat 10 files changed, 241 insertions(+), 248 deletions(-) [+]
line wrap: on
line diff
--- a/EDeN_feature.xml	Thu Sep 05 12:52:45 2013 -0400
+++ b/EDeN_feature.xml	Tue Oct 29 11:07:49 2013 -0400
@@ -1,93 +1,42 @@
-<tool id="bg_eden_feature" name="EDeN Converter" version="0.1">
-    <description></description>
-    <requirements>
-        <requirement type="package" version="2.3.2">openbabel</requirement>
-        <requirement type="set_environment">EDEN_SCRIPT_PATH</requirement>
-    </requirements>
+<tool id="bg_eden_feature" name="EDeN Converters" version="0.1">
+    <description>to produce sparce vectors</description>
     <macros>
         <import>eden_macros.xml</import>
     </macros>
+    <expand macro="requirements" />
     <command>
-
-        ## pre-processing step if we have a molecule type we need to convert it to the gSpan format at first
-
-        #import tempfile, os
-        #set $temp_gspan = tempfile.NamedTemporaryFile( delete=False )
-        #silent $temp_gspan.close()
-        #set $temp_gspan = $temp_gspan.name
-
-        #if $file_type_opts.file_type_opts_selector == 'sdf':
-            obabel -i sdf -o sdf $infile ---errorlevel 1 | python \$EDEN_SCRIPT_PATH/mol2gspan.py --infile - --outfile $temp_gspan
-            #set $file_type = 'GRAPH'
-        #elif $file_type_opts.file_type_opts_selector == 'smi':
-            obabel -i smi -o sdf $infile ---errorlevel 1 | python \$EDEN_SCRIPT_PATH/mol2gspan.py --infile - --outfile $temp_gspan
-            #set $file_type = 'GRAPH'
-        #else:
-            #set $temp_gspan = $infile
-            #set $file_type = $file_type_opts.file_type_opts_selector
-        #end if
-        ;
+        tmp_dir=`mktemp -d -u`;
 
         EDeN --action FEATURE
 
-        --input_data_file_name $temp_gspan
+        --output_directory_path \$tmp_dir
+
+        --input_data_file_name $infile
         --model_file_name $outfile
 
-        ## if we have an molecule datatype the file_type is set to GRAPH, after convertion to the gSpan Graph format
-        --file_type $file_type
+        --file_type $file_type_opts.file_type_opts_selector
 
         --binary_file_type ## create a binary sparse vector as output
 
-
-        $no_normalization
-        $min_kernel
-
-        --hash_bit_size $hash_bit_size
-        --radius $radius
-        --distance $distance
-        --vertex_degree_threshold $vertex_degree_threshold
-
-        $no_normalization
-        $min_kernel
+        @normalization_kernel_hash_radius_dist_vertex@
 
         --kernel_type $kernel_type_opts.kernel_type_opts_selector
         --graph_type $graph_type
 
         #if $file_type_opts.file_type_opts_selector == 'SEQUENCE':
-
             --sequence_degree $sequence_degree
             $sequence_token
             $sequence_multi_line
             $sequence_pairwise_interaction
-
-        #end if
-
-        #if $kernel_type_opts.kernel_type_opts_selector in ['DDK','NSDDK','SK']:
-            --tree_lambda $kernel_type_opts.tree_lambda
-            --radius_two $kernel_type_opts.radius_two
         #end if
 
-        ### Adds rescaled features from nearest neighbors ###
-
-        #if $smooth_opts.smooth_opts_selector == 'smooth':
-            --smooth
-            --smooth_param $smooth_opts.smoother_param
+        @kernel_type_options@
 
-            --row_index_file_name $row_index_file_name
-            --col_index_file_name $col_index_file_name
-            --num_hash_functions $smooth_opts.num_hash_functions
-            --num_repeat_hash_functions $smooth_opts.num_repeat_hash_functions
-            --max_size_bin $smooth_opts.max_size_bin
-            --eccess_neighbour_size_factor $smooth_opts.eccess_neighbour_size_factor
-            --num_nearest_neighbours $smooth_opts.num_nearest_neighbours
-            $smooth_opts.shared_neighborhood
-            $smooth_opts.no_neighborhood_cache
-            $smooth_opts.no_minhash_cache
-        #end if
+        @input_smooth_conditional@
 
         ;
-        rm $temp_gspan
-
+        cp \$tmp_dir/feature $outfile;
+        rm \$tmp_dir -rf;
 
     </command>
     <stdio>
@@ -97,16 +46,14 @@
            description="An error occured with your Job." />
     </stdio>
     <inputs>
-        <param format="smi,gspan,inchi,sdf,mol,mol2,txt" name="infile" type="data" label="Input file" 
-            help="File can contain molecule data types (SMILES, InChI, SDF) or Graph datatypes (gSpan, sparse vector, sequence)."/>
+        <param format="gspan,txt" name="infile" type="data" label="Input file" 
+            help="File can contain Graph datatypes (gSpan, sparse vector, sequence)."/>
 
         <conditional name="file_type_opts">
             <param name="file_type_opts_selector" type="select" label="Type of Input file">
                 <option value="GRAPH">Graph</option>
                 <option value="SPARSE_VECTOR">sparse vector</option>
                 <option value="SEQUENCE">Sequence</option>
-                <option value="sdf">SDF</option>
-                <option value="smi">SMILES</option>
             </param>
             <when value="GRAPH" />
             <when value="SPARSE_VECTOR" />
@@ -122,70 +69,13 @@
             <when value="smi" />
         </conditional>
 
-        <conditional name="kernel_type_opts">
-            <param name="kernel_type_opts_selector" type="select" label="Type of the Kernel">
-                <option value="NSPDK">NSPDK</option>
-                <option value="WDK">WDK</option>
-                <option value="PBK">PBK</option>
-                <option value="USPK">USPK</option>
-                <option value="DDK">DDK</option>
-                <option value="NSDDK">ANSDDK</option>
-                <option value="SK">SK [NSPDK]</option>
-            </param>
-            <when value="NSPDK" />
-            <when value="WDK" />
-            <when value="PBK" />
-            <when value="USPK" />
-            <when value="SK">
-                <param name="radius_two" type="integer" value="2" label="Radius Two" help="">
-                    <validator type="in_range" min="1" />
-                </param>
-                <param name="tree_lambda" type="float" value="1.2" label="Tree lambda" help="">
-                    <validator type="in_range" min="0.0" />
-                </param>
-            </when>
-            <when value="DDK">
-                <param name="radius_two" type="integer" value="2" label="Radius Two" help="">
-                    <validator type="in_range" min="1" />
-                </param>
-                <param name="tree_lambda" type="float" value="1.2" label="Tree lambda" help="">
-                    <validator type="in_range" min="0.0" />
-                </param>
-            </when>
-            <when value="NSDDK">
-                <param name="radius_two" type="integer" value="2" label="Radius Two" help="">
-                    <validator type="in_range" min="1" />
-                </param>
-                <param name="tree_lambda" type="float" value="1.2" label="Tree lambda" help="">
-                    <validator type="in_range" min="0.0" />
-                </param>
-            </when>
-        </conditional>
+        <expand macro="kernel_type_options" />
 
-
-        <param name="graph_type" type="select" display="radio" label="Type of Graph">
-            <option value="DIRECTED">directed</option>
-            <option value="UNDIRECTED">undirected</option>
-        </param>
+        <expand macro="graph_types" />
 
         <expand macro="input_smooth_conditional" />
 
-        <param name="no_normalization" type="boolean" label="Skip normalization" truevalue="--no_normalization" falsevalue="" checked="false" />
-        <param name="min_kernel" type="boolean" label="Use min kernel" truevalue="--min_kernel" falsevalue="" checked="false" />
-
-        <param name="hash_bit_size" type="integer" value="15" label="Bit size of the used hashing function" help="">
-            <validator type="in_range" min="1" />
-        </param>
-        <param name="radius" type="integer" value="2" label="Radius that defines a neighborhood" help="">
-            <validator type="in_range" min="1" />
-        </param>
-        <param name="distance" type="integer" value="5" label="Distance that defines a neighborhood" help="">
-            <validator type="in_range" min="1" />
-        </param>
-        <param name="vertex_degree_threshold" type="integer" value="7" label="Vertex degree threshold" help="">
-            <validator type="in_range" min="1" />
-        </param>
-
+        <expand macro="normalization_kernel_hash_radius_dist_vertex" />
 
     </inputs>
     <configfiles>
@@ -224,7 +114,7 @@
 </configfile>
     </configfiles>
     <outputs>
-        <data format="eden_sparse_vector" name="outfile" label="Sparse vector from ${on_string}"/>
+        <data format="sparsevector" name="outfile" label="Sparse Vector from ${on_string}"/>
     </outputs>
     <tests>
         <test>
@@ -242,7 +132,7 @@
 When the target information is 0, a self-training algorithm is used to impute a positive or negative class to the unsupervised instances.
 If the target information is imbalanced a minority class resampling technique is used to rebalance the training set.
 
-This tool is part of the EDeN (Explicit Decomposition with Neighborhoods) suite, developed by Fabrizio Costa.
+@references@
 
     </help>
 </tool>
--- a/EDeN_nearest_neighbor.xml	Thu Sep 05 12:52:45 2013 -0400
+++ b/EDeN_nearest_neighbor.xml	Tue Oct 29 11:07:49 2013 -0400
@@ -1,11 +1,11 @@
 <tool id="bg_eden_nearest_neighbor" name="EDeN Nearest Neighbors" version="0.1">
     <description></description>
-    <requirements>
-    </requirements>
+    <expand macro="requirements" />
     <macros>
         <import>eden_macros.xml</import>
     </macros>
     <command>
+        tmp_dir=`mktemp -d -u`;
         EDeN --action NEAREST_NEIGHBOR
 
         --input_data_file_name $infile
@@ -14,22 +14,38 @@
         --file_type "SPARSE_VECTOR"
         --binary_file_type
 
-        ### Adds rescaled features from nearest neighbors ###
+        @kernel_type_options@
+        --graph_type $graph_type
+        @input_smooth_conditional@
+
+        @normalization_kernel_hash_radius_dist_vertex@
 
-        #if $smooth_opts.smooth_opts_selector == 'smooth':
-            --smooth
-            --smooth_param $smooth_opts.smoother_param
+        --output_directory_path \$tmp_dir
+
+
+        ##
+        ## shuffling files to create the correct outputs for Galaxy
+        ##
 
-            --row_index_file_name $row_index_file_name
-            --col_index_file_name $col_index_file_name
-            --num_hash_functions $smooth_opts.num_hash_functions
-            --num_repeat_hash_functions $smooth_opts.num_repeat_hash_functions
-            --max_size_bin $smooth_opts.max_size_bin
-            --eccess_neighbour_size_factor $smooth_opts.eccess_neighbour_size_factor
-            --num_nearest_neighbours $smooth_opts.num_nearest_neighbours
-            $smooth_opts.shared_neighborhood
-            $smooth_opts.no_neighborhood_cache
-            $smooth_opts.no_minhash_cache
+        ;
+        cp \$tmp_dir/knn $ofile_nnlist 2> /dev/null
+        
+        ## Nearest neighbor feature representation
+        #if 'nnf' in str($additional_outputs).split(','):
+            ;
+            cp \$tmp_dir/knn_feature $ofile_nnf 2> /dev/null
+        #end if
+
+        ## Nearest neighbor target value list
+        #if 'nnt' in str($additional_outputs).split(','):
+            ;
+            cp \$tmp_dir/knn_target_value $ofile_nnt 2> /dev/null
+        #end if
+
+        ## Nearest neighbor kernel value list
+        #if 'nnk' in str($additional_outputs).split(','):
+            ;
+            cp \$tmp_dir/knn_kernel_value $ofile_nnk 2> /dev/null
         #end if
 
     </command>
@@ -40,9 +56,31 @@
 
         <expand macro="input_smooth_conditional" />
 
+        <expand macro="kernel_type_options" />
+
+        <expand macro="graph_types" />
+
+        <expand macro="normalization_kernel_hash_radius_dist_vertex" />
+
+        <param name="additional_outputs" type="select" multiple="true" optional="True" label="Additional outputs">
+            <option value="none" selected="True">No additional output</option>
+            <option value="nnk">Nearest neighbor kernel value list</option>
+            <option value="nnt">Nearest neighbor target value list</option>
+            <option value="nnf">Nearest neighbor feature representation</option>
+        </param>
+
     </inputs>
     <outputs>
-        <data format="gspan" name="outfile" label="gSpan from ${on_string}"/>
+        <data format="tabular" name="ofile_nnlist" label="${tool.name} on ${on_string}"/>
+        <data format="tabular" name="ofile_nnf" label="${tool.name} on ${on_string} (Nearest neighbor feature representation)">
+          <filter>'nnf' in additional_outputs</filter>
+        </data>
+        <data format="tabular" name="ofile_nnt" label="${tool.name} on ${on_string} (Nearest neighbor target value list)">
+          <filter>'nnt' in additional_outputs</filter>
+        </data>
+        <data format="tabular" name="ofile_nnk" label="${tool.name} on ${on_string} (Nearest neighbor kernel value list)">
+          <filter>'nnk' in additional_outputs</filter>
+        </data>
     </outputs>
     <tests>
         <test>
@@ -58,7 +96,7 @@
 
 Nearest neighbors are efficiently identified with a locality sensitive hashing technique.
 
-This tool is part of the EDeN (Explicit Decomposition with Neighborhoods) suite, developed by Fabrizio Costa.
+@references@
 
     </help>
 </tool>
--- a/EDeN_test.xml	Thu Sep 05 12:52:45 2013 -0400
+++ b/EDeN_test.xml	Tue Oct 29 11:07:49 2013 -0400
@@ -1,15 +1,31 @@
 <tool id="bg_eden_test" name="EDeN Test" version="0.1">
     <description></description>
-    <requirements>
-    </requirements>
+    <macros>
+        <import>eden_macros.xml</import>
+    </macros>
+    <expand macro="requirements" />
     <command>
+        tmp_dir=`mktemp -d -u`;
         EDeN --action TEST
 
-        --input_data_file_name $sparse_vector_infile
+        --input_data_file_name  $sparse_vector_infile
+        --file_type "SPARSE_VECTOR"
+        --binary_file_type
+
         --model_file_name $model_infile
 
-        --file_type "SPARSE_VECTOR"
-        --binary_file_type
+        @kernel_type_options@
+
+        --graph_type $graph_type
+
+        @normalization_kernel_hash_radius_dist_vertex@
+
+        --output_directory_path \$tmp_dir
+        --minimal_output 
+
+        ;
+        cp \$tmp_dir/prediction $output;
+        rm \$tmp_dir -rf
 
     </command>
     <inputs>
@@ -17,6 +33,12 @@
         <param format="txt" name="model_infile" type="data" label="Input Model" 
             help="created with the EDeN Train program"/>
 
+        <expand macro="kernel_type_options" />
+
+        <expand macro="graph_types" />
+
+        <expand macro="normalization_kernel_hash_radius_dist_vertex" />
+
     </inputs>
     <outputs>
         <data format="tabular" name="output" label="Generated from ${on_string}"/>
@@ -35,7 +57,7 @@
 When the target information is 0, a self-training algorithm is used to impute a positive or negative class to the unsupervised instances.
 If the target information is imbalanced a minority class resampling technique is used to rebalance the training set.
 
-This tool is part of the EDeN (Explicit Decomposition with Neighborhoods) suite, developed by Fabrizio Costa.
+@references@
 
     </help>
 </tool>
--- a/EDeN_train.xml	Thu Sep 05 12:52:45 2013 -0400
+++ b/EDeN_train.xml	Tue Oct 29 11:07:49 2013 -0400
@@ -1,14 +1,20 @@
 <tool id="bg_eden_train" name="EDeN Train" version="0.1">
     <description></description>
-    <requirements>
-    </requirements>
+    <macros>
+        <import>eden_macros.xml</import>
+    </macros>
+    <expand macro="requirements" />
     <command>
+        tmp_dir=`mktemp -d -u`;
+
         EDeN --action TRAIN
 
         --input_data_file_name $infile
         --file_type "SPARSE_VECTOR"
         --binary_file_type
 
+        ##--output_directory_path \$tmp_dir
+
         ## TODO: we need a tool that creates such a file, maybe from the metadata of an SDF file
         ## target_file_name is a file with 1 or -1 one in each row, indicating the class
         --target_file_name $target_infile
@@ -40,15 +46,15 @@
 
         <!-- Semi-supervised-settings -->
         <param name="threshold" type="float" value="1.0" label="Top and low quantile" 
-            help="Only the top and low quantile will be used as positives and negative instances. A threshold of 1 means that all unsupervised instaces are used in the next phase. ">
+            help="Only the top and low quantile will be used as positives and negative instances. A threshold of 1 means that all unsupervised instaces are used in the next phase.">
             <validator type="in_range" min="0.0" />
         </param>
-        <param name="num_iterations" type="integer" value="3" label="Number of iterations">
+        <param name="num_iterations" type="integer" value="3" label="Number of iterations" />
         <param name="only_negative" type="boolean" label="Induce only negative class instances." truevalue="--only_negative" falsevalue="" checked="false" />
         <param name="only_positive" type="boolean" label="Induce only positive class instances." truevalue="--only_positive" falsevalue="" checked="false" />
 
 
-        <param name="topological_regularization_decay_rate" type="float" value="0.01" label="Topological regularization decay rate" />
+        <param name="topological_regularization_decay_rate" type="float" value="0.01" label="Topological regularization decay rate">
             <validator type="in_range" min="0.0" />
         </param>
         <param name="topological_regularization_num_neighbors" type="integer" value="0" label="Topological regularization number of neighbors">
@@ -58,7 +64,7 @@
             <validator type="in_range" min="0" />
         </param>
 
-        <param name="random_seed" type="integer" value="1" label="Randam Seed" help="" />
+        <param name="random_seed" type="integer" value="1" label="Random Seed" help="" />
 
     </inputs>
     <outputs>
@@ -80,13 +86,10 @@
 When the target information is 0, a self-training algorithm is used to impute a positive or negative class to the unsupervised instances.
 If the target information is imbalanced a minority class resampling technique is used to rebalance the training set.
 
-This tool is part of the EDeN (Explicit Decomposition with Neighborhoods) suite, developed by Fabrizio Costa.
-
+@references@
 
-REFERENCES
-==========
-
-The code for Stochastic Gradient Descent SVM is adapted from http://leon.bottou.org/projects/sgd. Léon Bottou and Yann LeCun, ''Large Scale Online Learning'', Advances in Neural Information Processing Systems 16, Edited by Sebastian Thrun, Lawrence Saul and Bernhard Schölkopf, MIT Press, Cambridge, MA, 2004.
+The code for Stochastic Gradient Descent SVM is adapted from http://leon.bottou.org/projects/sgd. Léon Bottou and Yann LeCun, ''Large Scale Online Learning'', 
+Advances in Neural Information Processing Systems 16, Edited by Sebastian Thrun, Lawrence Saul and Bernhard Schölkopf, MIT Press, Cambridge, MA, 2004.
 
 
 
--- a/datatypes_conf.xml	Thu Sep 05 12:52:45 2013 -0400
+++ b/datatypes_conf.xml	Tue Oct 29 11:07:49 2013 -0400
@@ -5,6 +5,6 @@
     </datatype_files>
     <registration>
         <datatype extension="gspan" type="galaxy.datatypes.eden:Gspan" mimetype="application/octet-stream" subclass="True" display_in_upload="false"/>
-        <datatype extension="gspan" type="galaxy.datatypes.eden:SparseVector" mimetype="application/octet-stream" subclass="True" display_in_upload="false"/>
+        <datatype extension="sparsevector" type="galaxy.datatypes.eden:SparseVector" mimetype="application/octet-stream" subclass="True" display_in_upload="false"/>
     </registration>
 </datatypes>
--- a/eden.py	Thu Sep 05 12:52:45 2013 -0400
+++ b/eden.py	Tue Oct 29 11:07:49 2013 -0400
@@ -24,7 +24,7 @@
 
 class SparseVector( Binary ):
     """Class describing an SparseVector file"""
-    file_ext = "sparse"
+    file_ext = "sparsevector"
 
     def set_peek( self, dataset, is_multi_byte=False ):
         if not dataset.dataset.purged:
--- a/eden_macros.xml	Thu Sep 05 12:52:45 2013 -0400
+++ b/eden_macros.xml	Tue Oct 29 11:07:49 2013 -0400
@@ -60,4 +60,122 @@
             </when>
         </conditional>
     </macro>
+
+    <macro name="normalization_kernel_hash_radius_dist_vertex">
+        <param name="no_normalization" type="boolean" label="Skip normalization" truevalue="--no_normalization" falsevalue="" checked="false" />
+        <param name="min_kernel" type="boolean" label="Use min kernel" truevalue="--min_kernel" falsevalue="" checked="false" />
+
+        <param name="hash_bit_size" type="integer" value="15" label="Bit size of the used hashing function" help="">
+            <validator type="in_range" min="1" />
+        </param>
+        <param name="radius" type="integer" value="2" label="Radius that defines a neighborhood" help="">
+            <validator type="in_range" min="1" />
+        </param>
+        <param name="distance" type="integer" value="5" label="Distance that defines a neighborhood" help="">
+            <validator type="in_range" min="1" />
+        </param>
+        <param name="vertex_degree_threshold" type="integer" value="7" label="Vertex degree threshold" help="">
+            <validator type="in_range" min="1" />
+        </param>
+    </macro>
+
+    <macro name="graph_types">
+        <param name="graph_type" type="select" display="radio" label="Type of Graph">
+            <option value="DIRECTED">directed</option>
+            <option value="UNDIRECTED">undirected</option>
+        </param>
+    </macro>
+
+    <xml name="requirements">
+        <requirements>
+            <requirement type="package" version="1.1">eden</requirement>
+            <yield />
+        </requirements>
+        <!--<version_command>EDeN -version</version_command>-->
+    </xml>
+
+    <macro name="kernel_type_options">
+        <conditional name="kernel_type_opts">
+            <param name="kernel_type_opts_selector" type="select" label="Type of the Kernel">
+                <option value="NSPDK">NSPDK</option>
+                <option value="WDK">WDK</option>
+                <option value="PBK">PBK</option>
+                <option value="USPK">USPK</option>
+                <option value="DDK">DDK</option>
+                <option value="NSDDK">ANSDDK</option>
+                <option value="SK">SK [NSPDK]</option>
+            </param>
+            <when value="NSPDK" />
+            <when value="WDK" />
+            <when value="PBK" />
+            <when value="USPK" />
+            <when value="SK">
+                <param name="radius_two" type="integer" value="2" label="Radius Two" help="">
+                    <validator type="in_range" min="1" />
+                </param>
+                <param name="tree_lambda" type="float" value="1.2" label="Tree lambda" help="">
+                    <validator type="in_range" min="0.0" />
+                </param>
+            </when>
+            <when value="DDK">
+                <param name="radius_two" type="integer" value="2" label="Radius Two" help="">
+                    <validator type="in_range" min="1" />
+                </param>
+                <param name="tree_lambda" type="float" value="1.2" label="Tree lambda" help="">
+                    <validator type="in_range" min="0.0" />
+                </param>
+            </when>
+            <when value="NSDDK">
+                <param name="radius_two" type="integer" value="2" label="Radius Two" help="">
+                    <validator type="in_range" min="1" />
+                </param>
+                <param name="tree_lambda" type="float" value="1.2" label="Tree lambda" help="">
+                    <validator type="in_range" min="0.0" />
+                </param>
+            </when>
+        </conditional>
+    </macro>
+
+    <token name="@normalization_kernel_hash_radius_dist_vertex@">
+        $no_normalization
+        $min_kernel
+
+        --hash_bit_size $hash_bit_size
+        --radius $radius
+        --distance $distance
+        --vertex_degree_threshold $vertex_degree_threshold
+    </token>
+
+    <token name="@input_smooth_conditional@">
+        #if $smooth_opts.smooth_opts_selector == 'smooth':
+            --smooth
+            --smooth_param $smooth_opts.smoother_param
+
+            --row_index_file_name $row_index_file_name
+            --col_index_file_name $col_index_file_name
+            --num_hash_functions $smooth_opts.num_hash_functions
+            --num_repeat_hash_functions $smooth_opts.num_repeat_hash_functions
+            --max_size_bin $smooth_opts.max_size_bin
+            --eccess_neighbour_size_factor $smooth_opts.eccess_neighbour_size_factor
+            --num_nearest_neighbours $smooth_opts.num_nearest_neighbours
+            $smooth_opts.shared_neighborhood
+            $smooth_opts.no_neighborhood_cache
+            $smooth_opts.no_minhash_cache
+        #end if
+    </token>
+
+    <token name="@kernel_type_options@">
+        #if $kernel_type_opts.kernel_type_opts_selector in ['DDK','NSDDK','SK']:
+            --tree_lambda $kernel_type_opts.tree_lambda
+            --radius_two $kernel_type_opts.radius_two
+        #end if
+    </token>
+
+    <token name="@references@">
+This tool is part of the EDeN (Explicit Decomposition with Neighborhoods) suite, developed by Fabrizio Costa.
+    </token>
+
+
+
+
 </macros>
--- a/mol2gspan.py	Thu Sep 05 12:52:45 2013 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-#!/usr/bin/env python
-
-import os, sys
-import argparse
-
-def main(args ):
-
-    begin = True
-    iid = 0
-    graph_counter = 1
-
-    for line in args.infile:
-        if line.rstrip():
-            if line.strip().endswith('END'):
-                begin = False
-            elif line.strip() == '$$$$':
-                graph_counter += 1
-                iid = 0
-            else:
-                # found header line, like:  21 21  0  0  0  0  0  0  0  0999 V2000
-                if len(line.split()) >= 5 and line.split()[-1] == 'V2000':
-                    args.outfile.write('t # id %s\n' % graph_counter)
-                    begin=True
-                    continue
-                # connection or coordinate/atom table
-                if len(line.split()) >= 4 and begin:
-                    # coordinate/atom table
-                    if line.split()[3].isalpha():
-                        args.outfile.write( 'v %s %s \n' % (iid, line.split()[3]) )
-                        iid += 1
-                    else:
-                        #connection table
-                        id, node, edge, trash = line.split(None, 3)
-                        args.outfile.write( 'e %s %s %s\n' % ( int(id) - 1 , int(node) -1, edge ) )
-
-if __name__ == "__main__":
-    parser = argparse.ArgumentParser()
-    parser.add_argument('--infile', nargs='?', type=argparse.FileType('r'),
-        default=sys.stdin, help="Specify one or more input files")
-    parser.add_argument('--outfile', type=argparse.FileType('w'),
-        default=sys.stdout, help="Specify one output file")
-    args = parser.parse_args()
-    main( args )
--- a/mol2gspan.xml	Thu Sep 05 12:52:45 2013 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-<tool id="bg_mol2gspan" name="Molecule to gSpan" version="0.1">
-    <description>converter</description>
-    <requirements>
-        <requirement type="package" version="2.3.2">openbabel</requirement>
-        <requirement type="set_environment">EDEN_SCRIPT_PATH</requirement>
-    </requirements>
-    <command>
-        obabel -i smi -o sdf $infile | \$EDEN_SCRIPT_PATH/mol2gspan.py --infile - --outfile $outfile
-    </command>
-    <inputs>
-        <param format="smi,sdf,mol,inchi,mol2" name="infile" type="data" 
-            label="Input molecules" help=""/>
-    </inputs>
-    <outputs>
-        <data format="gspan" name="outfile" label="gSpan from ${on_string}"/>
-    </outputs>
-    <tests>
-        <test>
-            <param name="infile" value="3_molceuls.sdf" />
-            <output name="outfile" file="3_molecules.gspan" />
-        </test>
-    </tests>
-    <help>
-
-.. class:: infomark
-
-**What it does** 
-
-That converter will convert arbitratry molecule files to the gSpan format.
-
-    </help>
-</tool>
--- a/tool_dependencies.xml	Thu Sep 05 12:52:45 2013 -0400
+++ b/tool_dependencies.xml	Tue Oct 29 11:07:49 2013 -0400
@@ -1,9 +1,6 @@
 <?xml version="1.0"?>
 <tool_dependency>
-    <package name="openbabel" version="2.3.2">
-        <repository changeset_revision="7601c962048a" name="package_openbabel_2_3" owner="iuc" toolshed="http://testtoolshed.g2.bx.psu.edu" />
+    <package name="eden" version="1.1">
+        <repository changeset_revision="25d3b2b5b677" name="package_eden_1_1" owner="bgruening" toolshed="http://testtoolshed.g2.bx.psu.edu" />
     </package>
-    <set_environment version="1.0">
-        <environment_variable action="set_to" name="EDEN_SCRIPT_PATH">$REPOSITORY_INSTALL_DIR</environment_variable>
-    </set_environment>
 </tool_dependency>