Repository: Steinbeck-Lab/ChemIcal-DatasEt-comparatoR (language: python)

Issue:
Dev kohulan
Readme modified according to @JonasSchaub on issue #14
AttributeError in chemical_space_visualization from _t_sne.py
When plotting the chemical space visualization with tsne as dimension reduction method in a notebook, an AttributeError is raised from sklearn\manifold\_t_sne.py. It says "AttributeError: 'list' object has no attribute 'shape'". For the other dimension reduction methods the chemical space visualization works well. Any ideas what the problem is?
AttributeError in chemical_space_visualization from _t_sne.py
When plotting the chemical space visualization with tsne as dimension reduction method in a notebook, an AttributeError is raised from sklearn\manifold\_t_sne.py. It says "AttributeError: 'list' object has no attribute 'shape'". For the other dimension reduction methods the chemical space visualization works well. Any ideas what the problem is?
AttributeError in chemical_space_visualization from _t_sne.py
When plotting the chemical space visualization with tsne as dimension reduction method in a notebook, an AttributeError is raised from sklearn\manifold\_t_sne.py. It says "AttributeError: 'list' object has no attribute 'shape'". For the other dimension reduction methods the chemical space visualization works well. Any ideas what the problem is?
AttributeError in chemical_space_visualization from _t_sne.py
When plotting the chemical space visualization with tsne as dimension reduction method in a notebook, an AttributeError is raised from sklearn\manifold\_t_sne.py. It says "AttributeError: 'list' object has no attribute 'shape'". For the other dimension reduction methods the chemical space visualization works well. Any ideas what the problem is?
AttributeError in chemical_space_visualization from _t_sne.py
When plotting the chemical space visualization with tsne as dimension reduction method in a notebook, an AttributeError is raised from sklearn\manifold\_t_sne.py. It says "AttributeError: 'list' object has no attribute 'shape'". For the other dimension reduction methods the chemical space visualization works well. Any ideas what the problem is?


Discussion / hints:

Sorry for the late reply.
I cannot replicate the problem. Are we talking about this line in the notebook?
`cider.chemical_space_visualization(testdict, dimension_reduction = 'tsne', interactive = False, fp_bits = 1024, fp_radius = 2)`
I am getting the following plot: 
![image](https://user-images.githubusercontent.com/59618901/188199053-7b356982-c3b2-4f6b-a8ce-e8e5b4ff1138.png)
@JonasSchaub @Kohulan, can you reproduce the problem, or have I done something weird with my environment?


#### The error message:
* "AttributeError: 'list' object has no attribute 'shape'" indicates that the method is expecting a numpy array and is getting a list. 
* For reproduction:
    ```
    import numpy as np
    test_array = np.array([[1,2,3],[4,5,6]])
    test_array.shape
    >> (2, 3)
    ```
* A list in Python does have the *shape* attribute: 
    ```
    test_list = [[1,2,3],[4,5,6]]
    test_list.shape
    >> AttributeError: 'list' object has no attribute 'shape'
    ```
The method is expecting an array and is getting a list. That causes the error.
I also tried to reproduce the problem (on the latest commit of dev-Hannah, https://github.com/hannbus/ChemIcal-DatasEt-comparatoR/commit/d339471dabaeffc33b0469173ef90538e1386d85) but it worked fine for me (same as Otto).

@hannbus , maybe a "clean re-install" of your conda environment could help? Or maybe Otto and I have to do that.
I created a complete new conda environment and installed everything anew. But I still get the same error when trying to run the cell in the notebook. Do you have any ideas what else to do?
Ok, I updated conda, cloned the repo anew, created a new environment as specified in the readme, and NOW I also get the error :D

the line ``cider.chemical_space_visualization(testdict, dimension_reduction = 'tsne', interactive = False, fp_bits = 1024, fp_radius = 2)`` in the workflow notebook leads to the following error:
````
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In [38], line 1
----> 1 cider.chemical_space_visualization(testdict, dimension_reduction = 'tsne', interactive = False, fp_bits = 1024, fp_radius = 2)

File ~\Anaconda\Anaconda3\envs\cider\lib\site-packages\CIDER\cider.py:1194, in ChemicalDatasetComparator.chemical_space_visualization(self, all_dicts, fp_radius, fp_bits, dimension_reduction, interactive)
   1192     chem_space.pca()  # n_components, copy, whiten, svd_solver ...
   1193 elif dimension_reduction == "tsne":
-> 1194     chem_space.tsne()  # n_components, perplexity, learning_rate, n_iter, init, random_state ...
   1195 elif dimension_reduction == "umap":
   1196     chem_space.umap()  # n_neighbors, min_dist, pca, random_state ...

File ~\Anaconda\Anaconda3\envs\cider\lib\site-packages\chemplot\chemplot.py:260, in Plotter.tsne(self, perplexity, pca, random_state, **kwargs)
    258 # Embed the data in two dimensions
    259 self.tsne_fit = TSNE(n_components=2, perplexity=perplexity, random_state=random_state, **kwargs)
--> 260 ecfp_tsne_embedding = self.tsne_fit.fit_transform(self.__data)
    261 # Create a dataframe containinting the first 2 TSNE components of ECFP 
    262 self.__df_2_components = pd.DataFrame(data = ecfp_tsne_embedding
    263      , columns = ['t-SNE-1', 't-SNE-2'])

File ~\Anaconda\Anaconda3\envs\cider\lib\site-packages\sklearn\manifold\_t_sne.py:1122, in TSNE.fit_transform(self, X, y)
   1102 def fit_transform(self, X, y=None):
   1103     """Fit X into an embedded space and return that transformed output.
   1104 
   1105     Parameters
   (...)
   1120         Embedding of the training data in low-dimensional space.
   1121     """
-> 1122     self._check_params_vs_input(X)
   1123     embedding = self._fit(X)
   1124     self.embedding_ = embedding

File ~\Anaconda\Anaconda3\envs\cider\lib\site-packages\sklearn\manifold\_t_sne.py:792, in TSNE._check_params_vs_input(self, X)
    791 def _check_params_vs_input(self, X):
--> 792     if self.perplexity >= X.shape[0]:
    793         raise ValueError("perplexity must be less than n_samples")

AttributeError: 'list' object has no attribute 'shape'
````
Sadly, this does not bring us closer to solving this issue.

@Kohulan and @OBrink if you do not get this error, could you maybe check which dependencies are different in your environment?

This is mine:
````
(cider) C:\Users\jonas>conda list
# packages in environment at C:\Users\jonas\Anaconda\Anaconda3\envs\cider:
#
# Name                    Version                   Build  Channel
argon2-cffi               21.3.0                   pypi_0    pypi
argon2-cffi-bindings      21.2.0                   pypi_0    pypi
asttokens                 2.0.8                    pypi_0    pypi
attrs                     22.1.0                   pypi_0    pypi
backcall                  0.2.0                    pypi_0    pypi
beautifulsoup4            4.11.1                   pypi_0    pypi
bleach                    5.0.1                    pypi_0    pypi
bokeh                     2.4.3                    pypi_0    pypi
bzip2                     1.0.8                he774522_0
ca-certificates           2022.07.19           haa95532_0
certifi                   2022.6.15       py310haa95532_0
cffi                      1.15.1                   pypi_0    pypi
chemplot                  1.2.0                    pypi_0    pypi
cider-chem                0.0.1.dev0               pypi_0    pypi
colorama                  0.4.5                    pypi_0    pypi
cycler                    0.11.0                   pypi_0    pypi
debugpy                   1.6.3                    pypi_0    pypi
decorator                 5.1.1                    pypi_0    pypi
defusedxml                0.7.1                    pypi_0    pypi
entrypoints               0.4                      pypi_0    pypi
executing                 1.0.0                    pypi_0    pypi
fastjsonschema            2.16.1                   pypi_0    pypi
fonttools                 4.37.1                   pypi_0    pypi
fpdf                      1.7.2                    pypi_0    pypi
iniconfig                 1.1.1                    pypi_0    pypi
ipykernel                 6.15.3                   pypi_0    pypi
ipython                   8.5.0                    pypi_0    pypi
ipython-genutils          0.2.0                    pypi_0    pypi
jedi                      0.18.1                   pypi_0    pypi
jinja2                    3.1.2                    pypi_0    pypi
joblib                    1.1.0                    pypi_0    pypi
jsonschema                4.16.0                   pypi_0    pypi
jupyter-client            7.3.5                    pypi_0    pypi
jupyter-core              4.11.1                   pypi_0    pypi
jupyterlab-pygments       0.2.2                    pypi_0    pypi
kiwisolver                1.4.4                    pypi_0    pypi
libffi                    3.4.2                hd77b12b_4
llvmlite                  0.39.1                   pypi_0    pypi
lxml                      4.9.1                    pypi_0    pypi
markupsafe                2.1.1                    pypi_0    pypi
matplotlib                3.5.1                    pypi_0    pypi
matplotlib-inline         0.1.6                    pypi_0    pypi
matplotlib-venn           0.11.6                   pypi_0    pypi
mistune                   2.0.4                    pypi_0    pypi
mordred                   1.2.0                    pypi_0    pypi
nbclient                  0.6.8                    pypi_0    pypi
nbconvert                 7.0.0                    pypi_0    pypi
nbformat                  5.5.0                    pypi_0    pypi
nest-asyncio              1.5.5                    pypi_0    pypi
networkx                  2.8.6                    pypi_0    pypi
notebook                  6.4.12                   pypi_0    pypi
numba                     0.56.2                   pypi_0    pypi
numpy                     1.23.3                   pypi_0    pypi
openssl                   1.1.1q               h2bbff1b_0
packaging                 21.3                     pypi_0    pypi
pandas                    1.4.4                    pypi_0    pypi
pandocfilters             1.5.0                    pypi_0    pypi
parso                     0.8.3                    pypi_0    pypi
pickleshare               0.7.5                    pypi_0    pypi
pillow                    9.2.0                    pypi_0    pypi
pip                       22.2.2                   pypi_0    pypi
pluggy                    1.0.0                    pypi_0    pypi
prometheus-client         0.14.1                   pypi_0    pypi
prompt-toolkit            3.0.31                   pypi_0    pypi
psutil                    5.9.2                    pypi_0    pypi
pure-eval                 0.2.2                    pypi_0    pypi
py                        1.11.0                   pypi_0    pypi
pycparser                 2.21                     pypi_0    pypi
pygments                  2.13.0                   pypi_0    pypi
pynndescent               0.5.7                    pypi_0    pypi
pyparsing                 3.0.9                    pypi_0    pypi
pyrsistent                0.18.1                   pypi_0    pypi
pytest                    7.1.3                    pypi_0    pypi
python                    3.10.4               hbb2ffb3_0
python-dateutil           2.8.2                    pypi_0    pypi
pytz                      2022.2.1                 pypi_0    pypi
pywin32                   304                      pypi_0    pypi
pywinpty                  2.0.7                    pypi_0    pypi
pyyaml                    6.0                      pypi_0    pypi
pyzmq                     23.2.1                   pypi_0    pypi
rdkit-pypi                2022.3.5                 pypi_0    pypi
scikit-learn              1.1.2                    pypi_0    pypi
scipy                     1.9.1                    pypi_0    pypi
seaborn                   0.11.2                   pypi_0    pypi
send2trash                1.8.0                    pypi_0    pypi
setuptools                59.8.0                   pypi_0    pypi
six                       1.16.0                   pypi_0    pypi
soupsieve                 2.3.2.post1              pypi_0    pypi
sqlite                    3.39.2               h2bbff1b_0
stack-data                0.5.0                    pypi_0    pypi
terminado                 0.15.0                   pypi_0    pypi
threadpoolctl             3.1.0                    pypi_0    pypi
tinycss2                  1.1.1                    pypi_0    pypi
tk                        8.6.12               h2bbff1b_0
tomli                     2.0.1                    pypi_0    pypi
tornado                   6.2                      pypi_0    pypi
tqdm                      4.64.1                   pypi_0    pypi
traitlets                 5.4.0                    pypi_0    pypi
typing-extensions         4.3.0                    pypi_0    pypi
tzdata                    2022c                h04d1e81_0
umap-learn                0.5.3                    pypi_0    pypi
vc                        14.2                 h21ff451_1
vs2015_runtime            14.27.29016          h5e58377_2
wcwidth                   0.2.5                    pypi_0    pypi
webencodings              0.5.1                    pypi_0    pypi
wheel                     0.37.1             pyhd3eb1b0_0
wincertstore              0.2             py310haa95532_2
xz                        5.2.5                h8cc25b3_1
zlib                      1.2.12               h8cc25b3_3
````
Sorry for the late reply.
I cannot replicate the problem. Are we talking about this line in the notebook?
`cider.chemical_space_visualization(testdict, dimension_reduction = 'tsne', interactive = False, fp_bits = 1024, fp_radius = 2)`
I am getting the following plot: 
![image](https://user-images.githubusercontent.com/59618901/188199053-7b356982-c3b2-4f6b-a8ce-e8e5b4ff1138.png)
@JonasSchaub @Kohulan, can you reproduce the problem, or have I done something weird with my environment?


#### The error message:
* "AttributeError: 'list' object has no attribute 'shape'" indicates that the method is expecting a numpy array and is getting a list. 
* For reproduction:
    ```
    import numpy as np
    test_array = np.array([[1,2,3],[4,5,6]])
    test_array.shape
    >> (2, 3)
    ```
* A list in Python does have the *shape* attribute: 
    ```
    test_list = [[1,2,3],[4,5,6]]
    test_list.shape
    >> AttributeError: 'list' object has no attribute 'shape'
    ```
The method is expecting an array and is getting a list. That causes the error.
I also tried to reproduce the problem (on the latest commit of dev-Hannah, https://github.com/hannbus/ChemIcal-DatasEt-comparatoR/commit/d339471dabaeffc33b0469173ef90538e1386d85) but it worked fine for me (same as Otto).

@hannbus , maybe a "clean re-install" of your conda environment could help? Or maybe Otto and I have to do that.
I created a complete new conda environment and installed everything anew. But I still get the same error when trying to run the cell in the notebook. Do you have any ideas what else to do?
Ok, I updated conda, cloned the repo anew, created a new environment as specified in the readme, and NOW I also get the error :D

the line ``cider.chemical_space_visualization(testdict, dimension_reduction = 'tsne', interactive = False, fp_bits = 1024, fp_radius = 2)`` in the workflow notebook leads to the following error:
````
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In [38], line 1
----> 1 cider.chemical_space_visualization(testdict, dimension_reduction = 'tsne', interactive = False, fp_bits = 1024, fp_radius = 2)

File ~\Anaconda\Anaconda3\envs\cider\lib\site-packages\CIDER\cider.py:1194, in ChemicalDatasetComparator.chemical_space_visualization(self, all_dicts, fp_radius, fp_bits, dimension_reduction, interactive)
   1192     chem_space.pca()  # n_components, copy, whiten, svd_solver ...
   1193 elif dimension_reduction == "tsne":
-> 1194     chem_space.tsne()  # n_components, perplexity, learning_rate, n_iter, init, random_state ...
   1195 elif dimension_reduction == "umap":
   1196     chem_space.umap()  # n_neighbors, min_dist, pca, random_state ...

File ~\Anaconda\Anaconda3\envs\cider\lib\site-packages\chemplot\chemplot.py:260, in Plotter.tsne(self, perplexity, pca, random_state, **kwargs)
    258 # Embed the data in two dimensions
    259 self.tsne_fit = TSNE(n_components=2, perplexity=perplexity, random_state=random_state, **kwargs)
--> 260 ecfp_tsne_embedding = self.tsne_fit.fit_transform(self.__data)
    261 # Create a dataframe containinting the first 2 TSNE components of ECFP 
    262 self.__df_2_components = pd.DataFrame(data = ecfp_tsne_embedding
    263      , columns = ['t-SNE-1', 't-SNE-2'])

File ~\Anaconda\Anaconda3\envs\cider\lib\site-packages\sklearn\manifold\_t_sne.py:1122, in TSNE.fit_transform(self, X, y)
   1102 def fit_transform(self, X, y=None):
   1103     """Fit X into an embedded space and return that transformed output.
   1104 
   1105     Parameters
   (...)
   1120         Embedding of the training data in low-dimensional space.
   1121     """
-> 1122     self._check_params_vs_input(X)
   1123     embedding = self._fit(X)
   1124     self.embedding_ = embedding

File ~\Anaconda\Anaconda3\envs\cider\lib\site-packages\sklearn\manifold\_t_sne.py:792, in TSNE._check_params_vs_input(self, X)
    791 def _check_params_vs_input(self, X):
--> 792     if self.perplexity >= X.shape[0]:
    793         raise ValueError("perplexity must be less than n_samples")

AttributeError: 'list' object has no attribute 'shape'
````
Sadly, this does not bring us closer to solving this issue.

@Kohulan and @OBrink if you do not get this error, could you maybe check which dependencies are different in your environment?

This is mine:
````
(cider) C:\Users\jonas>conda list
# packages in environment at C:\Users\jonas\Anaconda\Anaconda3\envs\cider:
#
# Name                    Version                   Build  Channel
argon2-cffi               21.3.0                   pypi_0    pypi
argon2-cffi-bindings      21.2.0                   pypi_0    pypi
asttokens                 2.0.8                    pypi_0    pypi
attrs                     22.1.0                   pypi_0    pypi
backcall                  0.2.0                    pypi_0    pypi
beautifulsoup4            4.11.1                   pypi_0    pypi
bleach                    5.0.1                    pypi_0    pypi
bokeh                     2.4.3                    pypi_0    pypi
bzip2                     1.0.8                he774522_0
ca-certificates           2022.07.19           haa95532_0
certifi                   2022.6.15       py310haa95532_0
cffi                      1.15.1                   pypi_0    pypi
chemplot                  1.2.0                    pypi_0    pypi
cider-chem                0.0.1.dev0               pypi_0    pypi
colorama                  0.4.5                    pypi_0    pypi
cycler                    0.11.0                   pypi_0    pypi
debugpy                   1.6.3                    pypi_0    pypi
decorator                 5.1.1                    pypi_0    pypi
defusedxml                0.7.1                    pypi_0    pypi
entrypoints               0.4                      pypi_0    pypi
executing                 1.0.0                    pypi_0    pypi
fastjsonschema            2.16.1                   pypi_0    pypi
fonttools                 4.37.1                   pypi_0    pypi
fpdf                      1.7.2                    pypi_0    pypi
iniconfig                 1.1.1                    pypi_0    pypi
ipykernel                 6.15.3                   pypi_0    pypi
ipython                   8.5.0                    pypi_0    pypi
ipython-genutils          0.2.0                    pypi_0    pypi
jedi                      0.18.1                   pypi_0    pypi
jinja2                    3.1.2                    pypi_0    pypi
joblib                    1.1.0                    pypi_0    pypi
jsonschema                4.16.0                   pypi_0    pypi
jupyter-client            7.3.5                    pypi_0    pypi
jupyter-core              4.11.1                   pypi_0    pypi
jupyterlab-pygments       0.2.2                    pypi_0    pypi
kiwisolver                1.4.4                    pypi_0    pypi
libffi                    3.4.2                hd77b12b_4
llvmlite                  0.39.1                   pypi_0    pypi
lxml                      4.9.1                    pypi_0    pypi
markupsafe                2.1.1                    pypi_0    pypi
matplotlib                3.5.1                    pypi_0    pypi
matplotlib-inline         0.1.6                    pypi_0    pypi
matplotlib-venn           0.11.6                   pypi_0    pypi
mistune                   2.0.4                    pypi_0    pypi
mordred                   1.2.0                    pypi_0    pypi
nbclient                  0.6.8                    pypi_0    pypi
nbconvert                 7.0.0                    pypi_0    pypi
nbformat                  5.5.0                    pypi_0    pypi
nest-asyncio              1.5.5                    pypi_0    pypi
networkx                  2.8.6                    pypi_0    pypi
notebook                  6.4.12                   pypi_0    pypi
numba                     0.56.2                   pypi_0    pypi
numpy                     1.23.3                   pypi_0    pypi
openssl                   1.1.1q               h2bbff1b_0
packaging                 21.3                     pypi_0    pypi
pandas                    1.4.4                    pypi_0    pypi
pandocfilters             1.5.0                    pypi_0    pypi
parso                     0.8.3                    pypi_0    pypi
pickleshare               0.7.5                    pypi_0    pypi
pillow                    9.2.0                    pypi_0    pypi
pip                       22.2.2                   pypi_0    pypi
pluggy                    1.0.0                    pypi_0    pypi
prometheus-client         0.14.1                   pypi_0    pypi
prompt-toolkit            3.0.31                   pypi_0    pypi
psutil                    5.9.2                    pypi_0    pypi
pure-eval                 0.2.2                    pypi_0    pypi
py                        1.11.0                   pypi_0    pypi
pycparser                 2.21                     pypi_0    pypi
pygments                  2.13.0                   pypi_0    pypi
pynndescent               0.5.7                    pypi_0    pypi
pyparsing                 3.0.9                    pypi_0    pypi
pyrsistent                0.18.1                   pypi_0    pypi
pytest                    7.1.3                    pypi_0    pypi
python                    3.10.4               hbb2ffb3_0
python-dateutil           2.8.2                    pypi_0    pypi
pytz                      2022.2.1                 pypi_0    pypi
pywin32                   304                      pypi_0    pypi
pywinpty                  2.0.7                    pypi_0    pypi
pyyaml                    6.0                      pypi_0    pypi
pyzmq                     23.2.1                   pypi_0    pypi
rdkit-pypi                2022.3.5                 pypi_0    pypi
scikit-learn              1.1.2                    pypi_0    pypi
scipy                     1.9.1                    pypi_0    pypi
seaborn                   0.11.2                   pypi_0    pypi
send2trash                1.8.0                    pypi_0    pypi
setuptools                59.8.0                   pypi_0    pypi
six                       1.16.0                   pypi_0    pypi
soupsieve                 2.3.2.post1              pypi_0    pypi
sqlite                    3.39.2               h2bbff1b_0
stack-data                0.5.0                    pypi_0    pypi
terminado                 0.15.0                   pypi_0    pypi
threadpoolctl             3.1.0                    pypi_0    pypi
tinycss2                  1.1.1                    pypi_0    pypi
tk                        8.6.12               h2bbff1b_0
tomli                     2.0.1                    pypi_0    pypi
tornado                   6.2                      pypi_0    pypi
tqdm                      4.64.1                   pypi_0    pypi
traitlets                 5.4.0                    pypi_0    pypi
typing-extensions         4.3.0                    pypi_0    pypi
tzdata                    2022c                h04d1e81_0
umap-learn                0.5.3                    pypi_0    pypi
vc                        14.2                 h21ff451_1
vs2015_runtime            14.27.29016          h5e58377_2
wcwidth                   0.2.5                    pypi_0    pypi
webencodings              0.5.1                    pypi_0    pypi
wheel                     0.37.1             pyhd3eb1b0_0
wincertstore              0.2             py310haa95532_2
xz                        5.2.5                h8cc25b3_1
zlib                      1.2.12               h8cc25b3_3
````
Sorry for the late reply.
I cannot replicate the problem. Are we talking about this line in the notebook?
`cider.chemical_space_visualization(testdict, dimension_reduction = 'tsne', interactive = False, fp_bits = 1024, fp_radius = 2)`
I am getting the following plot: 
![image](https://user-images.githubusercontent.com/59618901/188199053-7b356982-c3b2-4f6b-a8ce-e8e5b4ff1138.png)
@JonasSchaub @Kohulan, can you reproduce the problem, or have I done something weird with my environment?


#### The error message:
* "AttributeError: 'list' object has no attribute 'shape'" indicates that the method is expecting a numpy array and is getting a list. 
* For reproduction:
    ```
    import numpy as np
    test_array = np.array([[1,2,3],[4,5,6]])
    test_array.shape
    >> (2, 3)
    ```
* A list in Python does have the *shape* attribute: 
    ```
    test_list = [[1,2,3],[4,5,6]]
    test_list.shape
    >> AttributeError: 'list' object has no attribute 'shape'
    ```
The method is expecting an array and is getting a list. That causes the error.
I also tried to reproduce the problem (on the latest commit of dev-Hannah, https://github.com/hannbus/ChemIcal-DatasEt-comparatoR/commit/d339471dabaeffc33b0469173ef90538e1386d85) but it worked fine for me (same as Otto).

@hannbus , maybe a "clean re-install" of your conda environment could help? Or maybe Otto and I have to do that.
I created a complete new conda environment and installed everything anew. But I still get the same error when trying to run the cell in the notebook. Do you have any ideas what else to do?
Ok, I updated conda, cloned the repo anew, created a new environment as specified in the readme, and NOW I also get the error :D

the line ``cider.chemical_space_visualization(testdict, dimension_reduction = 'tsne', interactive = False, fp_bits = 1024, fp_radius = 2)`` in the workflow notebook leads to the following error:
````
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In [38], line 1
----> 1 cider.chemical_space_visualization(testdict, dimension_reduction = 'tsne', interactive = False, fp_bits = 1024, fp_radius = 2)

File ~\Anaconda\Anaconda3\envs\cider\lib\site-packages\CIDER\cider.py:1194, in ChemicalDatasetComparator.chemical_space_visualization(self, all_dicts, fp_radius, fp_bits, dimension_reduction, interactive)
   1192     chem_space.pca()  # n_components, copy, whiten, svd_solver ...
   1193 elif dimension_reduction == "tsne":
-> 1194     chem_space.tsne()  # n_components, perplexity, learning_rate, n_iter, init, random_state ...
   1195 elif dimension_reduction == "umap":
   1196     chem_space.umap()  # n_neighbors, min_dist, pca, random_state ...

File ~\Anaconda\Anaconda3\envs\cider\lib\site-packages\chemplot\chemplot.py:260, in Plotter.tsne(self, perplexity, pca, random_state, **kwargs)
    258 # Embed the data in two dimensions
    259 self.tsne_fit = TSNE(n_components=2, perplexity=perplexity, random_state=random_state, **kwargs)
--> 260 ecfp_tsne_embedding = self.tsne_fit.fit_transform(self.__data)
    261 # Create a dataframe containinting the first 2 TSNE components of ECFP 
    262 self.__df_2_components = pd.DataFrame(data = ecfp_tsne_embedding
    263      , columns = ['t-SNE-1', 't-SNE-2'])

File ~\Anaconda\Anaconda3\envs\cider\lib\site-packages\sklearn\manifold\_t_sne.py:1122, in TSNE.fit_transform(self, X, y)
   1102 def fit_transform(self, X, y=None):
   1103     """Fit X into an embedded space and return that transformed output.
   1104 
   1105     Parameters
   (...)
   1120         Embedding of the training data in low-dimensional space.
   1121     """
-> 1122     self._check_params_vs_input(X)
   1123     embedding = self._fit(X)
   1124     self.embedding_ = embedding

File ~\Anaconda\Anaconda3\envs\cider\lib\site-packages\sklearn\manifold\_t_sne.py:792, in TSNE._check_params_vs_input(self, X)
    791 def _check_params_vs_input(self, X):
--> 792     if self.perplexity >= X.shape[0]:
    793         raise ValueError("perplexity must be less than n_samples")

AttributeError: 'list' object has no attribute 'shape'
````
Sadly, this does not bring us closer to solving this issue.

@Kohulan and @OBrink if you do not get this error, could you maybe check which dependencies are different in your environment?

This is mine:
````
(cider) C:\Users\jonas>conda list
# packages in environment at C:\Users\jonas\Anaconda\Anaconda3\envs\cider:
#
# Name                    Version                   Build  Channel
argon2-cffi               21.3.0                   pypi_0    pypi
argon2-cffi-bindings      21.2.0                   pypi_0    pypi
asttokens                 2.0.8                    pypi_0    pypi
attrs                     22.1.0                   pypi_0    pypi
backcall                  0.2.0                    pypi_0    pypi
beautifulsoup4            4.11.1                   pypi_0    pypi
bleach                    5.0.1                    pypi_0    pypi
bokeh                     2.4.3                    pypi_0    pypi
bzip2                     1.0.8                he774522_0
ca-certificates           2022.07.19           haa95532_0
certifi                   2022.6.15       py310haa95532_0
cffi                      1.15.1                   pypi_0    pypi
chemplot                  1.2.0                    pypi_0    pypi
cider-chem                0.0.1.dev0               pypi_0    pypi
colorama                  0.4.5                    pypi_0    pypi
cycler                    0.11.0                   pypi_0    pypi
debugpy                   1.6.3                    pypi_0    pypi
decorator                 5.1.1                    pypi_0    pypi
defusedxml                0.7.1                    pypi_0    pypi
entrypoints               0.4                      pypi_0    pypi
executing                 1.0.0                    pypi_0    pypi
fastjsonschema            2.16.1                   pypi_0    pypi
fonttools                 4.37.1                   pypi_0    pypi
fpdf                      1.7.2                    pypi_0    pypi
iniconfig                 1.1.1                    pypi_0    pypi
ipykernel                 6.15.3                   pypi_0    pypi
ipython                   8.5.0                    pypi_0    pypi
ipython-genutils          0.2.0                    pypi_0    pypi
jedi                      0.18.1                   pypi_0    pypi
jinja2                    3.1.2                    pypi_0    pypi
joblib                    1.1.0                    pypi_0    pypi
jsonschema                4.16.0                   pypi_0    pypi
jupyter-client            7.3.5                    pypi_0    pypi
jupyter-core              4.11.1                   pypi_0    pypi
jupyterlab-pygments       0.2.2                    pypi_0    pypi
kiwisolver                1.4.4                    pypi_0    pypi
libffi                    3.4.2                hd77b12b_4
llvmlite                  0.39.1                   pypi_0    pypi
lxml                      4.9.1                    pypi_0    pypi
markupsafe                2.1.1                    pypi_0    pypi
matplotlib                3.5.1                    pypi_0    pypi
matplotlib-inline         0.1.6                    pypi_0    pypi
matplotlib-venn           0.11.6                   pypi_0    pypi
mistune                   2.0.4                    pypi_0    pypi
mordred                   1.2.0                    pypi_0    pypi
nbclient                  0.6.8                    pypi_0    pypi
nbconvert                 7.0.0                    pypi_0    pypi
nbformat                  5.5.0                    pypi_0    pypi
nest-asyncio              1.5.5                    pypi_0    pypi
networkx                  2.8.6                    pypi_0    pypi
notebook                  6.4.12                   pypi_0    pypi
numba                     0.56.2                   pypi_0    pypi
numpy                     1.23.3                   pypi_0    pypi
openssl                   1.1.1q               h2bbff1b_0
packaging                 21.3                     pypi_0    pypi
pandas                    1.4.4                    pypi_0    pypi
pandocfilters             1.5.0                    pypi_0    pypi
parso                     0.8.3                    pypi_0    pypi
pickleshare               0.7.5                    pypi_0    pypi
pillow                    9.2.0                    pypi_0    pypi
pip                       22.2.2                   pypi_0    pypi
pluggy                    1.0.0                    pypi_0    pypi
prometheus-client         0.14.1                   pypi_0    pypi
prompt-toolkit            3.0.31                   pypi_0    pypi
psutil                    5.9.2                    pypi_0    pypi
pure-eval                 0.2.2                    pypi_0    pypi
py                        1.11.0                   pypi_0    pypi
pycparser                 2.21                     pypi_0    pypi
pygments                  2.13.0                   pypi_0    pypi
pynndescent               0.5.7                    pypi_0    pypi
pyparsing                 3.0.9                    pypi_0    pypi
pyrsistent                0.18.1                   pypi_0    pypi
pytest                    7.1.3                    pypi_0    pypi
python                    3.10.4               hbb2ffb3_0
python-dateutil           2.8.2                    pypi_0    pypi
pytz                      2022.2.1                 pypi_0    pypi
pywin32                   304                      pypi_0    pypi
pywinpty                  2.0.7                    pypi_0    pypi
pyyaml                    6.0                      pypi_0    pypi
pyzmq                     23.2.1                   pypi_0    pypi
rdkit-pypi                2022.3.5                 pypi_0    pypi
scikit-learn              1.1.2                    pypi_0    pypi
scipy                     1.9.1                    pypi_0    pypi
seaborn                   0.11.2                   pypi_0    pypi
send2trash                1.8.0                    pypi_0    pypi
setuptools                59.8.0                   pypi_0    pypi
six                       1.16.0                   pypi_0    pypi
soupsieve                 2.3.2.post1              pypi_0    pypi
sqlite                    3.39.2               h2bbff1b_0
stack-data                0.5.0                    pypi_0    pypi
terminado                 0.15.0                   pypi_0    pypi
threadpoolctl             3.1.0                    pypi_0    pypi
tinycss2                  1.1.1                    pypi_0    pypi
tk                        8.6.12               h2bbff1b_0
tomli                     2.0.1                    pypi_0    pypi
tornado                   6.2                      pypi_0    pypi
tqdm                      4.64.1                   pypi_0    pypi
traitlets                 5.4.0                    pypi_0    pypi
typing-extensions         4.3.0                    pypi_0    pypi
tzdata                    2022c                h04d1e81_0
umap-learn                0.5.3                    pypi_0    pypi
vc                        14.2                 h21ff451_1
vs2015_runtime            14.27.29016          h5e58377_2
wcwidth                   0.2.5                    pypi_0    pypi
webencodings              0.5.1                    pypi_0    pypi
wheel                     0.37.1             pyhd3eb1b0_0
wincertstore              0.2             py310haa95532_2
xz                        5.2.5                h8cc25b3_1
zlib                      1.2.12               h8cc25b3_3
````
Sorry for the late reply.
I cannot replicate the problem. Are we talking about this line in the notebook?
`cider.chemical_space_visualization(testdict, dimension_reduction = 'tsne', interactive = False, fp_bits = 1024, fp_radius = 2)`
I am getting the following plot: 
![image](https://user-images.githubusercontent.com/59618901/188199053-7b356982-c3b2-4f6b-a8ce-e8e5b4ff1138.png)
@JonasSchaub @Kohulan, can you reproduce the problem, or have I done something weird with my environment?


#### The error message:
* "AttributeError: 'list' object has no attribute 'shape'" indicates that the method is expecting a numpy array and is getting a list. 
* For reproduction:
    ```
    import numpy as np
    test_array = np.array([[1,2,3],[4,5,6]])
    test_array.shape
    >> (2, 3)
    ```
* A list in Python does have the *shape* attribute: 
    ```
    test_list = [[1,2,3],[4,5,6]]
    test_list.shape
    >> AttributeError: 'list' object has no attribute 'shape'
    ```
The method is expecting an array and is getting a list. That causes the error.
I also tried to reproduce the problem (on the latest commit of dev-Hannah, https://github.com/hannbus/ChemIcal-DatasEt-comparatoR/commit/d339471dabaeffc33b0469173ef90538e1386d85) but it worked fine for me (same as Otto).

@hannbus , maybe a "clean re-install" of your conda environment could help? Or maybe Otto and I have to do that.
I created a complete new conda environment and installed everything anew. But I still get the same error when trying to run the cell in the notebook. Do you have any ideas what else to do?
Ok, I updated conda, cloned the repo anew, created a new environment as specified in the readme, and NOW I also get the error :D

the line ``cider.chemical_space_visualization(testdict, dimension_reduction = 'tsne', interactive = False, fp_bits = 1024, fp_radius = 2)`` in the workflow notebook leads to the following error:
````
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In [38], line 1
----> 1 cider.chemical_space_visualization(testdict, dimension_reduction = 'tsne', interactive = False, fp_bits = 1024, fp_radius = 2)

File ~\Anaconda\Anaconda3\envs\cider\lib\site-packages\CIDER\cider.py:1194, in ChemicalDatasetComparator.chemical_space_visualization(self, all_dicts, fp_radius, fp_bits, dimension_reduction, interactive)
   1192     chem_space.pca()  # n_components, copy, whiten, svd_solver ...
   1193 elif dimension_reduction == "tsne":
-> 1194     chem_space.tsne()  # n_components, perplexity, learning_rate, n_iter, init, random_state ...
   1195 elif dimension_reduction == "umap":
   1196     chem_space.umap()  # n_neighbors, min_dist, pca, random_state ...

File ~\Anaconda\Anaconda3\envs\cider\lib\site-packages\chemplot\chemplot.py:260, in Plotter.tsne(self, perplexity, pca, random_state, **kwargs)
    258 # Embed the data in two dimensions
    259 self.tsne_fit = TSNE(n_components=2, perplexity=perplexity, random_state=random_state, **kwargs)
--> 260 ecfp_tsne_embedding = self.tsne_fit.fit_transform(self.__data)
    261 # Create a dataframe containinting the first 2 TSNE components of ECFP 
    262 self.__df_2_components = pd.DataFrame(data = ecfp_tsne_embedding
    263      , columns = ['t-SNE-1', 't-SNE-2'])

File ~\Anaconda\Anaconda3\envs\cider\lib\site-packages\sklearn\manifold\_t_sne.py:1122, in TSNE.fit_transform(self, X, y)
   1102 def fit_transform(self, X, y=None):
   1103     """Fit X into an embedded space and return that transformed output.
   1104 
   1105     Parameters
   (...)
   1120         Embedding of the training data in low-dimensional space.
   1121     """
-> 1122     self._check_params_vs_input(X)
   1123     embedding = self._fit(X)
   1124     self.embedding_ = embedding

File ~\Anaconda\Anaconda3\envs\cider\lib\site-packages\sklearn\manifold\_t_sne.py:792, in TSNE._check_params_vs_input(self, X)
    791 def _check_params_vs_input(self, X):
--> 792     if self.perplexity >= X.shape[0]:
    793         raise ValueError("perplexity must be less than n_samples")

AttributeError: 'list' object has no attribute 'shape'
````
Sadly, this does not bring us closer to solving this issue.

@Kohulan and @OBrink if you do not get this error, could you maybe check which dependencies are different in your environment?

This is mine:
````
(cider) C:\Users\jonas>conda list
# packages in environment at C:\Users\jonas\Anaconda\Anaconda3\envs\cider:
#
# Name                    Version                   Build  Channel
argon2-cffi               21.3.0                   pypi_0    pypi
argon2-cffi-bindings      21.2.0                   pypi_0    pypi
asttokens                 2.0.8                    pypi_0    pypi
attrs                     22.1.0                   pypi_0    pypi
backcall                  0.2.0                    pypi_0    pypi
beautifulsoup4            4.11.1                   pypi_0    pypi
bleach                    5.0.1                    pypi_0    pypi
bokeh                     2.4.3                    pypi_0    pypi
bzip2                     1.0.8                he774522_0
ca-certificates           2022.07.19           haa95532_0
certifi                   2022.6.15       py310haa95532_0
cffi                      1.15.1                   pypi_0    pypi
chemplot                  1.2.0                    pypi_0    pypi
cider-chem                0.0.1.dev0               pypi_0    pypi
colorama                  0.4.5                    pypi_0    pypi
cycler                    0.11.0                   pypi_0    pypi
debugpy                   1.6.3                    pypi_0    pypi
decorator                 5.1.1                    pypi_0    pypi
defusedxml                0.7.1                    pypi_0    pypi
entrypoints               0.4                      pypi_0    pypi
executing                 1.0.0                    pypi_0    pypi
fastjsonschema            2.16.1                   pypi_0    pypi
fonttools                 4.37.1                   pypi_0    pypi
fpdf                      1.7.2                    pypi_0    pypi
iniconfig                 1.1.1                    pypi_0    pypi
ipykernel                 6.15.3                   pypi_0    pypi
ipython                   8.5.0                    pypi_0    pypi
ipython-genutils          0.2.0                    pypi_0    pypi
jedi                      0.18.1                   pypi_0    pypi
jinja2                    3.1.2                    pypi_0    pypi
joblib                    1.1.0                    pypi_0    pypi
jsonschema                4.16.0                   pypi_0    pypi
jupyter-client            7.3.5                    pypi_0    pypi
jupyter-core              4.11.1                   pypi_0    pypi
jupyterlab-pygments       0.2.2                    pypi_0    pypi
kiwisolver                1.4.4                    pypi_0    pypi
libffi                    3.4.2                hd77b12b_4
llvmlite                  0.39.1                   pypi_0    pypi
lxml                      4.9.1                    pypi_0    pypi
markupsafe                2.1.1                    pypi_0    pypi
matplotlib                3.5.1                    pypi_0    pypi
matplotlib-inline         0.1.6                    pypi_0    pypi
matplotlib-venn           0.11.6                   pypi_0    pypi
mistune                   2.0.4                    pypi_0    pypi
mordred                   1.2.0                    pypi_0    pypi
nbclient                  0.6.8                    pypi_0    pypi
nbconvert                 7.0.0                    pypi_0    pypi
nbformat                  5.5.0                    pypi_0    pypi
nest-asyncio              1.5.5                    pypi_0    pypi
networkx                  2.8.6                    pypi_0    pypi
notebook                  6.4.12                   pypi_0    pypi
numba                     0.56.2                   pypi_0    pypi
numpy                     1.23.3                   pypi_0    pypi
openssl                   1.1.1q               h2bbff1b_0
packaging                 21.3                     pypi_0    pypi
pandas                    1.4.4                    pypi_0    pypi
pandocfilters             1.5.0                    pypi_0    pypi
parso                     0.8.3                    pypi_0    pypi
pickleshare               0.7.5                    pypi_0    pypi
pillow                    9.2.0                    pypi_0    pypi
pip                       22.2.2                   pypi_0    pypi
pluggy                    1.0.0                    pypi_0    pypi
prometheus-client         0.14.1                   pypi_0    pypi
prompt-toolkit            3.0.31                   pypi_0    pypi
psutil                    5.9.2                    pypi_0    pypi
pure-eval                 0.2.2                    pypi_0    pypi
py                        1.11.0                   pypi_0    pypi
pycparser                 2.21                     pypi_0    pypi
pygments                  2.13.0                   pypi_0    pypi
pynndescent               0.5.7                    pypi_0    pypi
pyparsing                 3.0.9                    pypi_0    pypi
pyrsistent                0.18.1                   pypi_0    pypi
pytest                    7.1.3                    pypi_0    pypi
python                    3.10.4               hbb2ffb3_0
python-dateutil           2.8.2                    pypi_0    pypi
pytz                      2022.2.1                 pypi_0    pypi
pywin32                   304                      pypi_0    pypi
pywinpty                  2.0.7                    pypi_0    pypi
pyyaml                    6.0                      pypi_0    pypi
pyzmq                     23.2.1                   pypi_0    pypi
rdkit-pypi                2022.3.5                 pypi_0    pypi
scikit-learn              1.1.2                    pypi_0    pypi
scipy                     1.9.1                    pypi_0    pypi
seaborn                   0.11.2                   pypi_0    pypi
send2trash                1.8.0                    pypi_0    pypi
setuptools                59.8.0                   pypi_0    pypi
six                       1.16.0                   pypi_0    pypi
soupsieve                 2.3.2.post1              pypi_0    pypi
sqlite                    3.39.2               h2bbff1b_0
stack-data                0.5.0                    pypi_0    pypi
terminado                 0.15.0                   pypi_0    pypi
threadpoolctl             3.1.0                    pypi_0    pypi
tinycss2                  1.1.1                    pypi_0    pypi
tk                        8.6.12               h2bbff1b_0
tomli                     2.0.1                    pypi_0    pypi
tornado                   6.2                      pypi_0    pypi
tqdm                      4.64.1                   pypi_0    pypi
traitlets                 5.4.0                    pypi_0    pypi
typing-extensions         4.3.0                    pypi_0    pypi
tzdata                    2022c                h04d1e81_0
umap-learn                0.5.3                    pypi_0    pypi
vc                        14.2                 h21ff451_1
vs2015_runtime            14.27.29016          h5e58377_2
wcwidth                   0.2.5                    pypi_0    pypi
webencodings              0.5.1                    pypi_0    pypi
wheel                     0.37.1             pyhd3eb1b0_0
wincertstore              0.2             py310haa95532_2
xz                        5.2.5                h8cc25b3_1
zlib                      1.2.12               h8cc25b3_3
````
Sorry for the late reply.
I cannot replicate the problem. Are we talking about this line in the notebook?
`cider.chemical_space_visualization(testdict, dimension_reduction = 'tsne', interactive = False, fp_bits = 1024, fp_radius = 2)`
I am getting the following plot: 
![image](https://user-images.githubusercontent.com/59618901/188199053-7b356982-c3b2-4f6b-a8ce-e8e5b4ff1138.png)
@JonasSchaub @Kohulan, can you reproduce the problem, or have I done something weird with my environment?


#### The error message:
* "AttributeError: 'list' object has no attribute 'shape'" indicates that the method is expecting a numpy array and is getting a list. 
* For reproduction:
    ```
    import numpy as np
    test_array = np.array([[1,2,3],[4,5,6]])
    test_array.shape
    >> (2, 3)
    ```
* A list in Python does have the *shape* attribute: 
    ```
    test_list = [[1,2,3],[4,5,6]]
    test_list.shape
    >> AttributeError: 'list' object has no attribute 'shape'
    ```
The method is expecting an array and is getting a list. That causes the error.
I also tried to reproduce the problem (on the latest commit of dev-Hannah, https://github.com/hannbus/ChemIcal-DatasEt-comparatoR/commit/d339471dabaeffc33b0469173ef90538e1386d85) but it worked fine for me (same as Otto).

@hannbus , maybe a "clean re-install" of your conda environment could help? Or maybe Otto and I have to do that.
I created a complete new conda environment and installed everything anew. But I still get the same error when trying to run the cell in the notebook. Do you have any ideas what else to do?
Ok, I updated conda, cloned the repo anew, created a new environment as specified in the readme, and NOW I also get the error :D

the line ``cider.chemical_space_visualization(testdict, dimension_reduction = 'tsne', interactive = False, fp_bits = 1024, fp_radius = 2)`` in the workflow notebook leads to the following error:
````
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In [38], line 1
----> 1 cider.chemical_space_visualization(testdict, dimension_reduction = 'tsne', interactive = False, fp_bits = 1024, fp_radius = 2)

File ~\Anaconda\Anaconda3\envs\cider\lib\site-packages\CIDER\cider.py:1194, in ChemicalDatasetComparator.chemical_space_visualization(self, all_dicts, fp_radius, fp_bits, dimension_reduction, interactive)
   1192     chem_space.pca()  # n_components, copy, whiten, svd_solver ...
   1193 elif dimension_reduction == "tsne":
-> 1194     chem_space.tsne()  # n_components, perplexity, learning_rate, n_iter, init, random_state ...
   1195 elif dimension_reduction == "umap":
   1196     chem_space.umap()  # n_neighbors, min_dist, pca, random_state ...

File ~\Anaconda\Anaconda3\envs\cider\lib\site-packages\chemplot\chemplot.py:260, in Plotter.tsne(self, perplexity, pca, random_state, **kwargs)
    258 # Embed the data in two dimensions
    259 self.tsne_fit = TSNE(n_components=2, perplexity=perplexity, random_state=random_state, **kwargs)
--> 260 ecfp_tsne_embedding = self.tsne_fit.fit_transform(self.__data)
    261 # Create a dataframe containinting the first 2 TSNE components of ECFP 
    262 self.__df_2_components = pd.DataFrame(data = ecfp_tsne_embedding
    263      , columns = ['t-SNE-1', 't-SNE-2'])

File ~\Anaconda\Anaconda3\envs\cider\lib\site-packages\sklearn\manifold\_t_sne.py:1122, in TSNE.fit_transform(self, X, y)
   1102 def fit_transform(self, X, y=None):
   1103     """Fit X into an embedded space and return that transformed output.
   1104 
   1105     Parameters
   (...)
   1120         Embedding of the training data in low-dimensional space.
   1121     """
-> 1122     self._check_params_vs_input(X)
   1123     embedding = self._fit(X)
   1124     self.embedding_ = embedding

File ~\Anaconda\Anaconda3\envs\cider\lib\site-packages\sklearn\manifold\_t_sne.py:792, in TSNE._check_params_vs_input(self, X)
    791 def _check_params_vs_input(self, X):
--> 792     if self.perplexity >= X.shape[0]:
    793         raise ValueError("perplexity must be less than n_samples")

AttributeError: 'list' object has no attribute 'shape'
````
Sadly, this does not bring us closer to solving this issue.

@Kohulan and @OBrink if you do not get this error, could you maybe check which dependencies are different in your environment?

This is mine:
````
(cider) C:\Users\jonas>conda list
# packages in environment at C:\Users\jonas\Anaconda\Anaconda3\envs\cider:
#
# Name                    Version                   Build  Channel
argon2-cffi               21.3.0                   pypi_0    pypi
argon2-cffi-bindings      21.2.0                   pypi_0    pypi
asttokens                 2.0.8                    pypi_0    pypi
attrs                     22.1.0                   pypi_0    pypi
backcall                  0.2.0                    pypi_0    pypi
beautifulsoup4            4.11.1                   pypi_0    pypi
bleach                    5.0.1                    pypi_0    pypi
bokeh                     2.4.3                    pypi_0    pypi
bzip2                     1.0.8                he774522_0
ca-certificates           2022.07.19           haa95532_0
certifi                   2022.6.15       py310haa95532_0
cffi                      1.15.1                   pypi_0    pypi
chemplot                  1.2.0                    pypi_0    pypi
cider-chem                0.0.1.dev0               pypi_0    pypi
colorama                  0.4.5                    pypi_0    pypi
cycler                    0.11.0                   pypi_0    pypi
debugpy                   1.6.3                    pypi_0    pypi
decorator                 5.1.1                    pypi_0    pypi
defusedxml                0.7.1                    pypi_0    pypi
entrypoints               0.4                      pypi_0    pypi
executing                 1.0.0                    pypi_0    pypi
fastjsonschema            2.16.1                   pypi_0    pypi
fonttools                 4.37.1                   pypi_0    pypi
fpdf                      1.7.2                    pypi_0    pypi
iniconfig                 1.1.1                    pypi_0    pypi
ipykernel                 6.15.3                   pypi_0    pypi
ipython                   8.5.0                    pypi_0    pypi
ipython-genutils          0.2.0                    pypi_0    pypi
jedi                      0.18.1                   pypi_0    pypi
jinja2                    3.1.2                    pypi_0    pypi
joblib                    1.1.0                    pypi_0    pypi
jsonschema                4.16.0                   pypi_0    pypi
jupyter-client            7.3.5                    pypi_0    pypi
jupyter-core              4.11.1                   pypi_0    pypi
jupyterlab-pygments       0.2.2                    pypi_0    pypi
kiwisolver                1.4.4                    pypi_0    pypi
libffi                    3.4.2                hd77b12b_4
llvmlite                  0.39.1                   pypi_0    pypi
lxml                      4.9.1                    pypi_0    pypi
markupsafe                2.1.1                    pypi_0    pypi
matplotlib                3.5.1                    pypi_0    pypi
matplotlib-inline         0.1.6                    pypi_0    pypi
matplotlib-venn           0.11.6                   pypi_0    pypi
mistune                   2.0.4                    pypi_0    pypi
mordred                   1.2.0                    pypi_0    pypi
nbclient                  0.6.8                    pypi_0    pypi
nbconvert                 7.0.0                    pypi_0    pypi
nbformat                  5.5.0                    pypi_0    pypi
nest-asyncio              1.5.5                    pypi_0    pypi
networkx                  2.8.6                    pypi_0    pypi
notebook                  6.4.12                   pypi_0    pypi
numba                     0.56.2                   pypi_0    pypi
numpy                     1.23.3                   pypi_0    pypi
openssl                   1.1.1q               h2bbff1b_0
packaging                 21.3                     pypi_0    pypi
pandas                    1.4.4                    pypi_0    pypi
pandocfilters             1.5.0                    pypi_0    pypi
parso                     0.8.3                    pypi_0    pypi
pickleshare               0.7.5                    pypi_0    pypi
pillow                    9.2.0                    pypi_0    pypi
pip                       22.2.2                   pypi_0    pypi
pluggy                    1.0.0                    pypi_0    pypi
prometheus-client         0.14.1                   pypi_0    pypi
prompt-toolkit            3.0.31                   pypi_0    pypi
psutil                    5.9.2                    pypi_0    pypi
pure-eval                 0.2.2                    pypi_0    pypi
py                        1.11.0                   pypi_0    pypi
pycparser                 2.21                     pypi_0    pypi
pygments                  2.13.0                   pypi_0    pypi
pynndescent               0.5.7                    pypi_0    pypi
pyparsing                 3.0.9                    pypi_0    pypi
pyrsistent                0.18.1                   pypi_0    pypi
pytest                    7.1.3                    pypi_0    pypi
python                    3.10.4               hbb2ffb3_0
python-dateutil           2.8.2                    pypi_0    pypi
pytz                      2022.2.1                 pypi_0    pypi
pywin32                   304                      pypi_0    pypi
pywinpty                  2.0.7                    pypi_0    pypi
pyyaml                    6.0                      pypi_0    pypi
pyzmq                     23.2.1                   pypi_0    pypi
rdkit-pypi                2022.3.5                 pypi_0    pypi
scikit-learn              1.1.2                    pypi_0    pypi
scipy                     1.9.1                    pypi_0    pypi
seaborn                   0.11.2                   pypi_0    pypi
send2trash                1.8.0                    pypi_0    pypi
setuptools                59.8.0                   pypi_0    pypi
six                       1.16.0                   pypi_0    pypi
soupsieve                 2.3.2.post1              pypi_0    pypi
sqlite                    3.39.2               h2bbff1b_0
stack-data                0.5.0                    pypi_0    pypi
terminado                 0.15.0                   pypi_0    pypi
threadpoolctl             3.1.0                    pypi_0    pypi
tinycss2                  1.1.1                    pypi_0    pypi
tk                        8.6.12               h2bbff1b_0
tomli                     2.0.1                    pypi_0    pypi
tornado                   6.2                      pypi_0    pypi
tqdm                      4.64.1                   pypi_0    pypi
traitlets                 5.4.0                    pypi_0    pypi
typing-extensions         4.3.0                    pypi_0    pypi
tzdata                    2022c                h04d1e81_0
umap-learn                0.5.3                    pypi_0    pypi
vc                        14.2                 h21ff451_1
vs2015_runtime            14.27.29016          h5e58377_2
wcwidth                   0.2.5                    pypi_0    pypi
webencodings              0.5.1                    pypi_0    pypi
wheel                     0.37.1             pyhd3eb1b0_0
wincertstore              0.2             py310haa95532_2
xz                        5.2.5                h8cc25b3_1
zlib                      1.2.12               h8cc25b3_3
````

Fix patch:
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index f26fdb8..bd33e9a 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -19,7 +19,7 @@ jobs:
     runs-on: ubuntu-latest
     strategy:
       matrix:
-        python-version: [3.7]
+        python-version: ['3.10']
 
     steps:
       - uses: actions/checkout@v2
diff --git a/setup.py b/setup.py
index 63564ae..dc6b60b 100644
--- a/setup.py
+++ b/setup.py
@@ -26,7 +26,8 @@
         "matplotlib_venn==0.11.6",
         "FPDF==1.7.2",
         "rdkit-pypi",
-        "pytest"
+        "pytest",
+        "scikit-learn==1.1.1"
     ],
     package_data={"CIDER": ["assets/*.*", "assets/*/*.*", "assets/*/*/*.*"]},
     classifiers=[
diff --git a/tox.ini b/tox.ini
index 465332b..0799931 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,5 +1,5 @@
 [tox]
-envlist = py37,py38,py39,py310,lint
+envlist = py38,py39,py310,lint
 requires = tox-conda
 
 [testenv]
@@ -7,7 +7,7 @@ setenv =
     CONDA_DLL_SEARCH_MODIFICATION_ENABLE = 1
 whitelist_externals = python
 
-[testenv:py{37,38,39,310}]
+[testenv:py{38,39,310}]
 conda_deps =
     pytest
     rdkit


Test patch:
diff --git a/Tests/test_functions.py b/Tests/test_functions.py
index 4a368f8..3426de2 100644
--- a/Tests/test_functions.py
+++ b/Tests/test_functions.py
@@ -418,3 +418,10 @@ def test_export_all_figures_pdf():
     test_path = os.path.join(os.path.split(__file__)[0],
                              "output", "all_figures.pdf")
     assert os.path.exists(test_path)
+
+def test_chemical_space_plot_tsne():
+    cider.chemical_space_visualization(testdict,
+                                       dimension_reduction='tsne',
+                                       interactive=False,
+                                       fp_bits=1024,
+                                       fp_radius=2)