changeset 4:7c1794e0f9c2 draft default tip

planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools/numeric_clustering commit adf077b912ddebd97b07b947b855cdd2862ed8ef-dirty
author bgruening
date Fri, 01 Jan 2016 18:00:23 -0500
parents 6bfbaf81b8f4
children
files Untitled.ipynb foo.tab numeric_clustering.xml test-data/cluster_result01.txt test-data/cluster_result02.txt test-data/cluster_result03.txt test-data/cluster_result04.txt test-data/cluster_result05.txt test-data/cluster_result06.txt test-data/cluster_result07.txt test-data/cluster_result08.txt test-data/cluster_result09.txt test-data/cluster_result10.txt test-data/cluster_result11.txt test-data/cluster_result12.txt test-data/cluster_result13.txt test-data/cluster_result14.txt test-data/cluster_result15.txt test-data/cluster_result16.txt
diffstat 19 files changed, 1218 insertions(+), 423 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Untitled.ipynb	Fri Jan 01 18:00:23 2016 -0500
@@ -0,0 +1,744 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 29,
+   "metadata": {
+    "collapsed": false
+   },
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "KMeans(copy_x=True, init='k-means++', max_iter=300, n_clusters=8, n_init=10,\n",
+       "    n_jobs=1, precompute_distances='auto', random_state=None, tol=0.0001,\n",
+       "    verbose=0)"
+      ]
+     },
+     "execution_count": 29,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "import sys\n",
+    "import json\n",
+    "import numpy as np\n",
+    "import sklearn.cluster\n",
+    "import pandas\n",
+    "\n",
+    "data = pandas.read_csv(\"/home/bag/projects/code/galaxytools/tools/numeric_clustering/test-data/numeric_values.tabular\", sep='\\t', header=0, index_col=None, parse_dates=True, encoding=None )\n",
+    "my_class = getattr(sklearn.cluster, \"KMeans\")\n",
+    "cluster_object = my_class()\n",
+    "\n",
+    "params = dict()\n",
+    "cluster_object.set_params(**params)\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 32,
+   "metadata": {
+    "collapsed": false
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "[0 0 0 0 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 3 3 3 3 3 1 1 1 1 1 1 1 1 1 1 1 1\n",
+      " 2 2 2 2 2 2 2 2 2 2 2] 48 48\n",
+      "    0\n",
+      "0   0\n",
+      "1   0\n",
+      "2   0\n",
+      "3   0\n",
+      "4   0\n",
+      "5   0\n",
+      "6   0\n",
+      "7   0\n",
+      "8   0\n",
+      "9   0\n",
+      "10  0\n",
+      "11  0\n",
+      "12  3\n",
+      "13  3\n",
+      "14  3\n",
+      "15  3\n",
+      "16  3\n",
+      "17  3\n",
+      "18  3\n",
+      "19  3\n",
+      "20  3\n",
+      "21  3\n",
+      "22  3\n",
+      "23  3\n",
+      "24  3\n",
+      "25  1\n",
+      "26  1\n",
+      "27  1\n",
+      "28  1\n",
+      "29  1\n",
+      "30  1\n",
+      "31  1\n",
+      "32  1\n",
+      "33  1\n",
+      "34  1\n",
+      "35  1\n",
+      "36  1\n",
+      "37  2\n",
+      "38  2\n",
+      "39  2\n",
+      "40  2\n",
+      "41  2\n",
+      "42  2\n",
+      "43  2\n",
+      "44  2\n",
+      "45  2\n",
+      "46  2\n",
+      "47  2\n"
+     ]
+    }
+   ],
+   "source": [
+    "\n",
+    "if  4 >= 4:\n",
+    "    data_matrix = data.values[:, 1-1:1]\n",
+    "    #print data_matrix\n",
+    "else:\n",
+    "    data_matrix = data.values\n",
+    "\n",
+    "prediction = cluster_object.fit_predict( data_matrix )\n",
+    "print prediction, len(prediction), len(data_matrix)\n",
+    "\n",
+    "pred = pandas.DataFrame(prediction)\n",
+    "print pred\n",
+    "\n",
+    "#data[len(data.columns)] = prediction\n",
+    "#data.to_csv(path_or_buf = \"foo.tab\", sep=\"\\t\")\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 34,
+   "metadata": {
+    "collapsed": false
+   },
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n",
+       "<table border=\"1\" class=\"dataframe\">\n",
+       "  <thead>\n",
+       "    <tr style=\"text-align: right;\">\n",
+       "      <th></th>\n",
+       "      <th>0</th>\n",
+       "      <th>-67</th>\n",
+       "      <th>0</th>\n",
+       "      <th>56</th>\n",
+       "      <th>58</th>\n",
+       "    </tr>\n",
+       "  </thead>\n",
+       "  <tbody>\n",
+       "    <tr>\n",
+       "      <th>0 </th>\n",
+       "      <td>NaN</td>\n",
+       "      <td> -76</td>\n",
+       "      <td>  0</td>\n",
+       "      <td>  64</td>\n",
+       "      <td>  44</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>1 </th>\n",
+       "      <td>NaN</td>\n",
+       "      <td> -73</td>\n",
+       "      <td>  0</td>\n",
+       "      <td>  48</td>\n",
+       "      <td>  51</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>2 </th>\n",
+       "      <td>NaN</td>\n",
+       "      <td> -49</td>\n",
+       "      <td>  0</td>\n",
+       "      <td>  65</td>\n",
+       "      <td>  58</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>3 </th>\n",
+       "      <td>NaN</td>\n",
+       "      <td> -49</td>\n",
+       "      <td>  0</td>\n",
+       "      <td>  61</td>\n",
+       "      <td>  43</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>4 </th>\n",
+       "      <td>NaN</td>\n",
+       "      <td> -79</td>\n",
+       "      <td>  0</td>\n",
+       "      <td>  43</td>\n",
+       "      <td>  45</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>5 </th>\n",
+       "      <td>NaN</td>\n",
+       "      <td> -98</td>\n",
+       "      <td>  0</td>\n",
+       "      <td>  60</td>\n",
+       "      <td>  42</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>6 </th>\n",
+       "      <td>NaN</td>\n",
+       "      <td> -59</td>\n",
+       "      <td>  0</td>\n",
+       "      <td>  55</td>\n",
+       "      <td>  50</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>7 </th>\n",
+       "      <td>NaN</td>\n",
+       "      <td> -56</td>\n",
+       "      <td>  0</td>\n",
+       "      <td>  53</td>\n",
+       "      <td>  53</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>8 </th>\n",
+       "      <td>NaN</td>\n",
+       "      <td> -61</td>\n",
+       "      <td>  0</td>\n",
+       "      <td>  44</td>\n",
+       "      <td>  45</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>9 </th>\n",
+       "      <td>NaN</td>\n",
+       "      <td> -84</td>\n",
+       "      <td>  0</td>\n",
+       "      <td>  65</td>\n",
+       "      <td>  43</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>10</th>\n",
+       "      <td>NaN</td>\n",
+       "      <td> -75</td>\n",
+       "      <td>  0</td>\n",
+       "      <td>  52</td>\n",
+       "      <td>  35</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>11</th>\n",
+       "      <td>NaN</td>\n",
+       "      <td> -70</td>\n",
+       "      <td>  0</td>\n",
+       "      <td>  56</td>\n",
+       "      <td>  56</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>12</th>\n",
+       "      <td>NaN</td>\n",
+       "      <td>  43</td>\n",
+       "      <td>  1</td>\n",
+       "      <td>  86</td>\n",
+       "      <td> -61</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>13</th>\n",
+       "      <td>NaN</td>\n",
+       "      <td>  15</td>\n",
+       "      <td>  1</td>\n",
+       "      <td>  93</td>\n",
+       "      <td> -67</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>14</th>\n",
+       "      <td>NaN</td>\n",
+       "      <td>  36</td>\n",
+       "      <td>  1</td>\n",
+       "      <td>  94</td>\n",
+       "      <td> -59</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>15</th>\n",
+       "      <td>NaN</td>\n",
+       "      <td>  62</td>\n",
+       "      <td>  1</td>\n",
+       "      <td>  92</td>\n",
+       "      <td> -50</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>16</th>\n",
+       "      <td>NaN</td>\n",
+       "      <td>  70</td>\n",
+       "      <td>  1</td>\n",
+       "      <td>  91</td>\n",
+       "      <td> -78</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>17</th>\n",
+       "      <td>NaN</td>\n",
+       "      <td>  47</td>\n",
+       "      <td>  1</td>\n",
+       "      <td>  87</td>\n",
+       "      <td> -35</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>18</th>\n",
+       "      <td>NaN</td>\n",
+       "      <td>  52</td>\n",
+       "      <td>  1</td>\n",
+       "      <td>  91</td>\n",
+       "      <td> -56</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>19</th>\n",
+       "      <td>NaN</td>\n",
+       "      <td>  46</td>\n",
+       "      <td>  1</td>\n",
+       "      <td>  81</td>\n",
+       "      <td> -61</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>20</th>\n",
+       "      <td>NaN</td>\n",
+       "      <td>  34</td>\n",
+       "      <td>  1</td>\n",
+       "      <td>  78</td>\n",
+       "      <td> -83</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>21</th>\n",
+       "      <td>NaN</td>\n",
+       "      <td>  45</td>\n",
+       "      <td>  1</td>\n",
+       "      <td>  87</td>\n",
+       "      <td> -50</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>22</th>\n",
+       "      <td>NaN</td>\n",
+       "      <td>  50</td>\n",
+       "      <td>  1</td>\n",
+       "      <td>  73</td>\n",
+       "      <td> -67</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>23</th>\n",
+       "      <td>NaN</td>\n",
+       "      <td>  45</td>\n",
+       "      <td>  1</td>\n",
+       "      <td>  97</td>\n",
+       "      <td> -50</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>24</th>\n",
+       "      <td>NaN</td>\n",
+       "      <td>  45</td>\n",
+       "      <td>  1</td>\n",
+       "      <td> 111</td>\n",
+       "      <td> -61</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>25</th>\n",
+       "      <td>NaN</td>\n",
+       "      <td> -92</td>\n",
+       "      <td>  2</td>\n",
+       "      <td>  23</td>\n",
+       "      <td>-109</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>26</th>\n",
+       "      <td>NaN</td>\n",
+       "      <td> -96</td>\n",
+       "      <td>  2</td>\n",
+       "      <td>  20</td>\n",
+       "      <td> -94</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>27</th>\n",
+       "      <td>NaN</td>\n",
+       "      <td> -88</td>\n",
+       "      <td>  2</td>\n",
+       "      <td>  26</td>\n",
+       "      <td> -85</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>28</th>\n",
+       "      <td>NaN</td>\n",
+       "      <td>-114</td>\n",
+       "      <td>  2</td>\n",
+       "      <td>  33</td>\n",
+       "      <td> -90</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>29</th>\n",
+       "      <td>NaN</td>\n",
+       "      <td>-106</td>\n",
+       "      <td>  2</td>\n",
+       "      <td>   9</td>\n",
+       "      <td> -63</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>...</th>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "      <td>...</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>18</th>\n",
+       "      <td>  3</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>19</th>\n",
+       "      <td>  3</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>20</th>\n",
+       "      <td>  3</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>21</th>\n",
+       "      <td>  3</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>22</th>\n",
+       "      <td>  3</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>23</th>\n",
+       "      <td>  3</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>24</th>\n",
+       "      <td>  3</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>25</th>\n",
+       "      <td>  1</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>26</th>\n",
+       "      <td>  1</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>27</th>\n",
+       "      <td>  1</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>28</th>\n",
+       "      <td>  1</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>29</th>\n",
+       "      <td>  1</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>30</th>\n",
+       "      <td>  1</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>31</th>\n",
+       "      <td>  1</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>32</th>\n",
+       "      <td>  1</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>33</th>\n",
+       "      <td>  1</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>34</th>\n",
+       "      <td>  1</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>35</th>\n",
+       "      <td>  1</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>36</th>\n",
+       "      <td>  1</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>37</th>\n",
+       "      <td>  2</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>38</th>\n",
+       "      <td>  2</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>39</th>\n",
+       "      <td>  2</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>40</th>\n",
+       "      <td>  2</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>41</th>\n",
+       "      <td>  2</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>42</th>\n",
+       "      <td>  2</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>43</th>\n",
+       "      <td>  2</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>44</th>\n",
+       "      <td>  2</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>45</th>\n",
+       "      <td>  2</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>46</th>\n",
+       "      <td>  2</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "    </tr>\n",
+       "    <tr>\n",
+       "      <th>47</th>\n",
+       "      <td>  2</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td>NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "      <td> NaN</td>\n",
+       "    </tr>\n",
+       "  </tbody>\n",
+       "</table>\n",
+       "<p>96 rows × 5 columns</p>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "     0  -67   0   56   58\n",
+       "0  NaN  -76   0   64   44\n",
+       "1  NaN  -73   0   48   51\n",
+       "2  NaN  -49   0   65   58\n",
+       "3  NaN  -49   0   61   43\n",
+       "4  NaN  -79   0   43   45\n",
+       "5  NaN  -98   0   60   42\n",
+       "6  NaN  -59   0   55   50\n",
+       "7  NaN  -56   0   53   53\n",
+       "8  NaN  -61   0   44   45\n",
+       "9  NaN  -84   0   65   43\n",
+       "10 NaN  -75   0   52   35\n",
+       "11 NaN  -70   0   56   56\n",
+       "12 NaN   43   1   86  -61\n",
+       "13 NaN   15   1   93  -67\n",
+       "14 NaN   36   1   94  -59\n",
+       "15 NaN   62   1   92  -50\n",
+       "16 NaN   70   1   91  -78\n",
+       "17 NaN   47   1   87  -35\n",
+       "18 NaN   52   1   91  -56\n",
+       "19 NaN   46   1   81  -61\n",
+       "20 NaN   34   1   78  -83\n",
+       "21 NaN   45   1   87  -50\n",
+       "22 NaN   50   1   73  -67\n",
+       "23 NaN   45   1   97  -50\n",
+       "24 NaN   45   1  111  -61\n",
+       "25 NaN  -92   2   23 -109\n",
+       "26 NaN  -96   2   20  -94\n",
+       "27 NaN  -88   2   26  -85\n",
+       "28 NaN -114   2   33  -90\n",
+       "29 NaN -106   2    9  -63\n",
+       "..  ..  ...  ..  ...  ...\n",
+       "18   3  NaN NaN  NaN  NaN\n",
+       "19   3  NaN NaN  NaN  NaN\n",
+       "20   3  NaN NaN  NaN  NaN\n",
+       "21   3  NaN NaN  NaN  NaN\n",
+       "22   3  NaN NaN  NaN  NaN\n",
+       "23   3  NaN NaN  NaN  NaN\n",
+       "24   3  NaN NaN  NaN  NaN\n",
+       "25   1  NaN NaN  NaN  NaN\n",
+       "26   1  NaN NaN  NaN  NaN\n",
+       "27   1  NaN NaN  NaN  NaN\n",
+       "28   1  NaN NaN  NaN  NaN\n",
+       "29   1  NaN NaN  NaN  NaN\n",
+       "30   1  NaN NaN  NaN  NaN\n",
+       "31   1  NaN NaN  NaN  NaN\n",
+       "32   1  NaN NaN  NaN  NaN\n",
+       "33   1  NaN NaN  NaN  NaN\n",
+       "34   1  NaN NaN  NaN  NaN\n",
+       "35   1  NaN NaN  NaN  NaN\n",
+       "36   1  NaN NaN  NaN  NaN\n",
+       "37   2  NaN NaN  NaN  NaN\n",
+       "38   2  NaN NaN  NaN  NaN\n",
+       "39   2  NaN NaN  NaN  NaN\n",
+       "40   2  NaN NaN  NaN  NaN\n",
+       "41   2  NaN NaN  NaN  NaN\n",
+       "42   2  NaN NaN  NaN  NaN\n",
+       "43   2  NaN NaN  NaN  NaN\n",
+       "44   2  NaN NaN  NaN  NaN\n",
+       "45   2  NaN NaN  NaN  NaN\n",
+       "46   2  NaN NaN  NaN  NaN\n",
+       "47   2  NaN NaN  NaN  NaN\n",
+       "\n",
+       "[96 rows x 5 columns]"
+      ]
+     },
+     "execution_count": 34,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "pandas.concat([data, pred], axis=0)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 2",
+   "language": "python",
+   "name": "python2"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 2
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython2",
+   "version": "2.7.10"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 0
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/foo.tab	Fri Jan 01 18:00:23 2016 -0500
@@ -0,0 +1,49 @@
+	0	58	56	-67	4	5	6	7
+0	0	44	64	-76	7	3	2	0
+1	0	51	48	-73	7	3	2	0
+2	0	58	65	-49	3	3	2	0
+3	0	43	61	-49	3	3	2	0
+4	0	45	43	-79	7	3	2	0
+5	0	42	60	-98	0	3	2	0
+6	0	50	55	-59	3	3	2	0
+7	0	53	53	-56	3	3	2	0
+8	0	45	44	-61	3	3	2	0
+9	0	43	65	-84	0	3	2	0
+10	0	35	52	-75	7	3	2	0
+11	0	56	56	-70	7	3	2	0
+12	1	-61	86	43	6	1	0	2
+13	1	-67	93	15	1	1	0	2
+14	1	-59	94	36	6	1	0	2
+15	1	-50	92	62	2	1	0	2
+16	1	-78	91	70	2	1	0	2
+17	1	-35	87	47	6	1	0	2
+18	1	-56	91	52	6	1	0	2
+19	1	-61	81	46	6	1	0	2
+20	1	-83	78	34	6	1	0	2
+21	1	-50	87	45	6	1	0	2
+22	1	-67	73	50	6	1	0	2
+23	1	-50	97	45	6	1	0	2
+24	1	-61	111	45	6	1	0	2
+25	2	-109	23	-92	0	2	1	1
+26	2	-94	20	-96	0	2	1	1
+27	2	-85	26	-88	0	2	1	1
+28	2	-90	33	-114	5	2	1	1
+29	2	-63	9	-106	5	2	1	1
+30	2	-79	9	-93	0	2	1	1
+31	2	-99	26	-108	5	2	1	1
+32	2	-81	19	-110	5	2	1	1
+33	2	-108	21	-108	5	2	1	1
+34	2	-92	27	-106	5	2	1	1
+35	2	-88	2	-106	5	2	1	1
+36	2	-88	15	-103	5	2	1	1
+37	3	54	-74	4	4	0	3	3
+38	3	42	-92	31	1	0	3	3
+39	3	39	-99	-7	4	0	3	3
+40	3	48	-115	-5	4	0	3	3
+41	3	39	-96	2	4	0	3	3
+42	3	31	-109	9	4	0	3	3
+43	3	33	-96	-8	4	0	3	3
+44	3	23	-102	4	4	0	3	3
+45	3	38	-90	21	1	0	3	3
+46	3	34	-107	1	4	0	3	3
+47	3	35	-78	18	1	0	3	3
--- a/numeric_clustering.xml	Fri Jan 01 13:14:03 2016 -0500
+++ b/numeric_clustering.xml	Fri Jan 01 18:00:23 2016 -0500
@@ -76,7 +76,7 @@
 import sklearn.cluster
 import pandas
 
-data = pandas.read_csv("$infile", sep='\t', header=0, index_col=0, parse_dates=True, encoding=None, tupleize_cols=False )
+data = pandas.read_csv("$infile", sep='\t', header=0, index_col=None, parse_dates=True, encoding=None, tupleize_cols=False )
 my_class = getattr(sklearn.cluster, "$algorithm_options.selected_algorithm")
 cluster_object = my_class()
 
@@ -93,8 +93,9 @@
 data_matrix = data.values
 #end if
 prediction = cluster_object.fit_predict( data_matrix )
-data[len(data.columns)] = prediction
-data.to_csv(path_or_buf = "$outfile", sep="\t")
+prediction_df = pandas.DataFrame(prediction)
+res = pandas.concat([data, prediction_df], axis=1)
+res.to_csv(path_or_buf = "$outfile", sep="\t", index=False)
 ]]>
         </configfile>
     </configfiles>
@@ -298,6 +299,7 @@
             <param name="end_column" value="4" />
             <param name="affinity" value="euclidean"/>
             <param name="linkage" value="average"/>
+            <param name="n_clusters" value="4"/>
             <output name="outfile" file="cluster_result10.txt"/>
         </test>
         <test>
--- a/test-data/cluster_result01.txt	Fri Jan 01 13:14:03 2016 -0500
+++ b/test-data/cluster_result01.txt	Fri Jan 01 18:00:23 2016 -0500
@@ -1,4 +1,4 @@
-0	58	56	-67	3
+0	58	56	-67	0
 0	44	64	-76	0
 0	51	48	-73	0
 0	58	65	-49	0
@@ -24,26 +24,26 @@
 1	-67	73	50	2
 1	-50	97	45	2
 1	-61	111	45	2
-2	-109	23	-92	3
-2	-94	20	-96	3
-2	-85	26	-88	3
-2	-90	33	-114	3
-2	-63	9	-106	3
-2	-79	9	-93	3
-2	-99	26	-108	3
-2	-81	19	-110	3
-2	-108	21	-108	3
-2	-92	27	-106	3
-2	-88	2	-106	3
-2	-88	15	-103	3
-3	54	-74	4	1
-3	42	-92	31	1
-3	39	-99	-7	1
-3	48	-115	-5	1
-3	39	-96	2	1
-3	31	-109	9	1
-3	33	-96	-8	1
-3	23	-102	4	1
-3	38	-90	21	1
-3	34	-107	1	1
-3	35	-78	18	1
+2	-109	23	-92	1
+2	-94	20	-96	1
+2	-85	26	-88	1
+2	-90	33	-114	1
+2	-63	9	-106	1
+2	-79	9	-93	1
+2	-99	26	-108	1
+2	-81	19	-110	1
+2	-108	21	-108	1
+2	-92	27	-106	1
+2	-88	2	-106	1
+2	-88	15	-103	1
+3	54	-74	4	3
+3	42	-92	31	3
+3	39	-99	-7	3
+3	48	-115	-5	3
+3	39	-96	2	3
+3	31	-109	9	3
+3	33	-96	-8	3
+3	23	-102	4	3
+3	38	-90	21	3
+3	34	-107	1	3
+3	35	-78	18	3
--- a/test-data/cluster_result02.txt	Fri Jan 01 13:14:03 2016 -0500
+++ b/test-data/cluster_result02.txt	Fri Jan 01 18:00:23 2016 -0500
@@ -1,49 +1,49 @@
-0	58	56	-67	3
-0	44	64	-76	1
-0	51	48	-73	1
-0	58	65	-49	1
-0	43	61	-49	1
-0	45	43	-79	1
-0	42	60	-98	1
-0	50	55	-59	1
-0	53	53	-56	1
-0	45	44	-61	1
-0	43	65	-84	1
-0	35	52	-75	1
-0	56	56	-70	1
-1	-61	86	43	0
-1	-67	93	15	0
-1	-59	94	36	0
-1	-50	92	62	0
-1	-78	91	70	0
-1	-35	87	47	0
-1	-56	91	52	0
-1	-61	81	46	0
-1	-83	78	34	0
-1	-50	87	45	0
-1	-67	73	50	0
-1	-50	97	45	0
-1	-61	111	45	0
-2	-109	23	-92	2
-2	-94	20	-96	2
-2	-85	26	-88	2
-2	-90	33	-114	2
-2	-63	9	-106	2
-2	-79	9	-93	2
-2	-99	26	-108	2
-2	-81	19	-110	2
-2	-108	21	-108	2
-2	-92	27	-106	2
-2	-88	2	-106	2
-2	-88	15	-103	2
-3	54	-74	4	3
-3	42	-92	31	3
-3	39	-99	-7	3
-3	48	-115	-5	3
-3	39	-96	2	3
-3	31	-109	9	3
-3	33	-96	-8	3
-3	23	-102	4	3
-3	38	-90	21	3
-3	34	-107	1	3
-3	35	-78	18	3
+0	58	56	-67	0
+0	44	64	-76	3
+0	51	48	-73	3
+0	58	65	-49	3
+0	43	61	-49	3
+0	45	43	-79	3
+0	42	60	-98	3
+0	50	55	-59	3
+0	53	53	-56	3
+0	45	44	-61	3
+0	43	65	-84	3
+0	35	52	-75	3
+0	56	56	-70	3
+1	-61	86	43	2
+1	-67	93	15	2
+1	-59	94	36	2
+1	-50	92	62	2
+1	-78	91	70	2
+1	-35	87	47	2
+1	-56	91	52	2
+1	-61	81	46	2
+1	-83	78	34	2
+1	-50	87	45	2
+1	-67	73	50	2
+1	-50	97	45	2
+1	-61	111	45	2
+2	-109	23	-92	0
+2	-94	20	-96	0
+2	-85	26	-88	0
+2	-90	33	-114	0
+2	-63	9	-106	0
+2	-79	9	-93	0
+2	-99	26	-108	0
+2	-81	19	-110	0
+2	-108	21	-108	0
+2	-92	27	-106	0
+2	-88	2	-106	0
+2	-88	15	-103	0
+3	54	-74	4	1
+3	42	-92	31	1
+3	39	-99	-7	1
+3	48	-115	-5	1
+3	39	-96	2	1
+3	31	-109	9	1
+3	33	-96	-8	1
+3	23	-102	4	1
+3	38	-90	21	1
+3	34	-107	1	1
+3	35	-78	18	1
--- a/test-data/cluster_result03.txt	Fri Jan 01 13:14:03 2016 -0500
+++ b/test-data/cluster_result03.txt	Fri Jan 01 18:00:23 2016 -0500
@@ -1,4 +1,4 @@
-0	58	56	-67	3
+0	58	56	-67	0
 0	44	64	-76	-1
 0	51	48	-73	-1
 0	58	65	-49	-1
--- a/test-data/cluster_result04.txt	Fri Jan 01 13:14:03 2016 -0500
+++ b/test-data/cluster_result04.txt	Fri Jan 01 18:00:23 2016 -0500
@@ -1,4 +1,4 @@
-0	58	56	-67	3
+0	58	56	-67	0
 0	44	64	-76	1
 0	51	48	-73	1
 0	58	65	-49	1
--- a/test-data/cluster_result05.txt	Fri Jan 01 13:14:03 2016 -0500
+++ b/test-data/cluster_result05.txt	Fri Jan 01 18:00:23 2016 -0500
@@ -1,41 +1,41 @@
-0	58	56	-67	3
-0	44	64	-76	6
-0	51	48	-73	6
+0	58	56	-67	0
+0	44	64	-76	2
+0	51	48	-73	2
 0	58	65	-49	5
 0	43	61	-49	5
-0	45	43	-79	6
-0	42	60	-98	6
+0	45	43	-79	2
+0	42	60	-98	2
 0	50	55	-59	5
 0	53	53	-56	5
 0	45	44	-61	5
-0	43	65	-84	6
-0	35	52	-75	6
-0	56	56	-70	6
-1	-61	86	43	3
-1	-67	93	15	7
-1	-59	94	36	3
-1	-50	92	62	2
-1	-78	91	70	2
-1	-35	87	47	3
-1	-56	91	52	3
-1	-61	81	46	3
-1	-83	78	34	3
-1	-50	87	45	3
-1	-67	73	50	3
-1	-50	97	45	3
-1	-61	111	45	2
-2	-109	23	-92	0
-2	-94	20	-96	0
-2	-85	26	-88	0
-2	-90	33	-114	0
-2	-63	9	-106	0
-2	-79	9	-93	0
-2	-99	26	-108	0
-2	-81	19	-110	0
-2	-108	21	-108	0
-2	-92	27	-106	0
-2	-88	2	-106	0
-2	-88	15	-103	0
+0	43	65	-84	2
+0	35	52	-75	2
+0	56	56	-70	2
+1	-61	86	43	0
+1	-67	93	15	0
+1	-59	94	36	6
+1	-50	92	62	6
+1	-78	91	70	0
+1	-35	87	47	6
+1	-56	91	52	6
+1	-61	81	46	0
+1	-83	78	34	0
+1	-50	87	45	6
+1	-67	73	50	0
+1	-50	97	45	6
+1	-61	111	45	6
+2	-109	23	-92	7
+2	-94	20	-96	3
+2	-85	26	-88	3
+2	-90	33	-114	7
+2	-63	9	-106	3
+2	-79	9	-93	3
+2	-99	26	-108	7
+2	-81	19	-110	3
+2	-108	21	-108	7
+2	-92	27	-106	7
+2	-88	2	-106	3
+2	-88	15	-103	3
 3	54	-74	4	1
 3	42	-92	31	1
 3	39	-99	-7	4
--- a/test-data/cluster_result06.txt	Fri Jan 01 13:14:03 2016 -0500
+++ b/test-data/cluster_result06.txt	Fri Jan 01 18:00:23 2016 -0500
@@ -1,4 +1,4 @@
-0	58	56	-67	3
+0	58	56	-67	0
 0	44	64	-76	0
 0	51	48	-73	0
 0	58	65	-49	0
--- a/test-data/cluster_result07.txt	Fri Jan 01 13:14:03 2016 -0500
+++ b/test-data/cluster_result07.txt	Fri Jan 01 18:00:23 2016 -0500
@@ -1,4 +1,4 @@
-0	58	56	-67	3
+0	58	56	-67	0
 0	44	64	-76	0
 0	51	48	-73	0
 0	58	65	-49	0
@@ -24,26 +24,26 @@
 1	-67	73	50	1
 1	-50	97	45	1
 1	-61	111	45	1
-2	-109	23	-92	0
-2	-94	20	-96	0
-2	-85	26	-88	0
-2	-90	33	-114	0
-2	-63	9	-106	0
-2	-79	9	-93	0
-2	-99	26	-108	0
-2	-81	19	-110	0
-2	-108	21	-108	0
-2	-92	27	-106	0
-2	-88	2	-106	0
-2	-88	15	-103	0
-3	54	-74	4	2
-3	42	-92	31	2
-3	39	-99	-7	2
-3	48	-115	-5	2
-3	39	-96	2	2
-3	31	-109	9	2
-3	33	-96	-8	2
-3	23	-102	4	2
-3	38	-90	21	2
-3	34	-107	1	2
-3	35	-78	18	2
+2	-109	23	-92	2
+2	-94	20	-96	2
+2	-85	26	-88	2
+2	-90	33	-114	2
+2	-63	9	-106	2
+2	-79	9	-93	2
+2	-99	26	-108	2
+2	-81	19	-110	2
+2	-108	21	-108	2
+2	-92	27	-106	2
+2	-88	2	-106	2
+2	-88	15	-103	2
+3	54	-74	4	3
+3	42	-92	31	3
+3	39	-99	-7	3
+3	48	-115	-5	3
+3	39	-96	2	3
+3	31	-109	9	3
+3	33	-96	-8	3
+3	23	-102	4	3
+3	38	-90	21	3
+3	34	-107	1	3
+3	35	-78	18	3
--- a/test-data/cluster_result08.txt	Fri Jan 01 13:14:03 2016 -0500
+++ b/test-data/cluster_result08.txt	Fri Jan 01 18:00:23 2016 -0500
@@ -1,4 +1,4 @@
-0	58	56	-67	3
+0	58	56	-67	0
 0	44	64	-76	0
 0	51	48	-73	0
 0	58	65	-49	0
@@ -11,19 +11,19 @@
 0	43	65	-84	0
 0	35	52	-75	0
 0	56	56	-70	0
-1	-61	86	43	1
-1	-67	93	15	1
-1	-59	94	36	1
-1	-50	92	62	1
-1	-78	91	70	1
-1	-35	87	47	1
-1	-56	91	52	1
-1	-61	81	46	1
-1	-83	78	34	1
-1	-50	87	45	1
-1	-67	73	50	1
-1	-50	97	45	1
-1	-61	111	45	1
+1	-61	86	43	0
+1	-67	93	15	0
+1	-59	94	36	0
+1	-50	92	62	0
+1	-78	91	70	0
+1	-35	87	47	0
+1	-56	91	52	0
+1	-61	81	46	0
+1	-83	78	34	0
+1	-50	87	45	0
+1	-67	73	50	0
+1	-50	97	45	0
+1	-61	111	45	0
 2	-109	23	-92	0
 2	-94	20	-96	0
 2	-85	26	-88	0
@@ -36,14 +36,14 @@
 2	-92	27	-106	0
 2	-88	2	-106	0
 2	-88	15	-103	0
-3	54	-74	4	2
-3	42	-92	31	2
-3	39	-99	-7	2
-3	48	-115	-5	2
-3	39	-96	2	2
-3	31	-109	9	2
-3	33	-96	-8	2
-3	23	-102	4	2
-3	38	-90	21	2
-3	34	-107	1	2
-3	35	-78	18	2
+3	54	-74	4	1
+3	42	-92	31	1
+3	39	-99	-7	1
+3	48	-115	-5	1
+3	39	-96	2	1
+3	31	-109	9	1
+3	33	-96	-8	1
+3	23	-102	4	1
+3	38	-90	21	1
+3	34	-107	1	1
+3	35	-78	18	1
--- a/test-data/cluster_result09.txt	Fri Jan 01 13:14:03 2016 -0500
+++ b/test-data/cluster_result09.txt	Fri Jan 01 18:00:23 2016 -0500
@@ -1,4 +1,4 @@
-0	58	56	-67	3
+0	58	56	-67	0
 0	44	64	-76	0
 0	51	48	-73	0
 0	58	65	-49	0
@@ -11,19 +11,19 @@
 0	43	65	-84	0
 0	35	52	-75	0
 0	56	56	-70	0
-1	-61	86	43	1
-1	-67	93	15	1
-1	-59	94	36	1
-1	-50	92	62	1
-1	-78	91	70	1
-1	-35	87	47	1
-1	-56	91	52	1
-1	-61	81	46	1
-1	-83	78	34	1
-1	-50	87	45	1
-1	-67	73	50	1
-1	-50	97	45	1
-1	-61	111	45	1
+1	-61	86	43	0
+1	-67	93	15	0
+1	-59	94	36	0
+1	-50	92	62	0
+1	-78	91	70	0
+1	-35	87	47	0
+1	-56	91	52	0
+1	-61	81	46	0
+1	-83	78	34	0
+1	-50	87	45	0
+1	-67	73	50	0
+1	-50	97	45	0
+1	-61	111	45	0
 2	-109	23	-92	0
 2	-94	20	-96	0
 2	-85	26	-88	0
@@ -36,14 +36,14 @@
 2	-92	27	-106	0
 2	-88	2	-106	0
 2	-88	15	-103	0
-3	54	-74	4	2
-3	42	-92	31	2
-3	39	-99	-7	2
-3	48	-115	-5	2
-3	39	-96	2	2
-3	31	-109	9	2
-3	33	-96	-8	2
-3	23	-102	4	2
-3	38	-90	21	2
-3	34	-107	1	2
-3	35	-78	18	2
+3	54	-74	4	1
+3	42	-92	31	1
+3	39	-99	-7	1
+3	48	-115	-5	1
+3	39	-96	2	1
+3	31	-109	9	1
+3	33	-96	-8	1
+3	23	-102	4	1
+3	38	-90	21	1
+3	34	-107	1	1
+3	35	-78	18	1
--- a/test-data/cluster_result10.txt	Fri Jan 01 13:14:03 2016 -0500
+++ b/test-data/cluster_result10.txt	Fri Jan 01 18:00:23 2016 -0500
@@ -1,49 +1,49 @@
-0	58	56	-67	3
-0	44	64	-76	0
-0	51	48	-73	0
-0	58	65	-49	0
-0	43	61	-49	0
-0	45	43	-79	0
-0	42	60	-98	5
-0	50	55	-59	0
-0	53	53	-56	0
-0	45	44	-61	0
-0	43	65	-84	0
-0	35	52	-75	0
-0	56	56	-70	0
-1	-61	86	43	1
-1	-67	93	15	4
-1	-59	94	36	1
-1	-50	92	62	1
-1	-78	91	70	1
-1	-35	87	47	1
-1	-56	91	52	1
-1	-61	81	46	1
-1	-83	78	34	1
-1	-50	87	45	1
-1	-67	73	50	1
-1	-50	97	45	1
-1	-61	111	45	7
-2	-109	23	-92	3
-2	-94	20	-96	3
-2	-85	26	-88	3
-2	-90	33	-114	3
-2	-63	9	-106	3
-2	-79	9	-93	3
-2	-99	26	-108	3
-2	-81	19	-110	3
-2	-108	21	-108	3
-2	-92	27	-106	3
-2	-88	2	-106	3
-2	-88	15	-103	3
-3	54	-74	4	2
-3	42	-92	31	2
-3	39	-99	-7	6
-3	48	-115	-5	6
-3	39	-96	2	6
-3	31	-109	9	6
-3	33	-96	-8	6
-3	23	-102	4	6
-3	38	-90	21	2
-3	34	-107	1	6
-3	35	-78	18	2
+0	58	56	-67	0
+0	44	64	-76	3
+0	51	48	-73	3
+0	58	65	-49	3
+0	43	61	-49	3
+0	45	43	-79	3
+0	42	60	-98	3
+0	50	55	-59	3
+0	53	53	-56	3
+0	45	44	-61	3
+0	43	65	-84	3
+0	35	52	-75	3
+0	56	56	-70	3
+1	-61	86	43	0
+1	-67	93	15	0
+1	-59	94	36	0
+1	-50	92	62	0
+1	-78	91	70	0
+1	-35	87	47	0
+1	-56	91	52	0
+1	-61	81	46	0
+1	-83	78	34	0
+1	-50	87	45	0
+1	-67	73	50	0
+1	-50	97	45	0
+1	-61	111	45	0
+2	-109	23	-92	2
+2	-94	20	-96	2
+2	-85	26	-88	2
+2	-90	33	-114	2
+2	-63	9	-106	2
+2	-79	9	-93	2
+2	-99	26	-108	2
+2	-81	19	-110	2
+2	-108	21	-108	2
+2	-92	27	-106	2
+2	-88	2	-106	2
+2	-88	15	-103	2
+3	54	-74	4	1
+3	42	-92	31	1
+3	39	-99	-7	1
+3	48	-115	-5	1
+3	39	-96	2	1
+3	31	-109	9	1
+3	33	-96	-8	1
+3	23	-102	4	1
+3	38	-90	21	1
+3	34	-107	1	1
+3	35	-78	18	1
--- a/test-data/cluster_result11.txt	Fri Jan 01 13:14:03 2016 -0500
+++ b/test-data/cluster_result11.txt	Fri Jan 01 18:00:23 2016 -0500
@@ -1,4 +1,4 @@
-0	58	56	-67	3
+0	58	56	-67	0
 0	44	64	-76	2
 0	51	48	-73	2
 0	58	65	-49	2
@@ -24,26 +24,26 @@
 1	-67	73	50	0
 1	-50	97	45	0
 1	-61	111	45	0
-2	-109	23	-92	3
-2	-94	20	-96	3
-2	-85	26	-88	3
-2	-90	33	-114	3
-2	-63	9	-106	3
-2	-79	9	-93	3
-2	-99	26	-108	3
-2	-81	19	-110	3
-2	-108	21	-108	3
-2	-92	27	-106	3
-2	-88	2	-106	3
-2	-88	15	-103	3
-3	54	-74	4	1
-3	42	-92	31	1
-3	39	-99	-7	1
-3	48	-115	-5	1
-3	39	-96	2	1
-3	31	-109	9	1
-3	33	-96	-8	1
-3	23	-102	4	1
-3	38	-90	21	1
-3	34	-107	1	1
-3	35	-78	18	1
+2	-109	23	-92	1
+2	-94	20	-96	1
+2	-85	26	-88	1
+2	-90	33	-114	1
+2	-63	9	-106	1
+2	-79	9	-93	1
+2	-99	26	-108	1
+2	-81	19	-110	1
+2	-108	21	-108	1
+2	-92	27	-106	1
+2	-88	2	-106	1
+2	-88	15	-103	1
+3	54	-74	4	3
+3	42	-92	31	3
+3	39	-99	-7	3
+3	48	-115	-5	3
+3	39	-96	2	3
+3	31	-109	9	3
+3	33	-96	-8	3
+3	23	-102	4	3
+3	38	-90	21	3
+3	34	-107	1	3
+3	35	-78	18	3
--- a/test-data/cluster_result12.txt	Fri Jan 01 13:14:03 2016 -0500
+++ b/test-data/cluster_result12.txt	Fri Jan 01 18:00:23 2016 -0500
@@ -1,49 +1,49 @@
-0	58	56	-67	3
+0	58	56	-67	0
 0	44	64	-76	3
-0	51	48	-73	0
-0	58	65	-49	3
-0	43	61	-49	3
-0	45	43	-79	0
-0	42	60	-98	3
-0	50	55	-59	3
-0	53	53	-56	3
+0	51	48	-73	2
+0	58	65	-49	2
+0	43	61	-49	2
+0	45	43	-79	2
+0	42	60	-98	2
+0	50	55	-59	2
+0	53	53	-56	2
 0	45	44	-61	0
 0	43	65	-84	3
 0	35	52	-75	0
-0	56	56	-70	0
+0	56	56	-70	2
 1	-61	86	43	1
-1	-67	93	15	3
-1	-59	94	36	1
-1	-50	92	62	1
-1	-78	91	70	1
-1	-35	87	47	1
-1	-56	91	52	1
+1	-67	93	15	2
+1	-59	94	36	2
+1	-50	92	62	2
+1	-78	91	70	2
+1	-35	87	47	2
+1	-56	91	52	2
 1	-61	81	46	1
-1	-83	78	34	3
-1	-50	87	45	1
-1	-67	73	50	3
-1	-50	97	45	1
-1	-61	111	45	3
-2	-109	23	-92	1
+1	-83	78	34	2
+1	-50	87	45	2
+1	-67	73	50	2
+1	-50	97	45	2
+1	-61	111	45	2
+2	-109	23	-92	0
 2	-94	20	-96	1
-2	-85	26	-88	1
-2	-90	33	-114	3
+2	-85	26	-88	2
+2	-90	33	-114	1
 2	-63	9	-106	0
-2	-79	9	-93	3
+2	-79	9	-93	2
 2	-99	26	-108	1
 2	-81	19	-110	1
 2	-108	21	-108	1
 2	-92	27	-106	1
 2	-88	2	-106	0
-2	-88	15	-103	0
-3	54	-74	4	3
-3	42	-92	31	0
-3	39	-99	-7	2
+2	-88	15	-103	1
+3	54	-74	4	2
+3	42	-92	31	1
+3	39	-99	-7	1
 3	48	-115	-5	0
-3	39	-96	2	0
-3	31	-109	9	0
-3	33	-96	-8	2
+3	39	-96	2	1
+3	31	-109	9	1
+3	33	-96	-8	1
 3	23	-102	4	0
-3	38	-90	21	0
-3	34	-107	1	0
-3	35	-78	18	0
+3	38	-90	21	1
+3	34	-107	1	1
+3	35	-78	18	1
--- a/test-data/cluster_result13.txt	Fri Jan 01 13:14:03 2016 -0500
+++ b/test-data/cluster_result13.txt	Fri Jan 01 18:00:23 2016 -0500
@@ -1,49 +1,49 @@
-0	58	56	-67	3
-0	44	64	-76	3
-0	51	48	-73	6
-0	58	65	-49	0
-0	43	61	-49	0
-0	45	43	-79	6
-0	42	60	-98	1
-0	50	55	-59	7
-0	53	53	-56	7
-0	45	44	-61	6
-0	43	65	-84	3
-0	35	52	-75	6
-0	56	56	-70	6
-1	-61	86	43	2
-1	-67	93	15	1
+0	58	56	-67	0
+0	44	64	-76	6
+0	51	48	-73	2
+0	58	65	-49	7
+0	43	61	-49	7
+0	45	43	-79	2
+0	42	60	-98	7
+0	50	55	-59	6
+0	53	53	-56	6
+0	45	44	-61	0
+0	43	65	-84	6
+0	35	52	-75	0
+0	56	56	-70	2
+1	-61	86	43	3
+1	-67	93	15	7
 1	-59	94	36	7
-1	-50	92	62	1
-1	-78	91	70	1
-1	-35	87	47	2
-1	-56	91	52	2
-1	-61	81	46	2
-1	-83	78	34	1
-1	-50	87	45	2
-1	-67	73	50	2
+1	-50	92	62	7
+1	-78	91	70	7
+1	-35	87	47	7
+1	-56	91	52	7
+1	-61	81	46	3
+1	-83	78	34	7
+1	-50	87	45	7
+1	-67	73	50	7
 1	-50	97	45	7
-1	-61	111	45	1
-2	-109	23	-92	5
+1	-61	111	45	7
+2	-109	23	-92	0
 2	-94	20	-96	5
-2	-85	26	-88	5
-2	-90	33	-114	1
-2	-63	9	-106	7
-2	-79	9	-93	1
-2	-99	26	-108	5
+2	-85	26	-88	7
+2	-90	33	-114	6
+2	-63	9	-106	0
+2	-79	9	-93	7
+2	-99	26	-108	6
 2	-81	19	-110	5
-2	-108	21	-108	5
-2	-92	27	-106	5
-2	-88	2	-106	7
-2	-88	15	-103	7
-3	54	-74	4	2
-3	42	-92	31	7
-3	39	-99	-7	4
-3	48	-115	-5	7
-3	39	-96	2	7
-3	31	-109	9	7
-3	33	-96	-8	4
-3	23	-102	4	7
-3	38	-90	21	7
-3	34	-107	1	7
-3	35	-78	18	7
+2	-108	21	-108	6
+2	-92	27	-106	6
+2	-88	2	-106	0
+2	-88	15	-103	5
+3	54	-74	4	7
+3	42	-92	31	4
+3	39	-99	-7	3
+3	48	-115	-5	0
+3	39	-96	2	3
+3	31	-109	9	1
+3	33	-96	-8	3
+3	23	-102	4	0
+3	38	-90	21	4
+3	34	-107	1	1
+3	35	-78	18	4
--- a/test-data/cluster_result14.txt	Fri Jan 01 13:14:03 2016 -0500
+++ b/test-data/cluster_result14.txt	Fri Jan 01 18:00:23 2016 -0500
@@ -1,49 +1,49 @@
-0	58	56	-67	3
-0	44	64	-76	3
-0	51	48	-73	6
+0	58	56	-67	0
+0	44	64	-76	2
+0	51	48	-73	2
 0	58	65	-49	5
 0	43	61	-49	5
-0	45	43	-79	6
-0	42	60	-98	3
+0	45	43	-79	2
+0	42	60	-98	2
 0	50	55	-59	5
 0	53	53	-56	5
-0	45	44	-61	6
-0	43	65	-84	3
-0	35	52	-75	6
-0	56	56	-70	6
-1	-61	86	43	0
-1	-67	93	15	0
-1	-59	94	36	0
-1	-50	92	62	7
+0	45	44	-61	2
+0	43	65	-84	2
+0	35	52	-75	2
+0	56	56	-70	2
+1	-61	86	43	1
+1	-67	93	15	1
+1	-59	94	36	1
+1	-50	92	62	1
 1	-78	91	70	7
-1	-35	87	47	0
-1	-56	91	52	0
-1	-61	81	46	0
-1	-83	78	34	0
-1	-50	87	45	0
-1	-67	73	50	0
-1	-50	97	45	0
-1	-61	111	45	0
-2	-109	23	-92	1
-2	-94	20	-96	1
-2	-85	26	-88	1
-2	-90	33	-114	1
-2	-63	9	-106	1
-2	-79	9	-93	1
-2	-99	26	-108	1
-2	-81	19	-110	1
-2	-108	21	-108	1
-2	-92	27	-106	1
-2	-88	2	-106	1
-2	-88	15	-103	1
+1	-35	87	47	1
+1	-56	91	52	1
+1	-61	81	46	7
+1	-83	78	34	7
+1	-50	87	45	1
+1	-67	73	50	7
+1	-50	97	45	1
+1	-61	111	45	1
+2	-109	23	-92	6
+2	-94	20	-96	6
+2	-85	26	-88	6
+2	-90	33	-114	6
+2	-63	9	-106	3
+2	-79	9	-93	3
+2	-99	26	-108	6
+2	-81	19	-110	6
+2	-108	21	-108	6
+2	-92	27	-106	6
+2	-88	2	-106	3
+2	-88	15	-103	6
 3	54	-74	4	4
 3	42	-92	31	4
-3	39	-99	-7	2
-3	48	-115	-5	2
-3	39	-96	2	2
-3	31	-109	9	2
-3	33	-96	-8	2
-3	23	-102	4	2
+3	39	-99	-7	0
+3	48	-115	-5	0
+3	39	-96	2	0
+3	31	-109	9	0
+3	33	-96	-8	0
+3	23	-102	4	0
 3	38	-90	21	4
-3	34	-107	1	2
+3	34	-107	1	0
 3	35	-78	18	4
--- a/test-data/cluster_result15.txt	Fri Jan 01 13:14:03 2016 -0500
+++ b/test-data/cluster_result15.txt	Fri Jan 01 18:00:23 2016 -0500
@@ -1,4 +1,4 @@
-0	58	56	-67	3
+0	58	56	-67	0
 0	44	64	-76	1
 0	51	48	-73	1
 0	58	65	-49	1
--- a/test-data/cluster_result16.txt	Fri Jan 01 13:14:03 2016 -0500
+++ b/test-data/cluster_result16.txt	Fri Jan 01 18:00:23 2016 -0500
@@ -1,49 +1,49 @@
-0	58	56	-67	3
-0	44	64	-76	1
-0	51	48	-73	1
-0	58	65	-49	1
-0	43	61	-49	1
-0	45	43	-79	1
-0	42	60	-98	1
-0	50	55	-59	1
-0	53	53	-56	1
-0	45	44	-61	1
-0	43	65	-84	1
-0	35	52	-75	3
-0	56	56	-70	1
-1	-61	86	43	0
-1	-67	93	15	0
-1	-59	94	36	0
-1	-50	92	62	0
+0	58	56	-67	0
+0	44	64	-76	0
+0	51	48	-73	0
+0	58	65	-49	0
+0	43	61	-49	0
+0	45	43	-79	0
+0	42	60	-98	0
+0	50	55	-59	0
+0	53	53	-56	0
+0	45	44	-61	0
+0	43	65	-84	0
+0	35	52	-75	0
+0	56	56	-70	0
+1	-61	86	43	2
+1	-67	93	15	2
+1	-59	94	36	2
+1	-50	92	62	2
 1	-78	91	70	2
-1	-35	87	47	0
-1	-56	91	52	0
-1	-61	81	46	0
+1	-35	87	47	2
+1	-56	91	52	2
+1	-61	81	46	2
 1	-83	78	34	2
-1	-50	87	45	0
-1	-67	73	50	0
-1	-50	97	45	0
-1	-61	111	45	0
-2	-109	23	-92	2
-2	-94	20	-96	2
-2	-85	26	-88	2
-2	-90	33	-114	2
-2	-63	9	-106	0
-2	-79	9	-93	2
-2	-99	26	-108	2
-2	-81	19	-110	2
-2	-108	21	-108	2
-2	-92	27	-106	2
-2	-88	2	-106	2
-2	-88	15	-103	2
+1	-50	87	45	2
+1	-67	73	50	2
+1	-50	97	45	2
+1	-61	111	45	2
+2	-109	23	-92	3
+2	-94	20	-96	3
+2	-85	26	-88	3
+2	-90	33	-114	3
+2	-63	9	-106	3
+2	-79	9	-93	3
+2	-99	26	-108	3
+2	-81	19	-110	3
+2	-108	21	-108	3
+2	-92	27	-106	3
+2	-88	2	-106	3
+2	-88	15	-103	3
 3	54	-74	4	1
 3	42	-92	31	1
-3	39	-99	-7	3
+3	39	-99	-7	1
 3	48	-115	-5	1
-3	39	-96	2	3
-3	31	-109	9	3
-3	33	-96	-8	3
-3	23	-102	4	3
-3	38	-90	21	3
-3	34	-107	1	3
-3	35	-78	18	3
+3	39	-96	2	1
+3	31	-109	9	1
+3	33	-96	-8	1
+3	23	-102	4	1
+3	38	-90	21	1
+3	34	-107	1	1
+3	35	-78	18	1