diff --git a/notebook/.dockerignore b/.dockerignore
similarity index 100%
rename from notebook/.dockerignore
rename to .dockerignore
diff --git a/.gitmodules b/.gitmodules
index 3ec9ad91c9ed633cd5fe7b86df28a13171e5e1a4..263fc2cc46c5a5a6e3908ed3bd3f7468f760033c 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -26,25 +26,25 @@
 	path = tutorials/soap-atomic-charges
 	url = https://gitlab.mpcdf.mpg.de/nomad-lab/analytics-soap-atomic-charges.git
 [submodule "notebook/quip"]
-	path = notebook/quip
+	path = 3rdparty/quip
 	url = https://github.com/libAtoms/QUIP.git
 [submodule "notebook/quip-py2"]
-	path = notebook/quip-py2
+	path = 3rdparty/quip-py2
 	url = https://github.com/libAtoms/QUIP.git
 [submodule "notebook/sketchmap"]
-	path = notebook/sketchmap
+	path = 3rdparty/sketchmap
 	url = https://github.com/cosmo-epfl/sketchmap.git
 [submodule "notebook/nfft"]
-	path = notebook/nfft
+	path = 3rdparty/nfft
 	url = https://github.com/NFFT/nfft.git
 [submodule "notebook/condor"]
-	path = notebook/condor
+	path = 3rdparty/condor
 	url = https://github.com/FXIhub/condor.git
 [submodule "notebook/libspimage"]
-	path = notebook/libspimage
+	path = 3rdparty/libspimage
 	url = https://github.com/FXIhub/libspimage.git
 [submodule "notebook/spsim"]
-	path = notebook/spsim
+	path = 3rdparty/spsim
 	url = https://github.com/FXIhub/spsim.git
 [submodule "tutorials/band-structure-visualization"]
 	path = tutorials/band-structure-visualization
diff --git a/notebook/condor b/3rdparty/condor
similarity index 100%
rename from notebook/condor
rename to 3rdparty/condor
diff --git a/notebook/gap-py2/LICENSE.md b/3rdparty/gap-py2/LICENSE.md
similarity index 100%
rename from notebook/gap-py2/LICENSE.md
rename to 3rdparty/gap-py2/LICENSE.md
diff --git a/notebook/gap-py2/Makefile b/3rdparty/gap-py2/Makefile
similarity index 100%
rename from notebook/gap-py2/Makefile
rename to 3rdparty/gap-py2/Makefile
diff --git a/notebook/gap-py2/clustering.f95 b/3rdparty/gap-py2/clustering.f95
similarity index 100%
rename from notebook/gap-py2/clustering.f95
rename to 3rdparty/gap-py2/clustering.f95
diff --git a/notebook/gap-py2/descriptors.f95 b/3rdparty/gap-py2/descriptors.f95
similarity index 100%
rename from notebook/gap-py2/descriptors.f95
rename to 3rdparty/gap-py2/descriptors.f95
diff --git a/notebook/gap-py2/descriptors_wrapper.f95 b/3rdparty/gap-py2/descriptors_wrapper.f95
similarity index 100%
rename from notebook/gap-py2/descriptors_wrapper.f95
rename to 3rdparty/gap-py2/descriptors_wrapper.f95
diff --git a/notebook/gap-py2/error.inc b/3rdparty/gap-py2/error.inc
similarity index 100%
rename from notebook/gap-py2/error.inc
rename to 3rdparty/gap-py2/error.inc
diff --git a/notebook/gap-py2/gap_fit.f95 b/3rdparty/gap-py2/gap_fit.f95
similarity index 100%
rename from notebook/gap-py2/gap_fit.f95
rename to 3rdparty/gap-py2/gap_fit.f95
diff --git a/notebook/gap-py2/gap_fit_module.f95 b/3rdparty/gap-py2/gap_fit_module.f95
similarity index 100%
rename from notebook/gap-py2/gap_fit_module.f95
rename to 3rdparty/gap-py2/gap_fit_module.f95
diff --git a/notebook/gap-py2/gapversion b/3rdparty/gap-py2/gapversion
similarity index 100%
rename from notebook/gap-py2/gapversion
rename to 3rdparty/gap-py2/gapversion
diff --git a/notebook/gap-py2/gp_fit.f95 b/3rdparty/gap-py2/gp_fit.f95
similarity index 100%
rename from notebook/gap-py2/gp_fit.f95
rename to 3rdparty/gap-py2/gp_fit.f95
diff --git a/notebook/gap-py2/gp_predict.f95 b/3rdparty/gap-py2/gp_predict.f95
similarity index 100%
rename from notebook/gap-py2/gp_predict.f95
rename to 3rdparty/gap-py2/gp_predict.f95
diff --git a/notebook/gap-py2/make_permutations_v2.f95 b/3rdparty/gap-py2/make_permutations_v2.f95
similarity index 100%
rename from notebook/gap-py2/make_permutations_v2.f95
rename to 3rdparty/gap-py2/make_permutations_v2.f95
diff --git a/notebook/gap-py2/teach_sparse b/3rdparty/gap-py2/teach_sparse
similarity index 100%
rename from notebook/gap-py2/teach_sparse
rename to 3rdparty/gap-py2/teach_sparse
diff --git a/notebook/gap/.gitignore b/3rdparty/gap/.gitignore
similarity index 100%
rename from notebook/gap/.gitignore
rename to 3rdparty/gap/.gitignore
diff --git a/notebook/gap/LICENSE.md b/3rdparty/gap/LICENSE.md
similarity index 100%
rename from notebook/gap/LICENSE.md
rename to 3rdparty/gap/LICENSE.md
diff --git a/notebook/gap/Makefile b/3rdparty/gap/Makefile
similarity index 100%
rename from notebook/gap/Makefile
rename to 3rdparty/gap/Makefile
diff --git a/notebook/gap/clustering.f95 b/3rdparty/gap/clustering.f95
similarity index 100%
rename from notebook/gap/clustering.f95
rename to 3rdparty/gap/clustering.f95
diff --git a/notebook/gap/descriptors.f95 b/3rdparty/gap/descriptors.f95
similarity index 100%
rename from notebook/gap/descriptors.f95
rename to 3rdparty/gap/descriptors.f95
diff --git a/notebook/gap/descriptors_wrapper.f95 b/3rdparty/gap/descriptors_wrapper.f95
similarity index 100%
rename from notebook/gap/descriptors_wrapper.f95
rename to 3rdparty/gap/descriptors_wrapper.f95
diff --git a/notebook/gap/doc/Makefile b/3rdparty/gap/doc/Makefile
similarity index 100%
rename from notebook/gap/doc/Makefile
rename to 3rdparty/gap/doc/Makefile
diff --git a/notebook/gap/doc/conf.py b/3rdparty/gap/doc/conf.py
similarity index 100%
rename from notebook/gap/doc/conf.py
rename to 3rdparty/gap/doc/conf.py
diff --git a/notebook/gap/doc/gap_fit.rst b/3rdparty/gap/doc/gap_fit.rst
similarity index 100%
rename from notebook/gap/doc/gap_fit.rst
rename to 3rdparty/gap/doc/gap_fit.rst
diff --git a/notebook/gap/doc/gap_fitting_tutorial.ipynb b/3rdparty/gap/doc/gap_fitting_tutorial.ipynb
similarity index 100%
rename from notebook/gap/doc/gap_fitting_tutorial.ipynb
rename to 3rdparty/gap/doc/gap_fitting_tutorial.ipynb
diff --git a/notebook/gap/doc/index.rst b/3rdparty/gap/doc/index.rst
similarity index 100%
rename from notebook/gap/doc/index.rst
rename to 3rdparty/gap/doc/index.rst
diff --git a/notebook/gap/doc/modcontents.py b/3rdparty/gap/doc/modcontents.py
similarity index 100%
rename from notebook/gap/doc/modcontents.py
rename to 3rdparty/gap/doc/modcontents.py
diff --git a/notebook/gap/doc/quippy-descriptor-tutorial.ipynb b/3rdparty/gap/doc/quippy-descriptor-tutorial.ipynb
similarity index 100%
rename from notebook/gap/doc/quippy-descriptor-tutorial.ipynb
rename to 3rdparty/gap/doc/quippy-descriptor-tutorial.ipynb
diff --git a/notebook/gap/doc/tutorials.rst b/3rdparty/gap/doc/tutorials.rst
similarity index 100%
rename from notebook/gap/doc/tutorials.rst
rename to 3rdparty/gap/doc/tutorials.rst
diff --git a/notebook/gap/error.inc b/3rdparty/gap/error.inc
similarity index 100%
rename from notebook/gap/error.inc
rename to 3rdparty/gap/error.inc
diff --git a/notebook/gap/gap_fit.f95 b/3rdparty/gap/gap_fit.f95
similarity index 100%
rename from notebook/gap/gap_fit.f95
rename to 3rdparty/gap/gap_fit.f95
diff --git a/notebook/gap/gap_fit_module.f95 b/3rdparty/gap/gap_fit_module.f95
similarity index 100%
rename from notebook/gap/gap_fit_module.f95
rename to 3rdparty/gap/gap_fit_module.f95
diff --git a/notebook/gap/gapversion b/3rdparty/gap/gapversion
similarity index 100%
rename from notebook/gap/gapversion
rename to 3rdparty/gap/gapversion
diff --git a/notebook/gap/gp_fit.f95 b/3rdparty/gap/gp_fit.f95
similarity index 100%
rename from notebook/gap/gp_fit.f95
rename to 3rdparty/gap/gp_fit.f95
diff --git a/notebook/gap/gp_predict.f95 b/3rdparty/gap/gp_predict.f95
similarity index 100%
rename from notebook/gap/gp_predict.f95
rename to 3rdparty/gap/gp_predict.f95
diff --git a/notebook/gap/make_permutations_v2.f95 b/3rdparty/gap/make_permutations_v2.f95
similarity index 100%
rename from notebook/gap/make_permutations_v2.f95
rename to 3rdparty/gap/make_permutations_v2.f95
diff --git a/notebook/gap/teach_sparse b/3rdparty/gap/teach_sparse
similarity index 100%
rename from notebook/gap/teach_sparse
rename to 3rdparty/gap/teach_sparse
diff --git a/notebook/libspimage b/3rdparty/libspimage
similarity index 100%
rename from notebook/libspimage
rename to 3rdparty/libspimage
diff --git a/notebook/nfft b/3rdparty/nfft
similarity index 100%
rename from notebook/nfft
rename to 3rdparty/nfft
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/.gitignore b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/.gitignore
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/.gitignore
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/.gitignore
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/__init__.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/__init__.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/__init__.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/__init__.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/cconvert.pyx b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/cconvert.pyx
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/cconvert.pyx
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/cconvert.pyx
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/cnn.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/cnn.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/cnn.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/cnn.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/cnn_preprocessing.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/cnn_preprocessing.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/cnn_preprocessing.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/cnn_preprocessing.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/config.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/config.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/config.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/config.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/config_beaker.json b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/config_beaker.json
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/config_beaker.json
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/config_beaker.json
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/config_local_angelo.json b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/config_local_angelo.json
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/config_local_angelo.json
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/config_local_angelo.json
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/config_local_emre.json b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/config_local_emre.json
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/config_local_emre.json
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/config_local_emre.json
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/convert.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/convert.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/convert.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/convert.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/deconv_resp_maps.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/deconv_resp_maps.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/deconv_resp_maps.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/deconv_resp_maps.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/descriptors.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/descriptors.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/descriptors.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/descriptors.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/example_numpy.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/example_numpy.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/example_numpy.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/example_numpy.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/gen_similarity_matrix.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/gen_similarity_matrix.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/gen_similarity_matrix.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/gen_similarity_matrix.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/get_confusion_matrix.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/get_confusion_matrix.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/get_confusion_matrix.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/get_confusion_matrix.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/keras_autoencoder.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/keras_autoencoder.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/keras_autoencoder.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/keras_autoencoder.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/l1_l0.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/l1_l0.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/l1_l0.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/l1_l0.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/model_cnn.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/model_cnn.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/model_cnn.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/model_cnn.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/nomad_structures.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/nomad_structures.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/nomad_structures.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/nomad_structures.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/nomad_structures_hdf5.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/nomad_structures_hdf5.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/nomad_structures_hdf5.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/nomad_structures_hdf5.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/nomad_viewer.css b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/nomad_viewer.css
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/nomad_viewer.css
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/nomad_viewer.css
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/patch_names_rs_zb.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/patch_names_rs_zb.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/patch_names_rs_zb.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/patch_names_rs_zb.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/sis.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/sis.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/sis.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/sis.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/soap_kernel.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/soap_kernel.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/soap_kernel.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/soap_kernel.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/soap_model.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/soap_model.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/soap_model.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/soap_model.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/ssh_code.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/ssh_code.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/ssh_code.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/ssh_code.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/structure_retrieval.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/structure_retrieval.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/structure_retrieval.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/structure_retrieval.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/structure_types.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/structure_types.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/structure_types.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/structure_types.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/tensorflowvisu.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/tensorflowvisu.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/tensorflowvisu.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/tensorflowvisu.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/tensorflowvisu_digits.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/tensorflowvisu_digits.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/tensorflowvisu_digits.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/tensorflowvisu_digits.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/tf_autoencoder.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/tf_autoencoder.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/tf_autoencoder.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/tf_autoencoder.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/utils_binaries.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/utils_binaries.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/utils_binaries.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/utils_binaries.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/utils_classify_by_norm_wyckoff.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/utils_classify_by_norm_wyckoff.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/utils_classify_by_norm_wyckoff.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/utils_classify_by_norm_wyckoff.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/utils_crystals.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/utils_crystals.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/utils_crystals.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/utils_crystals.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/utils_data_retrieval.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/utils_data_retrieval.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/utils_data_retrieval.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/utils_data_retrieval.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/utils_mp.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/utils_mp.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/utils_mp.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/utils_mp.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/utils_parsing.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/utils_parsing.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/utils_parsing.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/utils_parsing.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/utils_plotting.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/utils_plotting.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/utils_plotting.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/utils_plotting.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/utils_prototypes.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/utils_prototypes.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/utils_prototypes.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/utils_prototypes.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/viewer.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/viewer.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/viewer.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/viewer.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/nomad_sim/wrappers.py b/3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/wrappers.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/nomad_sim/wrappers.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/nomad_sim/wrappers.py
diff --git a/notebook/nomad_pks/nomad_sim_pks/requirements.txt b/3rdparty/nomad_pks/nomad_sim_pks/requirements.txt
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/requirements.txt
rename to 3rdparty/nomad_pks/nomad_sim_pks/requirements.txt
diff --git a/notebook/nomad_pks/nomad_sim_pks/setup.py b/3rdparty/nomad_pks/nomad_sim_pks/setup.py
similarity index 100%
rename from notebook/nomad_pks/nomad_sim_pks/setup.py
rename to 3rdparty/nomad_pks/nomad_sim_pks/setup.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/ActivateLogging.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/ActivateLogging.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/ActivateLogging.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/ActivateLogging.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/__init__.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/__init__.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/__init__.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/__init__.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/annotator.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/annotator.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/annotator.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/annotator.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/archive.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/archive.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/archive.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/archive.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/atoms2nomad.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/atoms2nomad.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/atoms2nomad.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/atoms2nomad.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/baseclasses.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/baseclasses.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/baseclasses.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/baseclasses.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/basic_meta_info.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/basic_meta_info.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/basic_meta_info.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/basic_meta_info.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/caching_backend.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/caching_backend.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/caching_backend.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/caching_backend.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/compact_sha.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/compact_sha.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/compact_sha.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/compact_sha.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/configurationreading.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/configurationreading.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/configurationreading.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/configurationreading.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/coordinate_reader.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/coordinate_reader.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/coordinate_reader.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/coordinate_reader.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/csvparsing.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/csvparsing.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/csvparsing.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/csvparsing.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/cube_reader.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/cube_reader.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/cube_reader.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/cube_reader.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/elements.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/elements.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/elements.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/elements.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/json_support.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/json_support.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/json_support.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/json_support.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/local_backend.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/local_backend.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/local_backend.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/local_backend.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/local_meta_info.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/local_meta_info.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/local_meta_info.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/local_meta_info.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/match_highlighter.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/match_highlighter.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/match_highlighter.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/match_highlighter.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/GromosTopoObjects.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/GromosTopoObjects.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/GromosTopoObjects.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/GromosTopoObjects.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/LICENSE b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/LICENSE
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/LICENSE
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/LICENSE
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/MDDataAccess.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/MDDataAccess.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/MDDataAccess.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/MDDataAccess.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/__init__.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/__init__.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/__init__.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/__init__.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/1CRN.cif b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/1CRN.cif
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/1CRN.cif
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/1CRN.cif
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/1blu.mmtf b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/1blu.mmtf
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/1blu.mmtf
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/1blu.mmtf
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/1blu.pdb b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/1blu.pdb
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/1blu.pdb
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/1blu.pdb
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/1crn.ply b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/1crn.ply
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/1crn.ply
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/1crn.ply
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/1lee.ccp4 b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/1lee.ccp4
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/1lee.ccp4
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/1lee.ccp4
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/3pqr-pot.dxbin b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/3pqr-pot.dxbin
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/3pqr-pot.dxbin
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/3pqr-pot.dxbin
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/3pqr.cns b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/3pqr.cns
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/3pqr.cns
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/3pqr.cns
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/3pqr.pqr b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/3pqr.pqr
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/3pqr.pqr
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/3pqr.pqr
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/3pqr_validation.xml b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/3pqr_validation.xml
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/3pqr_validation.xml
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/3pqr_validation.xml
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/DPDP.nc b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/DPDP.nc
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/DPDP.nc
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/DPDP.nc
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/DPDP.parm7 b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/DPDP.parm7
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/DPDP.parm7
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/DPDP.parm7
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/DPDP.pdb b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/DPDP.pdb
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/DPDP.pdb
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/DPDP.pdb
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/LICENSE b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/LICENSE
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/LICENSE
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/LICENSE
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/README.md b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/README.md
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/README.md
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/README.md
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/adrenalin.mol2 b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/adrenalin.mol2
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/adrenalin.mol2
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/adrenalin.mol2
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/adrenalin.sdf b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/adrenalin.sdf
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/adrenalin.sdf
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/adrenalin.sdf
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/ala3.dcd b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/ala3.dcd
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/ala3.dcd
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/ala3.dcd
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/ala3.pdb b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/ala3.pdb
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/ala3.pdb
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/ala3.pdb
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/ala3.psf b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/ala3.psf
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/ala3.psf
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/ala3.psf
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/betaGal.mrc b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/betaGal.mrc
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/betaGal.mrc
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/betaGal.mrc
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/esp.dx b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/esp.dx
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/esp.dx
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/esp.dx
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/esp.mol b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/esp.mol
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/esp.mol
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/esp.mol
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md.gro b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md.gro
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md.gro
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md.gro
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md.pdb b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md.pdb
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md.pdb
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md.pdb
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md.trr b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md.trr
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md.trr
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md.trr
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md.xtc b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md.xtc
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md.xtc
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md.xtc
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md_1u19.gro b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md_1u19.gro
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md_1u19.gro
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md_1u19.gro
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md_1u19.part0001.xtc b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md_1u19.part0001.xtc
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md_1u19.part0001.xtc
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md_1u19.part0001.xtc
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md_1u19.part0002.xtc b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md_1u19.part0002.xtc
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md_1u19.part0002.xtc
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md_1u19.part0002.xtc
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md_1u19.part0003.xtc b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md_1u19.part0003.xtc
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md_1u19.part0003.xtc
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md_1u19.part0003.xtc
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md_1u19.xtc b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md_1u19.xtc
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md_1u19.xtc
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md_1u19.xtc
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md_ascii_trj.gro b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md_ascii_trj.gro
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md_ascii_trj.gro
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md_ascii_trj.gro
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md_ascii_trj.pdb b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md_ascii_trj.pdb
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md_ascii_trj.pdb
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/md_data_access/test/md_ascii_trj.pdb
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/metainfo_storage/MetaData.txt b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/metainfo_storage/MetaData.txt
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/metainfo_storage/MetaData.txt
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/metainfo_storage/MetaData.txt
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/metainfo_storage/MetaInfoStorage.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/metainfo_storage/MetaInfoStorage.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/metainfo_storage/MetaInfoStorage.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/metainfo_storage/MetaInfoStorage.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/metainfo_storage/__init__.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/metainfo_storage/__init__.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/metainfo_storage/__init__.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/metainfo_storage/__init__.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/model_archive.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/model_archive.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/model_archive.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/model_archive.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/model_base.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/model_base.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/model_base.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/model_base.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/model_meta_info.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/model_meta_info.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/model_meta_info.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/model_meta_info.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/nomad_query.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/nomad_query.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/nomad_query.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/nomad_query.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/parse_streamed_dicts.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/parse_streamed_dicts.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/parse_streamed_dicts.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/parse_streamed_dicts.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/parser_backend.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/parser_backend.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/parser_backend.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/parser_backend.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/simple_parser.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/simple_parser.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/simple_parser.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/simple_parser.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/smart_parser/SmartParserCommon.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/smart_parser/SmartParserCommon.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/smart_parser/SmartParserCommon.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/smart_parser/SmartParserCommon.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/smart_parser/SmartParserDictionary.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/smart_parser/SmartParserDictionary.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/smart_parser/SmartParserDictionary.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/smart_parser/SmartParserDictionary.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/smart_parser/__init__.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/smart_parser/__init__.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/smart_parser/__init__.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/smart_parser/__init__.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/structure_types.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/structure_types.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/structure_types.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/structure_types.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/unit_conversion/__init__.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/unit_conversion/__init__.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/unit_conversion/__init__.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/unit_conversion/__init__.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/unit_conversion/constants.txt b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/unit_conversion/constants.txt
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/unit_conversion/constants.txt
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/unit_conversion/constants.txt
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/unit_conversion/unit_conversion.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/unit_conversion/unit_conversion.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/unit_conversion/unit_conversion.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/unit_conversion/unit_conversion.py
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/unit_conversion/units.txt b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/unit_conversion/units.txt
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/unit_conversion/units.txt
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/unit_conversion/units.txt
diff --git a/notebook/nomad_pks/nomadcore_pks/nomadcore/utils.py b/3rdparty/nomad_pks/nomadcore_pks/nomadcore/utils.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/nomadcore/utils.py
rename to 3rdparty/nomad_pks/nomadcore_pks/nomadcore/utils.py
diff --git a/notebook/nomad_pks/nomadcore_pks/requirements.txt b/3rdparty/nomad_pks/nomadcore_pks/requirements.txt
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/requirements.txt
rename to 3rdparty/nomad_pks/nomadcore_pks/requirements.txt
diff --git a/notebook/nomad_pks/nomadcore_pks/setup.py b/3rdparty/nomad_pks/nomadcore_pks/setup.py
similarity index 100%
rename from notebook/nomad_pks/nomadcore_pks/setup.py
rename to 3rdparty/nomad_pks/nomadcore_pks/setup.py
diff --git a/notebook/quip b/3rdparty/quip
similarity index 100%
rename from notebook/quip
rename to 3rdparty/quip
diff --git a/notebook/quip-py2 b/3rdparty/quip-py2
similarity index 100%
rename from notebook/quip-py2
rename to 3rdparty/quip-py2
diff --git a/notebook/sketchmap b/3rdparty/sketchmap
similarity index 100%
rename from notebook/sketchmap
rename to 3rdparty/sketchmap
diff --git a/notebook/spsim b/3rdparty/spsim
similarity index 100%
rename from notebook/spsim
rename to 3rdparty/spsim
diff --git a/notebook/Dockerfile b/Dockerfile
similarity index 100%
rename from notebook/Dockerfile
rename to Dockerfile
diff --git a/notebook/files/GAP_VERSION b/files/GAP_VERSION
similarity index 100%
rename from notebook/files/GAP_VERSION
rename to files/GAP_VERSION
diff --git a/notebook/files/GAP_VERSION-py2 b/files/GAP_VERSION-py2
similarity index 100%
rename from notebook/files/GAP_VERSION-py2
rename to files/GAP_VERSION-py2
diff --git a/notebook/files/GIT_VERSION b/files/GIT_VERSION
similarity index 100%
rename from notebook/files/GIT_VERSION
rename to files/GIT_VERSION
diff --git a/notebook/files/GIT_VERSION-py2 b/files/GIT_VERSION-py2
similarity index 100%
rename from notebook/files/GIT_VERSION-py2
rename to files/GIT_VERSION-py2
diff --git a/notebook/files/Makefile-py2.inc b/files/Makefile-py2.inc
similarity index 100%
rename from notebook/files/Makefile-py2.inc
rename to files/Makefile-py2.inc
diff --git a/notebook/files/Makefile.inc b/files/Makefile.inc
similarity index 100%
rename from notebook/files/Makefile.inc
rename to files/Makefile.inc
diff --git a/jupyterhub/config.yml b/jupyterhub/config.yml
deleted file mode 100644
index 988f11cd919bfd8c499d436bf7bbdf6007cd17d4..0000000000000000000000000000000000000000
--- a/jupyterhub/config.yml
+++ /dev/null
@@ -1,130 +0,0 @@
-# The keys with empty values are necessary and they are defined
-# as environmental variables and applied by the helm command.
-
-proxy:
-  secretToken: ''
-  service:
-    type: NodePort
-    nodePorts:
-      http: 31001
-  https:
-    enabled: false
-
-hub:
-  baseUrl: /jupyterhub/
-  db:
-    type: sqlite-pvc
-    pvc:
-      storageClassName: manual
-
-auth:
-  type: dummy
-  dummy:
-    password: ''
-  whitelist:
-    users:
-      - luca
-      - xiangyue
-      - markus
-      - adam
-      - test1
-      - test2
-  admin:
-    users:
-      - luca
-      - xiangyue
-      - markus
-      - adam
-
-singleuser:
-  cpu:
-    limit: 12
-    guarantee: 0.2
-  memory:
-    limit: 10G
-    guarantee: 1G
-  image:
-    name: ''
-    tag: ''
-  imagePullSecret:
-    enabled: true
-    password: ''
-    registry: ''
-    username: ''
-  initContainers:
-    - name: fix-permissions
-      image: busybox
-      imagePullPolicy: IfNotPresent
-      securityContext:
-        runAsUser: 0
-      command: [ '/bin/sh', '-c', 'chown 1000:100 /home/jovyan']
-      volumeMounts:
-        - mountPath: /home/jovyan
-          name: user-data
-  storage:
-    type: 'none'
-    extraVolumeMounts:
-      - mountPath: /home/jovyan
-        name: user-data
-      - mountPath: /home/jovyan/tutorials
-        name: tutorials
-        readOnly: true
-    extraVolumes:
-      - name: user-data
-        hostPath:
-          type: DirectoryOrCreate
-          path: /nomad/nomadlab/jupyter-notebooks/user-data/{username}
-      - name: tutorials
-        hostPath:
-          path: /nomad/nomadlab/jupyter-notebooks/tutorials
-#  defaultUrl: /notebooks/tutorials/Welcome.ipynb
-
-#  Storage using static pvc
-#  initContainers:
-#    - name: fix-permissions
-#      image: busybox
-#      imagePullPolicy: IfNotPresent
-#      securityContext:
-#        runAsUser: 0
-#      command: [ '/bin/sh', '-c', 'chown 1000:100 /home/jovyan']
-#      volumeMounts:
-#        - mountPath: /home/jovyan
-#          name: home
-#          subPath: '{username}'
-#  storage:
-#    type: 'static'
-#    static:
-#      pvcName: 'pvc-user-data'
-#      subPath: '{username}'
-#    extraVolumeMounts:
-#      - mountPath: /home/jovyan/tutorials
-#        name: tutorials
-#        readOnly: true
-#    extraVolumes:
-#      - name: tutorials
-#        hostPath:
-#          path: /nomad/nomadlab/jupyter-notebooks/tutorials
-
-prePuller:
-  hook:
-    enabled: enable
-
-scheduling:
-  userScheduler:
-    enabled: false
-  podPriority:
-    enabled: false
-  userPlaceholder:
-    enabled: false
-    replicas: 0
-  userPods:
-    nodeAffinity:
-      # matchNodePurpose valid options:
-      # - ignore
-      # - prefer (the default)
-      # - require
-      matchNodePurpose: prefer
-
-# debug:
-#   enabled: true
-  
\ No newline at end of file
diff --git a/tools/metainfo/demo_0.json b/tools/metainfo/demo_0.json
deleted file mode 100644
index 436a4ccd54836e8aae92bd8cb9215ccaa11e6889..0000000000000000000000000000000000000000
--- a/tools/metainfo/demo_0.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
-  "authors": [
-    "Ahmetcik, Emre",
-    "Ziletti, Angelo",
-    "Ouyang, Runhai",
-    "Ghiringhelli, Luca",
-    "Scheffler, Matthias"
-  ],
-  "created_at": "2017-11-13T13:56:28.375Z",
-  "description": "This tutorial shows how to find descriptive parameters (short formulas) for the classification of materials properties. As an example, we address the classification of elemental and binary systems Ax\u200b\u200bBy\u200b\u200b into metals and non metals using experimental data extracted from the SpringerMaterials data base. The method is based on the algorithm sure independence screening and sparsifying operator (SISSO), which enables to search for optimal descriptors by scanning huge feature spaces. ",
-  "editLink": "/notebook-edit/data/shared/tutorialsNew/sisso/sisso-metal-nonmetal.bkr",
-  "featured": true,
-  "isPublic": true,
-  "labels": {
-    "application_keyword": [
-      "Binaries",
-      "Metal/insulator",
-      "Classification"
-    ],
-    "application_section": [
-      "Materials property prediction"
-    ],
-    "category": [
-      "Demo"
-    ],
-    "data_analytics_method": [
-      "Compressed Sensing",
-      "SISSO"
-    ],
-    "language": [
-      "python",
-      "javascript"
-    ],
-    "platform": [
-      "beaker"
-    ],
-    "reference": [
-      "https://arxiv.org/abs/1710.03319"
-    ],
-    "visualization": [
-      "NOMAD viewer"
-    ]
-  },
-  "logicalPath": "/data/shared/tutorialsNew/sisso/sisso-metal-nonmetal.bkr",
-  "title": "Predicting the metal-insulator classification of elements and binary systems",
-  "top_of_list": false,
-  "updated_at": "2017-11-13T13:56:28.375Z",
-  "user_update": "2017-11-09",
-  "username": "tutorialsNew"
-}
\ No newline at end of file
diff --git a/tools/metainfo/demo_1.json b/tools/metainfo/demo_1.json
deleted file mode 100644
index 6d53e7990608beb99997da7a968dfa6e5e53b729..0000000000000000000000000000000000000000
--- a/tools/metainfo/demo_1.json
+++ /dev/null
@@ -1,58 +0,0 @@
-{
-  "authors": [
-    "Ahmetcik, Emre",
-    "Ziletti, Angelo",
-    "Ouyang, Runhai",
-    "Ghiringhelli, Luca",
-    "Scheffler, Matthias"
-  ],
-  "created_at": "2017-11-13T13:56:35.532Z",
-  "description": "This tutorial introduces from scratch and step by step: Compressed sensing, LASSO, and SISSO for materials property prediction",
-  "editLink": "/notebook-edit/data/shared/tutorialsNew/hands-on/hands-on-tutorial.bkr",
-  "featured": true,
-  "isPublic": true,
-  "labels": {
-    "application_keyword": [
-      "Octet binaries"
-    ],
-    "application_section": [
-      "Crystal structure prediction"
-    ],
-    "application_system": [
-      "Rock salt",
-      "Zinc blende",
-      "CsCl",
-      "CrB",
-      "NiAs"
-    ],
-    "category": [
-      "Tutorial"
-    ],
-    "data_analytics_method": [
-      "Compressed Sensing",
-      "LASSO+l0",
-      "SISSO"
-    ],
-    "language": [
-      "python",
-      "javascript"
-    ],
-    "platform": [
-      "beaker"
-    ],
-    "reference": [
-      "https://doi.org/10.1103/PhysRevLett.114.105503",
-      "https://doi.org/10.1088/1367-2630/aa57bf",
-      "https://arxiv.org/abs/1710.03319"
-    ],
-    "visualization": [
-      "NOMAD viewer"
-    ]
-  },
-  "logicalPath": "/data/shared/tutorialsNew/hands-on/hands-on-tutorial.bkr",
-  "title": "Tutorial on compressed sensing for materials property prediction",
-  "top_of_list": false,
-  "updated_at": "2017-11-13T13:56:35.532Z",
-  "user_update": "2017-09-29",
-  "username": "tutorialsNew"
-}
\ No newline at end of file
diff --git a/tools/metainfo/demo_10.json b/tools/metainfo/demo_10.json
deleted file mode 100644
index dafc2e8ee0abef9b03dfd8955bd4c04cac6c49bd..0000000000000000000000000000000000000000
--- a/tools/metainfo/demo_10.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{
-  "authors": [
-    "Poelking, Carl",
-    "Ziletti, Angelo",
-    "Ghiringhelli, Luca",
-    "Cs\u00e1nyi, G\u00e1bor"
-  ],
-  "created_at": "2017-11-13T13:56:28.355Z",
-  "description": "A tool for mapping and visualizing materials databases using generic kernel- and graph-based similarity measures together with the powerful Smooth Overlap of Atomic Positions (SOAP) descriptor for atomic environments.",
-  "editLink": "/notebook-edit/data/shared/tutorialsNew/soap-similiarity/SOAP_similarity.bkr",
-  "featured": true,
-  "isPublic": true,
-  "labels": {
-    "application_keyword": [
-      "Octet binaries",
-      "GDB molecular database"
-    ],
-    "application_section": [
-      "Crystal structure prediction"
-    ],
-    "application_system": [
-      "Rock salt",
-      "Zinc blende",
-      "GDB7"
-    ],
-    "category": [
-      "Demo"
-    ],
-    "data_analytics_method": [
-      "SOAP",
-      "Global Similarity",
-      "Glosim",
-      "Kernel Principal-Component Analysis",
-      "Kernel PCA",
-      "MultiDimensional Scaling",
-      "MDS"
-    ],
-    "language": [
-      "python",
-      "javascript"
-    ],
-    "platform": [
-      "beaker"
-    ],
-    "reference": [
-      "https://doi.org/10.1039/C6CP00415F",
-      "https://arxiv.org/abs/1601.04077"
-    ],
-    "visualization": [
-      "NOMAD viewer"
-    ]
-  },
-  "logicalPath": "/data/shared/tutorialsNew/soap-similiarity/SOAP_similarity.bkr",
-  "title": "Evaluating the (dis)similarity of crystalline, disordered, and molecular compounds",
-  "top_of_list": false,
-  "updated_at": "2017-11-13T13:56:28.355Z",
-  "user_update": "2017-05-16",
-  "username": "tutorialsNew"
-}
\ No newline at end of file
diff --git a/tools/metainfo/demo_11.json b/tools/metainfo/demo_11.json
deleted file mode 100644
index bbbfe67a926fd8f730421bcbace9cf96bf97d1a5..0000000000000000000000000000000000000000
--- a/tools/metainfo/demo_11.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
-  "authors": [
-    "Regler, Benjamin",
-    "Ghiringhelli, Luca",
-    "Scheffler, Matthias"
-  ],
-  "created_at": "2017-11-13T13:56:28.881Z",
-  "description": "In this notebook, we use the Nomad infrastructure to query a limited number of atomic data collections and to visualize them in the periodic table of elements. There are several filters that can be applied to atomic data collections and a field to select which atomic property should be visualized in the periodic table of elements.",
-  "editLink": "/notebook-edit/data/shared/tutorialsNew/periodic-table/periodic-table.bkr",
-  "featured": true,
-  "isPublic": true,
-  "labels": {
-    "application_keyword": [
-      "Atomic species"
-    ],
-    "application_section": [
-      "Atomic properties"
-    ],
-    "category": [
-      "Demo"
-    ],
-    "language": [
-      "python",
-      "javascript"
-    ],
-    "platform": [
-      "beaker"
-    ]
-  },
-  "logicalPath": "/data/shared/tutorialsNew/periodic-table/periodic-table.bkr",
-  "title": "A periodic table of elements for atomic data collections",
-  "top_of_list": false,
-  "updated_at": "2017-11-13T13:56:28.881Z",
-  "user_update": "2017-06-06",
-  "username": "tutorialsNew"
-}
\ No newline at end of file
diff --git a/tools/metainfo/demo_12.json b/tools/metainfo/demo_12.json
deleted file mode 100644
index d15111dd924e70c2f56a8d99fa109ce345191ca3..0000000000000000000000000000000000000000
--- a/tools/metainfo/demo_12.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
-  "authors": [
-    "Regler, Benjamin",
-    "Sastre, Alfonso",
-    "Mohamed, Fawzi",
-    "Ghiringhelli, Luca"
-  ],
-  "created_at": "2017-11-27T11:15:03.028Z",
-  "description": "A tutorial introduction on how to perform a query over the NOMAD Archive, by means of a light and intuitive GUI, and browse the results",
-  "editLink": "/notebook-edit/data/shared/tutorialsNew/nomad-query/nomad-query.bkr",
-  "featured": true,
-  "isPublic": true,
-  "labels": {
-    "application_section": [
-      "Archive Query"
-    ],
-    "category": [
-      "Demo"
-    ],
-    "data_analytics_method": [
-      "ElasticSearch"
-    ],
-    "language": [
-      "python",
-      "javascript"
-    ],
-    "platform": [
-      "beaker"
-    ]
-  },
-  "logicalPath": "/data/shared/tutorialsNew/nomad-query/nomad-query.bkr",
-  "title": "Querying and visualizing the content of the NOMAD Archive",
-  "top_of_list": true,
-  "updated_at": "2017-11-27T11:15:03.028Z",
-  "user_update": "2017-11-27",
-  "username": "tutorialsNew"
-}
\ No newline at end of file
diff --git a/tools/metainfo/demo_13.json b/tools/metainfo/demo_13.json
deleted file mode 100644
index bff49d0e67f3c6b00d22db6b6f00ad6f4a49114a..0000000000000000000000000000000000000000
--- a/tools/metainfo/demo_13.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
-  "authors": [
-    "Rigamonti, Santiago",
-    "Troppenz, Maria",
-    "Draxl, Claudia"
-  ],
-  "created_at": "2017-10-06T16:00:10.746Z",
-  "description": "A tool for predicting ground state configurations of binary alloys. In this tutorial, the ground state configurations of a AlNa surface alloy are found. Starting from a set of ab initio data for random configurations of the alloy, a cluster expansion is performed and the ground states are found through a configurational sampling.",
-  "editLink": "/notebook-edit/data/shared/rsant/clusterX-x1.bkr",
-  "featured": false,
-  "isPublic": true,
-  "labels": {
-    "application_keyword": [
-      "Alloys",
-      "Surfaces"
-    ],
-    "application_section": [
-      "Predicting ground-states of alloys (convex hull construction)"
-    ],
-    "application_system": [
-      "AlNa"
-    ],
-    "category": [
-      "Demo"
-    ],
-    "data_analytics_method": [
-      "Cluster Expansion"
-    ],
-    "language": [
-      "python"
-    ],
-    "platform": [
-      "beaker"
-    ]
-  },
-  "logicalPath": "/data/shared/rsant/clusterX-x1.bkr",
-  "title": "Predicting ground-states of binary alloys through cluster expansion: Example of a AlNa binary surface alloy",
-  "top_of_list": false,
-  "updated_at": "2017-10-06T16:00:10.746Z",
-  "user_update": "2017-05-15",
-  "username": "rsant"
-}
\ No newline at end of file
diff --git a/tools/metainfo/demo_14.json b/tools/metainfo/demo_14.json
deleted file mode 100644
index 58b5390123991150660d3d1dc67827d4a1b8dd86..0000000000000000000000000000000000000000
--- a/tools/metainfo/demo_14.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
-  "authors": [
-    "Rigamonti, Santiago",
-    "Troppenz, Maria",
-    "Draxl, Claudia"
-  ],
-  "created_at": "2017-10-06T16:00:48.038Z",
-  "description": "A tool for predicting ground state configurations of binary alloys. In this tutorial, the ground state configurations of a SiGe binary alloy are found. Starting from a set of ab initio data for random configurations of the alloy, a cluster expansion is performed and the ground states are found through a configurational sampling.",
-  "editLink": "/notebook-edit/data/shared/rsant/clusterX-x2.bkr",
-  "featured": true,
-  "isPublic": true,
-  "labels": {
-    "application_keyword": [
-      "Alloys"
-    ],
-    "application_section": [
-      "Predicting ground-states of alloys (convex hull construction)"
-    ],
-    "application_system": [
-      "SiGe"
-    ],
-    "category": [
-      "Demo"
-    ],
-    "data_analytics_method": [
-      "Cluster Expansion"
-    ],
-    "language": [
-      "python"
-    ],
-    "platform": [
-      "beaker"
-    ]
-  },
-  "logicalPath": "/data/shared/rsant/clusterX-x2.bkr",
-  "title": "Predicting ground-states of binary alloys through cluster expansion: Example of a SiGe binary alloy",
-  "top_of_list": false,
-  "updated_at": "2017-10-06T16:00:48.038Z",
-  "user_update": "2017-05-15",
-  "username": "rsant"
-}
\ No newline at end of file
diff --git a/tools/metainfo/demo_15.json b/tools/metainfo/demo_15.json
deleted file mode 100644
index 8b0b67489a20fc852f881b759fc49bc0a32a7e63..0000000000000000000000000000000000000000
--- a/tools/metainfo/demo_15.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
-  "authors": [
-    "Strange, Mikkel",
-    "Thygesen, Kristian S."
-  ],
-  "created_at": "2017-11-13T13:56:28.853Z",
-  "description": "Developed by .A tool that produces compositional phase diagrams. As an example we consider materials made of Li-Fe-P-O. Phase diagrams are generally useful to determine if a given material is thermodynamically stable under certain conditions such as temperature, pressure etc. In this tutorial, we consider only a compositional phase diagram at zero temperature and pressure.",
-  "editLink": "/notebook-edit/data/shared/tutorialsNew/phase-diagram/phasediagram.bkr",
-  "featured": false,
-  "isPublic": true,
-  "labels": {
-    "application_keyword": [
-      "Alloys"
-    ],
-    "application_section": [
-      "Predicting ground-states of alloys (convex hull construction)"
-    ],
-    "application_system": [
-      "LiFePO"
-    ],
-    "category": [
-      "Demo"
-    ],
-    "language": [
-      "python",
-      "javascript"
-    ],
-    "platform": [
-      "beaker"
-    ],
-    "reference": [
-      "https://doi.org/10.1021/cm702327g"
-    ]
-  },
-  "logicalPath": "/data/shared/tutorialsNew/phase-diagram/phasediagram.bkr",
-  "path": "/nomad/nomadlab/beaker-notebooks/user-data/shared/tutorialsNew/phase-diagram/phasediagram.bkr",
-  "title": "Assessing the crystal-structure stability for a material under different synthetic conditions",
-  "top_of_list": false,
-  "updated_at": "2017-11-13T13:56:28.853Z",
-  "user_update": "2017-05-15",
-  "username": "tutorialsNew"
-}
\ No newline at end of file
diff --git a/tools/metainfo/demo_16.json b/tools/metainfo/demo_16.json
deleted file mode 100644
index 24597896a5db51966b0cc60f150fdf641956e3a4..0000000000000000000000000000000000000000
--- a/tools/metainfo/demo_16.json
+++ /dev/null
@@ -1,57 +0,0 @@
-{
-  "authors": [
-    "Ziletti, Angelo",
-    "Ahmetcik, Emre",
-    "Ouyang, Runhai",
-    "Kariryaa, Ankit",
-    "Mohamed, Fawzi",
-    "Ghiringhelli, Luca",
-    "Scheffler, Matthias"
-  ],
-  "created_at": "2017-11-13T13:56:28.391Z",
-  "description": "A tool for predicting the difference in the total energy between different polymorphs for 82 octet binary compounds, which gives an indication of the stability of the material. This is accomplished by identifying a set of descriptive parameters (a descriptor) from the free-atom data for the binary atomic species comprising the material using the Sure Independent Screening (SIS) + l0-norm minimization approach.",
-  "editLink": "/notebook-edit/data/shared/tutorialsNew/sis/sis_cscl.bkr",
-  "featured": true,
-  "isPublic": true,
-  "labels": {
-    "application_keyword": [
-      "Octet binaries"
-    ],
-    "application_section": [
-      "Crystal structure prediction"
-    ],
-    "application_system": [
-      "Rock salt",
-      "Zinc blende",
-      "CsCl",
-      "CrB",
-      "NiAs"
-    ],
-    "category": [
-      "Demo"
-    ],
-    "data_analytics_method": [
-      "Compressed Sensing",
-      "SISSO"
-    ],
-    "language": [
-      "python",
-      "javascript"
-    ],
-    "platform": [
-      "beaker"
-    ],
-    "reference": [
-      "https://arxiv.org/abs/1710.03319"
-    ],
-    "visualization": [
-      "NOMAD viewer"
-    ]
-  },
-  "logicalPath": "/data/shared/tutorialsNew/sis/sis_cscl.bkr",
-  "title": "Predicting energy differences between crystal structures",
-  "top_of_list": false,
-  "updated_at": "2017-11-13T13:56:28.391Z",
-  "user_update": "2017-10-16",
-  "username": "tutorialsNew"
-}
\ No newline at end of file
diff --git a/tools/metainfo/demo_17.json b/tools/metainfo/demo_17.json
deleted file mode 100644
index c6225e578324f308d75909b2ff00055db1ee45a1..0000000000000000000000000000000000000000
--- a/tools/metainfo/demo_17.json
+++ /dev/null
@@ -1,55 +0,0 @@
-{
-  "authors": [
-    "Ziletti, Angelo",
-    "Ahmetcik, Emre",
-    "Ouyang, Runhai",
-    "Kariryaa, Ankit",
-    "Mohamed, Fawzi",
-    "Ghiringhelli, Luca",
-    "Scheffler, Matthias"
-  ],
-  "created_at": "2017-11-13T13:56:35.502Z",
-  "description": "A tool for predicting the difference in the total energy between different polymorphs for 82 octet binary compounds, which gives an indication of the stability of the material. This is accomplished by identifying a set of descriptive parameters (a descriptor) from the free-atom data for the binary atomic species comprising the material using LASSO + l0-norm minimization approach.",
-  "editLink": "/notebook-edit/data/shared/tutorialsNew/lasso/LASSO_L0.bkr",
-  "featured": false,
-  "isPublic": true,
-  "labels": {
-    "application_keyword": [
-      "Octet binaries"
-    ],
-    "application_section": [
-      "Crystal structure prediction"
-    ],
-    "application_system": [
-      "Rock salt",
-      "Zinc blende"
-    ],
-    "category": [
-      "Demo"
-    ],
-    "data_analytics_method": [
-      "Compressed Sensing",
-      "LASSO+l0"
-    ],
-    "language": [
-      "python",
-      "javascript"
-    ],
-    "platform": [
-      "beaker"
-    ],
-    "reference": [
-      "https://doi.org/10.1103/PhysRevLett.114.105503",
-      "https://doi.org/10.1088/1367-2630/aa57bf"
-    ],
-    "visualization": [
-      "NOMAD viewer"
-    ]
-  },
-  "logicalPath": "/data/shared/tutorialsNew/lasso/LASSO_L0.bkr",
-  "title": "Predicting energy differences between crystal structures. Smaller feature spaces.",
-  "top_of_list": false,
-  "updated_at": "2017-11-13T13:56:35.502Z",
-  "user_update": "2017-05-10",
-  "username": "tutorialsNew"
-}
\ No newline at end of file
diff --git a/tools/metainfo/demo_18.json b/tools/metainfo/demo_18.json
deleted file mode 100644
index 51e80f0538428be5797535662fc1fc9aacdc7692..0000000000000000000000000000000000000000
--- a/tools/metainfo/demo_18.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{
-  "authors": [
-    "Ziletti, Angelo",
-    "Kariryaa, Ankit",
-    "Mohamed, Fawzi",
-    "Ghiringhelli, Luca",
-    "Scheffler, Matthias"
-  ],
-  "created_at": "2017-11-13T13:56:41.082Z",
-  "description": "A tool that produces two-dimensional structure maps for octet binary compounds, starting from a high-dimensional set of coordinates (features) that identify each material (data point), based on free-atom data of the atomic species constituting the binary material.",
-  "editLink": "/notebook-edit/data/shared/tutorialsNew/embedding/Embedding.bkr",
-  "featured": true,
-  "isPublic": true,
-  "labels": {
-    "application_keyword": [
-      "Octet binaries"
-    ],
-    "application_section": [
-      "Crystal structure prediction"
-    ],
-    "application_system": [
-      "Rock salt",
-      "Zinc blende"
-    ],
-    "category": [
-      "Demo"
-    ],
-    "data_analytics_method": [
-      "Dimensionality Reduction",
-      "Principal-Component Analysis",
-      "PCA",
-      "MultiDimensional Scaling",
-      "MDS",
-      "t-Distributed Stochastic Neighbor Embedding",
-      "t-SNE"
-    ],
-    "language": [
-      "python",
-      "javascript"
-    ],
-    "platform": [
-      "beaker"
-    ],
-    "visualization": [
-      "NOMAD viewer"
-    ]
-  },
-  "logicalPath": "/data/shared/tutorialsNew/embedding/Embedding.bkr",
-  "title": "Building structure maps for crystal-structure classification",
-  "top_of_list": false,
-  "updated_at": "2017-11-13T13:56:41.082Z",
-  "user_update": "2017-05-12",
-  "username": "tutorialsNew"
-}
\ No newline at end of file
diff --git a/tools/metainfo/demo_19.json b/tools/metainfo/demo_19.json
deleted file mode 100644
index cdc12c9613c8a6d655fa980c0e49cb53ec5ce8a7..0000000000000000000000000000000000000000
--- a/tools/metainfo/demo_19.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
-  "authors": [
-    "Ziletti, Angelo",
-    "Kariryaa, Ankit",
-    "Mohamed, Fawzi",
-    "Ghiringhelli, Luca",
-    "Scheffler, Matthias"
-  ],
-  "created_at": "2017-11-13T13:56:41.082Z",
-  "description": "This Notebook allows to retrieve your query results from the NOMAD Archive, and subsequently perform state-of-the-art machine learning analysis on this dataset. Given a user-specified query, the structures of the top-5 space groups (for crystals) or point groups (for molecules) within this dataset are returned, and then a structural-similarity model is built on-the-fly.\n",
-  "editLink": "/notebook-edit/data/shared/tutorialsNew/custom-analytics-example/custom-analytics-example.bkr",
-  "featured": true,
-  "isPublic": true,
-  "labels": {
-    "application_keyword": [
-      "Query usage"
-    ],
-    "application_section": [
-      "Crystal structure prediction"
-    ],
-    "category": [
-      "Tutorial"
-    ],
-    "data_analytics_method": [
-      "SOAP",
-      "Global Similarity",
-      "Glosim",
-      "Kernel Principal-Component Analysis",
-      "Kernel PCA",
-      "MultiDimensional Scaling",
-      "MDS"
-    ],
-    "language": [
-      "python",
-      "javascript"
-    ],
-    "platform": [
-      "beaker"
-    ],
-    "visualization": [
-      "NOMAD viewer"
-    ]
-  },
-  "logicalPath": "/data/shared/tutorialsNew/custom-analytics-example/custom-analytics-example.bkr",
-  "title": "On-the-fly data analysis for the NOMAD Archive",
-  "top_of_list": false,
-  "updated_at": "2017-11-13T13:56:41.082Z",
-  "user_update": "2018-01-31",
-  "username": "tutorialsNew"
-}
\ No newline at end of file
diff --git a/tools/metainfo/demo_2.json b/tools/metainfo/demo_2.json
deleted file mode 100644
index 392f89ec5bb26dd456ea4a9adc9050dd3b605538..0000000000000000000000000000000000000000
--- a/tools/metainfo/demo_2.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
-  "authors": [
-    "Bieniek, Bj\u00f6rn",
-    "Strange, Mikkel",
-    "Carbogno, Christian"
-  ],
-  "created_at": "2017-11-13T13:56:39.770Z",
-  "description": "A set of tools to analyze the error in electronic structure calculations due to the choice of numerical settings. We use the NOMAD infrastructure to systematically investigate the deviances in total and relative energies as function of typical settings for basis sets, k-grids, etc. for 71 elemental and 81 binary solids in four different electronic-structure codes.",
-  "editLink": "/notebook-edit/data/shared/tutorialsNew/errorbars/errorbars_html.bkr",
-  "featured": true,
-  "isPublic": true,
-  "labels": {
-    "application_keyword": [
-      "Binaries",
-      "Elemental solids"
-    ],
-    "application_section": [
-      "Error estimates"
-    ],
-    "category": "Demo",
-    "data_analytics_method": [
-      "Linear Least-squares Regression"
-    ],
-    "language": [
-      "python",
-      "javascript"
-    ],
-    "platform": "beaker"
-  },
-  "logicalPath": "/data/shared/tutorialsNew/errorbars/errorbars_html.bkr",
-  "title": "Error estimates from high-accuracy electronic structure reference calculations",
-  "top_of_list": true,
-  "updated_at": "2017-11-13T13:56:39.770Z",
-  "user_update": "2017-09-28",
-  "username": "tutorialsNew"
-}
\ No newline at end of file
diff --git a/tools/metainfo/demo_20.json b/tools/metainfo/demo_20.json
deleted file mode 100644
index 9f8cf3589f9cd9187ee6bfac78928b52e571b5a1..0000000000000000000000000000000000000000
--- a/tools/metainfo/demo_20.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
-  "authors": [
-    "Ziletti, Angelo",
-    "Kumar, Devinder",
-    "Scheffler, Matthias",
-    "Ghiringhelli, Luca"
-  ],
-  "created_at": "2019-01-23T11:56:28.881Z",
-  "description": "In this notebook, we use a machine learning-based approach to automatically classify structures by crystal symmetry; first, we represent crystals by a diffraction image, then use a neural network for classification. The notebook allows to reproduce the main results of: A. Ziletti, D. Kumar, M. Scheffler and L. M. Ghiringhelli, Nature Communications 9, 2775 (2018)",
-  "editLink": "/beaker/cM/start/home/beaker/tutorials/insightful_class_deep_learning_nature_comm2018.bkr?image=analytics-toolkit.nomad-coe.eu:5509/ziletti/face-of-crystals-2017:v2.0.3-squashed",
-  "featured": true,
-  "isPublic": true,
-  "labels": {
-    "application_keyword": [
-      "Crystals",
-      "Structure"
-    ],
-    "application_section": [
-      "Structure classification",
-      "Solids"
-    ],
-    "category": [
-      "Demo"
-    ],
-    "data_analytics_method": [
-      "Neural networks",
-      "Deep learning"
-    ],
-    "language": [
-      "python",
-      "javascript"
-    ],
-    "platform": [
-      "beaker"
-    ]
-  },
-  "logicalPath": "/beaker/cM/start/home/beaker/tutorials/insightful_class_deep_learning_nature_comm2018.bkr?image=analytics-toolkit.nomad-coe.eu:5509/ziletti/face-of-crystals-2017:v2.0.3-squashed",
-  "title": "Insightful classification of crystal structures using deep learning",
-  "top_of_list": false,
-  "updated_at": "2019-01-23T11:56:28.881Z",
-  "user_update": "2019-01-23",
-  "username": "tutorialsNew"
-}
\ No newline at end of file
diff --git a/tools/metainfo/demo_3.json b/tools/metainfo/demo_3.json
deleted file mode 100644
index ba04cd3814047f4e1cb95ecbfe1c73e3bb857893..0000000000000000000000000000000000000000
--- a/tools/metainfo/demo_3.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
-  "authors": [
-    "Boley, Mario",
-    "Goldsmith, Bryan",
-    "Kariryaa, Ankit",
-    "Ghiringhelli, Luca"
-  ],
-  "created_at": "",
-  "description": "In this tutorial, Subgroup Discovery (SGD) is used to identify simple descriptors for predicting whether an octet binary material crystallizes in rock-salt or zinc-blende crystal structures. SGD is a data-mining technique that is used to identify and describe local patterns (subgroups) in complex data. SGD will mine the data for subgroups that optimize the utility functions and at the same time cover (contain) as many materials as possible. The groups are described by combining one or more Boolean statements on the features (e.g., \u201cthe electron affinity of atom A (the cation) is smaller than 1.00\u201d).",
-  "editLink": "/Creedo/index.htm",
-  "featured": true,
-  "isPublic": true,
-  "labels": {
-    "application_keywords": [
-      "Octet binaries",
-      "Clusters"
-    ],
-    "application_section": [
-      "Crystal structure prediction"
-    ],
-    "application_system": [
-      "Rock salt",
-      "Zinc blende",
-      "Gold clusters"
-    ],
-    "category": [
-      "Interactive Tour"
-    ],
-    "data_analytics_method": [
-      "Subgroup Discovery"
-    ],
-    "platform": [
-      "creedo"
-    ]
-  },
-  "logicalPath": "/Creedo/cM/start/",
-  "title": "Discovering simple descriptors for crystal-structure classification",
-  "top_of_list": false,
-  "updated_at": "",
-  "user_update": "2017-09-15",
-  "username": "tutorialsNew"
-}
\ No newline at end of file
diff --git a/tools/metainfo/demo_4.json b/tools/metainfo/demo_4.json
deleted file mode 100644
index 215332e20caf72f26ccfccb3113dc93b7afe1d6f..0000000000000000000000000000000000000000
--- a/tools/metainfo/demo_4.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  "authors": [
-    "Christopher Bartel",
-    "Christopher Sutton",
-    "Bryan Goldsmith",
-    "Runhai Ouyang",
-    "Charles Musgrave",
-    "Luca Ghiringhelli",
-    "Matthias Scheffler"
-  ],
-  "created_at": "",
-  "description": "A tool for predicting the probability that a given chemical formula will crystallize in a perovskite structure. This prediction is made using a newly developed tolerance factor (descriptor) which makes predictions based on automatically assigned ionic radii and oxidation states. Within this notebook, you can also visualize the probability of forming perovskite for any single or double perovskite formula as a function of the cationic radii.",
-  "editLink": "/notebook-edit/data/shared/tutorialsNew/perovskite_prediction_double/perovskite_prediction_double.bkr",
-  "featured": true,
-  "isPublic": true,
-  "labels": {
-    "application_keyword": [
-      "perovskites",
-      "stability",
-      "classification"
-    ],
-    "application_section": [
-      "Crystal structure prediction"
-    ],
-    "category": [
-      "Demo"
-    ],
-    "data_analytics_method": [
-      "SISSO"
-    ],
-    "language": [
-      "python",
-      "javascript"
-    ],
-    "platform": [
-      "beaker"
-    ],
-    "reference": [
-      "arXiv preprint arXiv:1801.07700"
-    ],
-    "visualization": [
-      ""
-    ]
-  },
-  "logicalPath": "/data/shared/tutorials/perovskite_prediction_double/perovskite_prediction_double.bkr",
-  "title": "New tolerance factor for perovskite stability",
-  "top_of_list": false,
-  "updated_at": "",
-  "user_update": "November 12, 2018",
-  "username": "tutorialsNew"
-}
\ No newline at end of file
diff --git a/tools/metainfo/demo_5.json b/tools/metainfo/demo_5.json
deleted file mode 100644
index b2e04b0fda2734fe68b1400483939b31a956de9e..0000000000000000000000000000000000000000
--- a/tools/metainfo/demo_5.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
-  "authors": [
-    "Cs\u00e1nyi, G\u00e1bor",
-    "Kermode, James R."
-  ],
-  "created_at": "",
-  "description": "In this tutorial, we will use Gaussian process regression, GPR (or equivalently, Kernel Ridge Regression, KRR) to train and predict charges of atoms in small organic molecules.",
-  "editLink": "/jupyter/cM/start/data/shared/afekete/tutorial/learning_atomic_charges.ipynb",
-  "featured": true,
-  "isPublic": true,
-  "labels": {
-    "application_keyword": [
-      "GDB molecular database"
-    ],
-    "application_section": [
-      "Organic molecules"
-    ],
-    "application_system": [
-      "GDB7"
-    ],
-    "category": [
-      "Tutorial"
-    ],
-    "data_analytics_method": [
-      "Gaussian-Process Regression",
-      "GPR",
-      "Kernel Ridge Regression",
-      "KRR"
-    ],
-    "platform": [
-      "jupyter"
-    ]
-  },
-  "title": "Learning atomic charges",
-  "top_of_list": false,
-  "updated_at": "",
-  "user_update": "2017-09-29",
-  "username": "tutorialsNew"
-}
\ No newline at end of file
diff --git a/tools/metainfo/demo_6.json b/tools/metainfo/demo_6.json
deleted file mode 100644
index 4e9a525c2d92049184f035fdab590e92fcb757fd..0000000000000000000000000000000000000000
--- a/tools/metainfo/demo_6.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
-  "authors": [
-    "Fekete, \u00c1d\u00e1m",
-    "Glielmo, Aldo",
-    "Stella, Martina",
-    "De Vita, Alessandro"
-  ],
-  "created_at": "2017-11-13T13:56:37.859Z",
-  "description": "This tutorial makes use of Gaussian process (GP) regression in order to assess the complexity of a given system. This can be defined as the data set size necessary to the GP to predict a target property (eg. atomic forces, total energy of a configuration). The currently available data is the atomic forces in the mono-crystalline silicon at 300K, 1200K and 3000K.",
-  "editLink": "/notebook-edit/data/shared/tutorialsNew/ff-fit/FF-fit.bkr",
-  "featured": true,
-  "isPublic": true,
-  "labels": {
-    "application_keyword": [
-      "Elemental solids"
-    ],
-    "application_section": [
-      "Materials property prediction"
-    ],
-    "application_system": [
-      "monocrystalline Si",
-      "Si"
-    ],
-    "category": [
-      "Demo"
-    ],
-    "data_analytics_method": [
-      "Gaussian-Process Regression",
-      "GPR"
-    ],
-    "language": [
-      "python",
-      "javascript"
-    ],
-    "platform": [
-      "beaker"
-    ],
-    "reference": [
-      "https://arxiv.org/abs/1611.03877"
-    ]
-  },
-  "logicalPath": "/data/shared/tutorialsNew/ff-fit/FF-fit.bkr",
-  "title": "Complexity estimator for accurate-forces learning",
-  "top_of_list": false,
-  "updated_at": "2017-11-13T13:56:37.859Z",
-  "user_update": "2017-05-15",
-  "username": "tutorialsNew"
-}
\ No newline at end of file
diff --git a/tools/metainfo/demo_7.json b/tools/metainfo/demo_7.json
deleted file mode 100644
index 1179acf23b847ca0af1e9e1ea6c7d2d0e02f273e..0000000000000000000000000000000000000000
--- a/tools/metainfo/demo_7.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
-  "authors": [
-    "Fekete, \u00c1d\u00e1m",
-    "Stella, Martina",
-    "Lambert, Henry",
-    "De Vita, Alessandro",
-    "Cs\u00e1nyi, G\u00e1bor"
-  ],
-  "created_at": "",
-  "description": "In this tutorial we will be using a machine learning method (clustering) to analyse results of Grain Boundary (GB) calculations of alpha-iron. Along the way we will learn about different methods to describe local atomic environment in order to calculate properties of GBs. We will use these properties to separate the different regions of the GB using clustering methods. Finally we will determine how the energy of the GB is changing according to the angle difference of the regions.",
-  "editLink": "/jupyterhub/hub/user-redirect/notebooks/tutorials/grain_boundaries/grain_boundaries.ipynb",
-  "featured": true,
-  "isPublic": true,
-  "labels": {
-    "application_keyword": [
-      "Grain boundaries"
-    ],
-    "application_section": [
-      "Materials property prediction"
-    ],
-    "application_system": [
-      "Iron"
-    ],
-    "category": [
-      "Tutorial"
-    ],
-    "data_analytics_method": [
-      "Clustering"
-    ],
-    "platform": [
-      "jupyter"
-    ]
-  },
-  "title": "Grain boundaries of alpha-Fe tutorial",
-  "top_of_list": false,
-  "updated_at": "",
-  "user_update": "2017-09-29",
-  "username": "tutorialsNew"
-}
\ No newline at end of file
diff --git a/tools/metainfo/demo_8.json b/tools/metainfo/demo_8.json
deleted file mode 100644
index eb5fce3c8936795637550c9ec3fd3f762c4eb25a..0000000000000000000000000000000000000000
--- a/tools/metainfo/demo_8.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
-  "authors": [
-    "Himanen, Lauri",
-    "Huhs, Georg",
-    "Hurtado, Iker",
-    "Kuban, Martin",
-    "Vancea, Ioan",
-    "Draxl, Claudia"
-  ],
-  "created_at": "2018-09-22T11:15:03.028Z",
-  "description": "This tutorial deals mainly with accessing the NOMAD Encyclopedia API (searching for materials, extracting data for specific materials and calculations). It also shows how code developed for the Encyclopedia GUI can be embedded into client applications. ",
-  "editLink": "/notebook-edit/data/shared/tutorialsNew/encyclopedia/encyclopedia.bkr",
-  "featured": true,
-  "isPublic": true,
-  "labels": {
-    "application_section": [
-      "Encyclopedia"
-    ],
-    "category": [
-      "Demo"
-    ],
-    "language": [
-      "python",
-      "javascript"
-    ],
-    "platform": [
-      "beaker"
-    ]
-  },
-  "logicalPath": "/data/shared/ghuhs/encyclopedia.bkr",
-  "title": "Encyclopedia API and code usage",
-  "top_of_list": true,
-  "updated_at": "2018-09-22T11:15:03.028Z",
-  "user_update": "2018-09-22",
-  "username": "tutorialsNew"
-}
\ No newline at end of file
diff --git a/tools/metainfo/demo_9.json b/tools/metainfo/demo_9.json
deleted file mode 100644
index 0e40500d96db44d8d085c154c39ba1d8d569d9f1..0000000000000000000000000000000000000000
--- a/tools/metainfo/demo_9.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
-  "authors": [
-    "Mera Acosta, Carlos",
-    "Ahmetcik, Emre",
-    "Carbogno, Christian",
-    "Ouyang, Runhai",
-    "Fazzio, Adalberto",
-    "Ghiringhelli, Luca",
-    "Scheffler, Matthias"
-  ],
-  "created_at": "2017-11-13T13:56:28.375Z",
-  "description": "This tutorial shows how to find descriptive parameters (short formulas) for the prediction of topological phase transitions. As an example, we address the topological classification of two-dimensional functionalized honeycomb-lattice materials, which are formally described by the Z2 topological invariant, i.e., Z2=0 for trivial (normal) insulators and Z2=1 for two-dimensional topological insulators (quantum spin Hall insulators). Using a recently developed machine learning based on compressed sensing, we then derive a map of these materials, in which metals, trivial insulators, and quantum spin Hall insulators are separated in different spatial domains. The axes of this map are given by a physically meaningful descriptor, i.e., a non-linear analytic function that only depends on the properties of the material's constituent atoms, but not on the properties of the material itself. The method is based on the algorithm sure independence screening and sparsifying operator (SISSO), which enables to search for optimal descriptors by scanning huge feature spaces.\n",
-  "editLink": "/notebook-edit/data/shared/tutorialsNew/topological-quantum-phases/QSHI_trivial.bkr",
-  "featured": true,
-  "isPublic": true,
-  "labels": {
-    "application_keyword": [
-      "Qunatum Phase",
-      "Topological insulator",
-      "Classification"
-    ],
-    "application_section": [
-      "Materials property prediction"
-    ],
-    "category": [
-      "Demo"
-    ],
-    "data_analytics_method": [
-      "Compressed Sensing",
-      "SISSO"
-    ],
-    "language": [
-      "python",
-      "javascript"
-    ],
-    "platform": [
-      "beaker"
-    ],
-    "reference": [
-      "https://arxiv.org/abs/1710.03319"
-    ],
-    "visualization": [
-      "NOMAD viewer"
-    ]
-  },
-  "logicalPath": "/data/shared/tutorialsNew/topological-quantum-phases/QSHI_trivial.bkr",
-  "title": "Prediction of topological quantum phase transitions",
-  "top_of_list": false,
-  "updated_at": "2017-11-13T13:56:28.375Z",
-  "user_update": "2018-01-30",
-  "username": "tutorialsNew"
-}
\ No newline at end of file
diff --git a/tools/metainfo/demos.json b/tools/metainfo/demos.json
deleted file mode 100644
index c0c74c605321121c76ae46f2ca639c2df3f3e8df..0000000000000000000000000000000000000000
--- a/tools/metainfo/demos.json
+++ /dev/null
@@ -1,1055 +0,0 @@
-{
-  "data": [
-    {
-      "attributes": {
-        "authors": [
-          "Ahmetcik, Emre",
-          "Ziletti, Angelo",
-          "Ouyang, Runhai",
-          "Ghiringhelli, Luca",
-          "Scheffler, Matthias"
-        ],
-        "created_at": "2017-11-13T13:56:28.375Z",
-        "description": "This tutorial shows how to find descriptive parameters (short formulas) for the classification of materials properties. As an example, we address the classification of elemental and binary systems Ax\u200b\u200bBy\u200b\u200b into metals and non metals using experimental data extracted from the SpringerMaterials data base. The method is based on the algorithm sure independence screening and sparsifying operator (SISSO), which enables to search for optimal descriptors by scanning huge feature spaces. ",
-        "editLink": "/notebook-edit/data/shared/tutorialsNew/sisso/sisso-metal-nonmetal.bkr",
-        "featured": true,
-        "isPublic": true,
-        "labels": {
-          "application_keyword": [
-            "Binaries",
-            "Metal/insulator",
-            "Classification"
-          ],
-          "application_section": [
-            "Materials property prediction"
-          ],
-          "category": [
-            "Demo"
-          ],
-          "data_analytics_method": [
-            "Compressed Sensing",
-            "SISSO"
-          ],
-          "language": [
-            "python",
-            "javascript"
-          ],
-          "platform": [
-            "beaker"
-          ],
-          "reference": [
-            "https://arxiv.org/abs/1710.03319"
-          ],
-          "visualization": [
-            "NOMAD viewer"
-          ]
-        },
-        "logicalPath": "/data/shared/tutorialsNew/sisso/sisso-metal-nonmetal.bkr",
-        "title": "Predicting the metal-insulator classification of elements and binary systems",
-        "top_of_list": false,
-        "updated_at": "2017-11-13T13:56:28.375Z",
-        "user_update": "2017-11-09",
-        "username": "tutorialsNew"
-      },
-      "id": "5a09a48480996e0031366351",
-      "type": "demos"
-    },
-    {
-      "attributes": {
-        "authors": [
-          "Ahmetcik, Emre",
-          "Ziletti, Angelo",
-          "Ouyang, Runhai",
-          "Ghiringhelli, Luca",
-          "Scheffler, Matthias"
-        ],
-        "created_at": "2017-11-13T13:56:35.532Z",
-        "description": "This tutorial introduces from scratch and step by step: Compressed sensing, LASSO, and SISSO for materials property prediction",
-        "editLink": "/notebook-edit/data/shared/tutorialsNew/hands-on/hands-on-tutorial.bkr",
-        "featured": true,
-        "isPublic": true,
-        "labels": {
-          "application_keyword": [
-            "Octet binaries"
-          ],
-          "application_section": [
-            "Crystal structure prediction"
-          ],
-          "application_system": [
-            "Rock salt",
-            "Zinc blende",
-            "CsCl",
-            "CrB",
-            "NiAs"
-          ],
-          "category": [
-            "Tutorial"
-          ],
-          "data_analytics_method": [
-            "Compressed Sensing",
-            "LASSO+l0",
-            "SISSO"
-          ],
-          "language": [
-            "python",
-            "javascript"
-          ],
-          "platform": [
-            "beaker"
-          ],
-          "reference": [
-            "https://doi.org/10.1103/PhysRevLett.114.105503",
-            "https://doi.org/10.1088/1367-2630/aa57bf",
-            "https://arxiv.org/abs/1710.03319"
-          ],
-          "visualization": [
-            "NOMAD viewer"
-          ]
-        },
-        "logicalPath": "/data/shared/tutorialsNew/hands-on/hands-on-tutorial.bkr",
-        "title": "Tutorial on compressed sensing for materials property prediction",
-        "top_of_list": false,
-        "updated_at": "2017-11-13T13:56:35.532Z",
-        "user_update": "2017-09-29",
-        "username": "tutorialsNew"
-      },
-      "id": "5a09a48380996e0031366349",
-      "type": "demos"
-    },
-    {
-      "attributes": {
-        "authors": [
-          "Bieniek, Bj\u00f6rn",
-          "Strange, Mikkel",
-          "Carbogno, Christian"
-        ],
-        "created_at": "2017-11-13T13:56:39.770Z",
-        "description": "A set of tools to analyze the error in electronic structure calculations due to the choice of numerical settings. We use the NOMAD infrastructure to systematically investigate the deviances in total and relative energies as function of typical settings for basis sets, k-grids, etc. for 71 elemental and 81 binary solids in four different electronic-structure codes.",
-        "editLink": "/notebook-edit/data/shared/tutorialsNew/errorbars/errorbars_html.bkr",
-        "featured": true,
-        "isPublic": true,
-        "labels": {
-          "application_keyword": [
-            "Binaries",
-            "Elemental solids"
-          ],
-          "application_section": [
-            "Error estimates"
-          ],
-          "category": "Demo",
-          "data_analytics_method": [
-            "Linear Least-squares Regression"
-          ],
-          "language": [
-            "python",
-            "javascript"
-          ],
-          "platform": "beaker"
-        },
-        "logicalPath": "/data/shared/tutorialsNew/errorbars/errorbars_html.bkr",
-        "title": "Error estimates from high-accuracy electronic structure reference calculations",
-        "top_of_list": true,
-        "updated_at": "2017-11-13T13:56:39.770Z",
-        "user_update": "2017-09-28",
-        "username": "tutorialsNew"
-      },
-      "id": "5a09a48280996e0031366345",
-      "type": "demos"
-    },
-    {
-      "attributes": {
-        "authors": [
-          "Boley, Mario",
-          "Goldsmith, Bryan",
-          "Kariryaa, Ankit",
-          "Ghiringhelli, Luca"
-        ],
-        "created_at": "",
-        "description": "In this tutorial, Subgroup Discovery (SGD) is used to identify simple descriptors for predicting whether an octet binary material crystallizes in rock-salt or zinc-blende crystal structures. SGD is a data-mining technique that is used to identify and describe local patterns (subgroups) in complex data. SGD will mine the data for subgroups that optimize the utility functions and at the same time cover (contain) as many materials as possible. The groups are described by combining one or more Boolean statements on the features (e.g., \u201cthe electron affinity of atom A (the cation) is smaller than 1.00\u201d).",
-        "editLink": "/Creedo/index.htm",
-        "featured": true,
-        "isPublic": true,
-        "labels": {
-          "application_keywords": [
-            "Octet binaries",
-            "Clusters"
-          ],
-          "application_section": [
-            "Crystal structure prediction"
-          ],
-          "application_system": [
-            "Rock salt",
-            "Zinc blende",
-            "Gold clusters"
-          ],
-          "category": [
-            "Interactive Tour"
-          ],
-          "data_analytics_method": [
-            "Subgroup Discovery"
-          ],
-          "platform": [
-            "creedo"
-          ]
-        },
-        "logicalPath": "/Creedo/cM/start/",
-        "title": "Discovering simple descriptors for crystal-structure classification",
-        "top_of_list": false,
-        "updated_at": "",
-        "user_update": "2017-09-15",
-        "username": "tutorialsNew"
-      },
-      "id": "creedoMain",
-      "type": "demos"
-    },
-    {
-      "attributes": {
-        "authors": [
-          "Christopher Bartel",
-          "Christopher Sutton",
-          "Bryan Goldsmith",
-          "Runhai Ouyang",
-          "Charles Musgrave",
-          "Luca Ghiringhelli",
-          "Matthias Scheffler"
-        ],
-        "created_at": "",
-        "description": "A tool for predicting the probability that a given chemical formula will crystallize in a perovskite structure. This prediction is made using a newly developed tolerance factor (descriptor) which makes predictions based on automatically assigned ionic radii and oxidation states. Within this notebook, you can also visualize the probability of forming perovskite for any single or double perovskite formula as a function of the cationic radii.",
-        "editLink": "/notebook-edit/data/shared/tutorialsNew/perovskite_prediction_double/perovskite_prediction_double.bkr",
-        "featured": true,
-        "isPublic": true,
-        "labels": {
-          "application_keyword": [
-            "perovskites",
-            "stability",
-            "classification"
-          ],
-          "application_section": [
-            "Crystal structure prediction"
-          ],
-          "category": [
-            "Demo"
-          ],
-          "data_analytics_method": [
-            "SISSO"
-          ],
-          "language": [
-            "python",
-            "javascript"
-          ],
-          "platform": [
-            "beaker"
-          ],
-          "reference": [
-            "arXiv preprint arXiv:1801.07700"
-          ],
-          "visualization": [
-            ""
-          ]
-        },
-        "logicalPath": "/data/shared/tutorials/perovskite_prediction_double/perovskite_prediction_double.bkr",
-        "title": "New tolerance factor for perovskite stability",
-        "top_of_list": false,
-        "updated_at": "",
-        "user_update": "November 12, 2018",
-        "username": "tutorialsNew"
-      },
-      "id": "",
-      "type": "demos"
-    },
-    {
-      "attributes": {
-        "authors": [
-          "Cs\u00e1nyi, G\u00e1bor",
-          "Kermode, James R."
-        ],
-        "created_at": "",
-        "description": "In this tutorial, we will use Gaussian process regression, GPR (or equivalently, Kernel Ridge Regression, KRR) to train and predict charges of atoms in small organic molecules.",
-        "editLink": "/jupyter/cM/start/data/shared/afekete/tutorial/learning_atomic_charges.ipynb",
-        "featured": true,
-        "isPublic": true,
-        "labels": {
-          "application_keyword": [
-            "GDB molecular database"
-          ],
-          "application_section": [
-            "Organic molecules"
-          ],
-          "application_system": [
-            "GDB7"
-          ],
-          "category": [
-            "Tutorial"
-          ],
-          "data_analytics_method": [
-            "Gaussian-Process Regression",
-            "GPR",
-            "Kernel Ridge Regression",
-            "KRR"
-          ],
-          "platform": [
-            "jupyter"
-          ]
-        },
-        "title": "Learning atomic charges",
-        "top_of_list": false,
-        "updated_at": "",
-        "user_update": "2017-09-29",
-        "username": "tutorialsNew"
-      },
-      "id": "/atomic-charges/learning_atomic_charges.demoinfo.yaml",
-      "type": "demos"
-    },
-    {
-      "attributes": {
-        "authors": [
-          "Fekete, \u00c1d\u00e1m",
-          "Glielmo, Aldo",
-          "Stella, Martina",
-          "De Vita, Alessandro"
-        ],
-        "created_at": "2017-11-13T13:56:37.859Z",
-        "description": "This tutorial makes use of Gaussian process (GP) regression in order to assess the complexity of a given system. This can be defined as the data set size necessary to the GP to predict a target property (eg. atomic forces, total energy of a configuration). The currently available data is the atomic forces in the mono-crystalline silicon at 300K, 1200K and 3000K.",
-        "editLink": "/notebook-edit/data/shared/tutorialsNew/ff-fit/FF-fit.bkr",
-        "featured": true,
-        "isPublic": true,
-        "labels": {
-          "application_keyword": [
-            "Elemental solids"
-          ],
-          "application_section": [
-            "Materials property prediction"
-          ],
-          "application_system": [
-            "monocrystalline Si",
-            "Si"
-          ],
-          "category": [
-            "Demo"
-          ],
-          "data_analytics_method": [
-            "Gaussian-Process Regression",
-            "GPR"
-          ],
-          "language": [
-            "python",
-            "javascript"
-          ],
-          "platform": [
-            "beaker"
-          ],
-          "reference": [
-            "https://arxiv.org/abs/1611.03877"
-          ]
-        },
-        "logicalPath": "/data/shared/tutorialsNew/ff-fit/FF-fit.bkr",
-        "title": "Complexity estimator for accurate-forces learning",
-        "top_of_list": false,
-        "updated_at": "2017-11-13T13:56:37.859Z",
-        "user_update": "2017-05-15",
-        "username": "tutorialsNew"
-      },
-      "id": "5a09a48280996e0031366347",
-      "type": "demos"
-    },
-    {
-      "attributes": {
-        "authors": [
-          "Fekete, \u00c1d\u00e1m",
-          "Stella, Martina",
-          "Lambert, Henry",
-          "De Vita, Alessandro",
-          "Cs\u00e1nyi, G\u00e1bor"
-        ],
-        "created_at": "",
-        "description": "In this tutorial we will be using a machine learning method (clustering) to analyse results of Grain Boundary (GB) calculations of alpha-iron. Along the way we will learn about different methods to describe local atomic environment in order to calculate properties of GBs. We will use these properties to separate the different regions of the GB using clustering methods. Finally we will determine how the energy of the GB is changing according to the angle difference of the regions.",
-        "editLink": "/jupyterhub/hub/user-redirect/notebooks/tutorials/grain_boundaries/grain_boundaries.ipynb",
-        "featured": true,
-        "isPublic": true,
-        "labels": {
-          "application_keyword": [
-            "Grain boundaries"
-          ],
-          "application_section": [
-            "Materials property prediction"
-          ],
-          "application_system": [
-            "Iron"
-          ],
-          "category": [
-            "Tutorial"
-          ],
-          "data_analytics_method": [
-            "Clustering"
-          ],
-          "platform": [
-            "jupyter"
-          ]
-        },
-        "title": "Grain boundaries of alpha-Fe tutorial",
-        "top_of_list": false,
-        "updated_at": "",
-        "user_update": "2017-09-29",
-        "username": "tutorialsNew"
-      },
-      "id": "/grain-boundary/GB_tutorial_Berlin_2017.demoinfo.yaml",
-      "type": "demos"
-    },
-    {
-      "attributes": {
-        "authors": [
-          "Himanen, Lauri",
-          "Huhs, Georg",
-          "Hurtado, Iker",
-          "Kuban, Martin",
-          "Vancea, Ioan",
-          "Draxl, Claudia"
-        ],
-        "created_at": "2018-09-22T11:15:03.028Z",
-        "description": "This tutorial deals mainly with accessing the NOMAD Encyclopedia API (searching for materials, extracting data for specific materials and calculations). It also shows how code developed for the Encyclopedia GUI can be embedded into client applications. ",
-        "editLink": "/notebook-edit/data/shared/tutorialsNew/encyclopedia/encyclopedia.bkr",
-        "featured": true,
-        "isPublic": true,
-        "labels": {
-          "application_section": [
-            "Encyclopedia"
-          ],
-          "category": [
-            "Demo"
-          ],
-          "language": [
-            "python",
-            "javascript"
-          ],
-          "platform": [
-            "beaker"
-          ]
-        },
-        "logicalPath": "/data/shared/ghuhs/encyclopedia.bkr",
-        "title": "Encyclopedia API and code usage",
-        "top_of_list": true,
-        "updated_at": "2018-09-22T11:15:03.028Z",
-        "user_update": "2018-09-22",
-        "username": "tutorialsNew"
-      },
-      "id": "5a1bf3b780996e0031366357",
-      "type": "demos"
-    },
-    {
-      "attributes": {
-        "authors": [
-          "Mera Acosta, Carlos",
-          "Ahmetcik, Emre",
-          "Carbogno, Christian",
-          "Ouyang, Runhai",
-          "Fazzio, Adalberto",
-          "Ghiringhelli, Luca",
-          "Scheffler, Matthias"
-        ],
-        "created_at": "2017-11-13T13:56:28.375Z",
-        "description": "This tutorial shows how to find descriptive parameters (short formulas) for the prediction of topological phase transitions. As an example, we address the topological classification of two-dimensional functionalized honeycomb-lattice materials, which are formally described by the Z2 topological invariant, i.e., Z2=0 for trivial (normal) insulators and Z2=1 for two-dimensional topological insulators (quantum spin Hall insulators). Using a recently developed machine learning based on compressed sensing, we then derive a map of these materials, in which metals, trivial insulators, and quantum spin Hall insulators are separated in different spatial domains. The axes of this map are given by a physically meaningful descriptor, i.e., a non-linear analytic function that only depends on the properties of the material's constituent atoms, but not on the properties of the material itself. The method is based on the algorithm sure independence screening and sparsifying operator (SISSO), which enables to search for optimal descriptors by scanning huge feature spaces.\n",
-        "editLink": "/notebook-edit/data/shared/tutorialsNew/topological-quantum-phases/QSHI_trivial.bkr",
-        "featured": true,
-        "isPublic": true,
-        "labels": {
-          "application_keyword": [
-            "Qunatum Phase",
-            "Topological insulator",
-            "Classification"
-          ],
-          "application_section": [
-            "Materials property prediction"
-          ],
-          "category": [
-            "Demo"
-          ],
-          "data_analytics_method": [
-            "Compressed Sensing",
-            "SISSO"
-          ],
-          "language": [
-            "python",
-            "javascript"
-          ],
-          "platform": [
-            "beaker"
-          ],
-          "reference": [
-            "https://arxiv.org/abs/1710.03319"
-          ],
-          "visualization": [
-            "NOMAD viewer"
-          ]
-        },
-        "logicalPath": "/data/shared/tutorialsNew/topological-quantum-phases/QSHI_trivial.bkr",
-        "title": "Prediction of topological quantum phase transitions",
-        "top_of_list": false,
-        "updated_at": "2017-11-13T13:56:28.375Z",
-        "user_update": "2018-01-30",
-        "username": "tutorialsNew"
-      },
-      "id": "/topological-quantum-phases/QSHI_trivial.demoinfo.yaml",
-      "type": "demos"
-    },
-    {
-      "attributes": {
-        "authors": [
-          "Poelking, Carl",
-          "Ziletti, Angelo",
-          "Ghiringhelli, Luca",
-          "Cs\u00e1nyi, G\u00e1bor"
-        ],
-        "created_at": "2017-11-13T13:56:28.355Z",
-        "description": "A tool for mapping and visualizing materials databases using generic kernel- and graph-based similarity measures together with the powerful Smooth Overlap of Atomic Positions (SOAP) descriptor for atomic environments.",
-        "editLink": "/notebook-edit/data/shared/tutorialsNew/soap-similiarity/SOAP_similarity.bkr",
-        "featured": true,
-        "isPublic": true,
-        "labels": {
-          "application_keyword": [
-            "Octet binaries",
-            "GDB molecular database"
-          ],
-          "application_section": [
-            "Crystal structure prediction"
-          ],
-          "application_system": [
-            "Rock salt",
-            "Zinc blende",
-            "GDB7"
-          ],
-          "category": [
-            "Demo"
-          ],
-          "data_analytics_method": [
-            "SOAP",
-            "Global Similarity",
-            "Glosim",
-            "Kernel Principal-Component Analysis",
-            "Kernel PCA",
-            "MultiDimensional Scaling",
-            "MDS"
-          ],
-          "language": [
-            "python",
-            "javascript"
-          ],
-          "platform": [
-            "beaker"
-          ],
-          "reference": [
-            "https://doi.org/10.1039/C6CP00415F",
-            "https://arxiv.org/abs/1601.04077"
-          ],
-          "visualization": [
-            "NOMAD viewer"
-          ]
-        },
-        "logicalPath": "/data/shared/tutorialsNew/soap-similiarity/SOAP_similarity.bkr",
-        "title": "Evaluating the (dis)similarity of crystalline, disordered, and molecular compounds",
-        "top_of_list": false,
-        "updated_at": "2017-11-13T13:56:28.355Z",
-        "user_update": "2017-05-16",
-        "username": "tutorialsNew"
-      },
-      "id": "5a09a48480996e003136634f",
-      "type": "demos"
-    },
-    {
-      "attributes": {
-        "authors": [
-          "Regler, Benjamin",
-          "Ghiringhelli, Luca",
-          "Scheffler, Matthias"
-        ],
-        "created_at": "2017-11-13T13:56:28.881Z",
-        "description": "In this notebook, we use the Nomad infrastructure to query a limited number of atomic data collections and to visualize them in the periodic table of elements. There are several filters that can be applied to atomic data collections and a field to select which atomic property should be visualized in the periodic table of elements.",
-        "editLink": "/notebook-edit/data/shared/tutorialsNew/periodic-table/periodic-table.bkr",
-        "featured": true,
-        "isPublic": true,
-        "labels": {
-          "application_keyword": [
-            "Atomic species"
-          ],
-          "application_section": [
-            "Atomic properties"
-          ],
-          "category": [
-            "Demo"
-          ],
-          "language": [
-            "python",
-            "javascript"
-          ],
-          "platform": [
-            "beaker"
-          ]
-        },
-        "logicalPath": "/data/shared/tutorialsNew/periodic-table/periodic-table.bkr",
-        "title": "A periodic table of elements for atomic data collections",
-        "top_of_list": false,
-        "updated_at": "2017-11-13T13:56:28.881Z",
-        "user_update": "2017-06-06",
-        "username": "tutorialsNew"
-      },
-      "id": "5a09a48480996e003136634a",
-      "type": "demos"
-    },
-    {
-      "attributes": {
-        "authors": [
-          "Regler, Benjamin",
-          "Sastre, Alfonso",
-          "Mohamed, Fawzi",
-          "Ghiringhelli, Luca"
-        ],
-        "created_at": "2017-11-27T11:15:03.028Z",
-        "description": "A tutorial introduction on how to perform a query over the NOMAD Archive, by means of a light and intuitive GUI, and browse the results",
-        "editLink": "/notebook-edit/data/shared/tutorialsNew/nomad-query/nomad-query.bkr",
-        "featured": true,
-        "isPublic": true,
-        "labels": {
-          "application_section": [
-            "Archive Query"
-          ],
-          "category": [
-            "Demo"
-          ],
-          "data_analytics_method": [
-            "ElasticSearch"
-          ],
-          "language": [
-            "python",
-            "javascript"
-          ],
-          "platform": [
-            "beaker"
-          ]
-        },
-        "logicalPath": "/data/shared/tutorialsNew/nomad-query/nomad-query.bkr",
-        "title": "Querying and visualizing the content of the NOMAD Archive",
-        "top_of_list": true,
-        "updated_at": "2017-11-27T11:15:03.028Z",
-        "user_update": "2017-11-27",
-        "username": "tutorialsNew"
-      },
-      "id": "5a1bf3b780996e0031366356",
-      "type": "demos"
-    },
-    {
-      "attributes": {
-        "authors": [
-          "Rigamonti, Santiago",
-          "Troppenz, Maria",
-          "Draxl, Claudia"
-        ],
-        "created_at": "2017-10-06T16:00:10.746Z",
-        "description": "A tool for predicting ground state configurations of binary alloys. In this tutorial, the ground state configurations of a AlNa surface alloy are found. Starting from a set of ab initio data for random configurations of the alloy, a cluster expansion is performed and the ground states are found through a configurational sampling.",
-        "editLink": "/notebook-edit/data/shared/rsant/clusterX-x1.bkr",
-        "featured": false,
-        "isPublic": true,
-        "labels": {
-          "application_keyword": [
-            "Alloys",
-            "Surfaces"
-          ],
-          "application_section": [
-            "Predicting ground-states of alloys (convex hull construction)"
-          ],
-          "application_system": [
-            "AlNa"
-          ],
-          "category": [
-            "Demo"
-          ],
-          "data_analytics_method": [
-            "Cluster Expansion"
-          ],
-          "language": [
-            "python"
-          ],
-          "platform": [
-            "beaker"
-          ]
-        },
-        "logicalPath": "/data/shared/rsant/clusterX-x1.bkr",
-        "title": "Predicting ground-states of binary alloys through cluster expansion: Example of a AlNa binary surface alloy",
-        "top_of_list": false,
-        "updated_at": "2017-10-06T16:00:10.746Z",
-        "user_update": "2017-05-15",
-        "username": "rsant"
-      },
-      "id": "/cluster-x/clusterX-x1.demoinfo.yaml",
-      "type": "demos"
-    },
-    {
-      "attributes": {
-        "authors": [
-          "Rigamonti, Santiago",
-          "Troppenz, Maria",
-          "Draxl, Claudia"
-        ],
-        "created_at": "2017-10-06T16:00:48.038Z",
-        "description": "A tool for predicting ground state configurations of binary alloys. In this tutorial, the ground state configurations of a SiGe binary alloy are found. Starting from a set of ab initio data for random configurations of the alloy, a cluster expansion is performed and the ground states are found through a configurational sampling.",
-        "editLink": "/notebook-edit/data/shared/rsant/clusterX-x2.bkr",
-        "featured": true,
-        "isPublic": true,
-        "labels": {
-          "application_keyword": [
-            "Alloys"
-          ],
-          "application_section": [
-            "Predicting ground-states of alloys (convex hull construction)"
-          ],
-          "application_system": [
-            "SiGe"
-          ],
-          "category": [
-            "Demo"
-          ],
-          "data_analytics_method": [
-            "Cluster Expansion"
-          ],
-          "language": [
-            "python"
-          ],
-          "platform": [
-            "beaker"
-          ]
-        },
-        "logicalPath": "/data/shared/rsant/clusterX-x2.bkr",
-        "title": "Predicting ground-states of binary alloys through cluster expansion: Example of a SiGe binary alloy",
-        "top_of_list": false,
-        "updated_at": "2017-10-06T16:00:48.038Z",
-        "user_update": "2017-05-15",
-        "username": "rsant"
-      },
-      "id": "59fb07f59784de003102087a",
-      "type": "demos"
-    },
-    {
-      "attributes": {
-        "authors": [
-          "Strange, Mikkel",
-          "Thygesen, Kristian S."
-        ],
-        "created_at": "2017-11-13T13:56:28.853Z",
-        "description": "Developed by .A tool that produces compositional phase diagrams. As an example we consider materials made of Li-Fe-P-O. Phase diagrams are generally useful to determine if a given material is thermodynamically stable under certain conditions such as temperature, pressure etc. In this tutorial, we consider only a compositional phase diagram at zero temperature and pressure.",
-        "editLink": "/notebook-edit/data/shared/tutorialsNew/phase-diagram/phasediagram.bkr",
-        "featured": false,
-        "isPublic": true,
-        "labels": {
-          "application_keyword": [
-            "Alloys"
-          ],
-          "application_section": [
-            "Predicting ground-states of alloys (convex hull construction)"
-          ],
-          "application_system": [
-            "LiFePO"
-          ],
-          "category": [
-            "Demo"
-          ],
-          "language": [
-            "python",
-            "javascript"
-          ],
-          "platform": [
-            "beaker"
-          ],
-          "reference": [
-            "https://doi.org/10.1021/cm702327g"
-          ]
-        },
-        "logicalPath": "/data/shared/tutorialsNew/phase-diagram/phasediagram.bkr",
-        "path": "/nomad/nomadlab/beaker-notebooks/user-data/shared/tutorialsNew/phase-diagram/phasediagram.bkr",
-        "title": "Assessing the crystal-structure stability for a material under different synthetic conditions",
-        "top_of_list": false,
-        "updated_at": "2017-11-13T13:56:28.853Z",
-        "user_update": "2017-05-15",
-        "username": "tutorialsNew"
-      },
-      "id": "5a09a48480996e003136634c",
-      "type": "demos"
-    },
-    {
-      "attributes": {
-        "authors": [
-          "Ziletti, Angelo",
-          "Ahmetcik, Emre",
-          "Ouyang, Runhai",
-          "Kariryaa, Ankit",
-          "Mohamed, Fawzi",
-          "Ghiringhelli, Luca",
-          "Scheffler, Matthias"
-        ],
-        "created_at": "2017-11-13T13:56:28.391Z",
-        "description": "A tool for predicting the difference in the total energy between different polymorphs for 82 octet binary compounds, which gives an indication of the stability of the material. This is accomplished by identifying a set of descriptive parameters (a descriptor) from the free-atom data for the binary atomic species comprising the material using the Sure Independent Screening (SIS) + l0-norm minimization approach.",
-        "editLink": "/notebook-edit/data/shared/tutorialsNew/sis/sis_cscl.bkr",
-        "featured": true,
-        "isPublic": true,
-        "labels": {
-          "application_keyword": [
-            "Octet binaries"
-          ],
-          "application_section": [
-            "Crystal structure prediction"
-          ],
-          "application_system": [
-            "Rock salt",
-            "Zinc blende",
-            "CsCl",
-            "CrB",
-            "NiAs"
-          ],
-          "category": [
-            "Demo"
-          ],
-          "data_analytics_method": [
-            "Compressed Sensing",
-            "SISSO"
-          ],
-          "language": [
-            "python",
-            "javascript"
-          ],
-          "platform": [
-            "beaker"
-          ],
-          "reference": [
-            "https://arxiv.org/abs/1710.03319"
-          ],
-          "visualization": [
-            "NOMAD viewer"
-          ]
-        },
-        "logicalPath": "/data/shared/tutorialsNew/sis/sis_cscl.bkr",
-        "title": "Predicting energy differences between crystal structures",
-        "top_of_list": false,
-        "updated_at": "2017-11-13T13:56:28.391Z",
-        "user_update": "2017-10-16",
-        "username": "tutorialsNew"
-      },
-      "id": "5a09a48480996e003136634e",
-      "type": "demos"
-    },
-    {
-      "attributes": {
-        "authors": [
-          "Ziletti, Angelo",
-          "Ahmetcik, Emre",
-          "Ouyang, Runhai",
-          "Kariryaa, Ankit",
-          "Mohamed, Fawzi",
-          "Ghiringhelli, Luca",
-          "Scheffler, Matthias"
-        ],
-        "created_at": "2017-11-13T13:56:35.502Z",
-        "description": "A tool for predicting the difference in the total energy between different polymorphs for 82 octet binary compounds, which gives an indication of the stability of the material. This is accomplished by identifying a set of descriptive parameters (a descriptor) from the free-atom data for the binary atomic species comprising the material using LASSO + l0-norm minimization approach.",
-        "editLink": "/notebook-edit/data/shared/tutorialsNew/lasso/LASSO_L0.bkr",
-        "featured": false,
-        "isPublic": true,
-        "labels": {
-          "application_keyword": [
-            "Octet binaries"
-          ],
-          "application_section": [
-            "Crystal structure prediction"
-          ],
-          "application_system": [
-            "Rock salt",
-            "Zinc blende"
-          ],
-          "category": [
-            "Demo"
-          ],
-          "data_analytics_method": [
-            "Compressed Sensing",
-            "LASSO+l0"
-          ],
-          "language": [
-            "python",
-            "javascript"
-          ],
-          "platform": [
-            "beaker"
-          ],
-          "reference": [
-            "https://doi.org/10.1103/PhysRevLett.114.105503",
-            "https://doi.org/10.1088/1367-2630/aa57bf"
-          ],
-          "visualization": [
-            "NOMAD viewer"
-          ]
-        },
-        "logicalPath": "/data/shared/tutorialsNew/lasso/LASSO_L0.bkr",
-        "title": "Predicting energy differences between crystal structures. Smaller feature spaces.",
-        "top_of_list": false,
-        "updated_at": "2017-11-13T13:56:35.502Z",
-        "user_update": "2017-05-10",
-        "username": "tutorialsNew"
-      },
-      "id": "5a09a48380996e0031366348",
-      "type": "demos"
-    },
-    {
-      "attributes": {
-        "authors": [
-          "Ziletti, Angelo",
-          "Kariryaa, Ankit",
-          "Mohamed, Fawzi",
-          "Ghiringhelli, Luca",
-          "Scheffler, Matthias"
-        ],
-        "created_at": "2017-11-13T13:56:41.082Z",
-        "description": "A tool that produces two-dimensional structure maps for octet binary compounds, starting from a high-dimensional set of coordinates (features) that identify each material (data point), based on free-atom data of the atomic species constituting the binary material.",
-        "editLink": "/notebook-edit/data/shared/tutorialsNew/embedding/Embedding.bkr",
-        "featured": true,
-        "isPublic": true,
-        "labels": {
-          "application_keyword": [
-            "Octet binaries"
-          ],
-          "application_section": [
-            "Crystal structure prediction"
-          ],
-          "application_system": [
-            "Rock salt",
-            "Zinc blende"
-          ],
-          "category": [
-            "Demo"
-          ],
-          "data_analytics_method": [
-            "Dimensionality Reduction",
-            "Principal-Component Analysis",
-            "PCA",
-            "MultiDimensional Scaling",
-            "MDS",
-            "t-Distributed Stochastic Neighbor Embedding",
-            "t-SNE"
-          ],
-          "language": [
-            "python",
-            "javascript"
-          ],
-          "platform": [
-            "beaker"
-          ],
-          "visualization": [
-            "NOMAD viewer"
-          ]
-        },
-        "logicalPath": "/data/shared/tutorialsNew/embedding/Embedding.bkr",
-        "title": "Building structure maps for crystal-structure classification",
-        "top_of_list": false,
-        "updated_at": "2017-11-13T13:56:41.082Z",
-        "user_update": "2017-05-12",
-        "username": "tutorialsNew"
-      },
-      "id": "5a09a48180996e0031366343",
-      "type": "demos"
-    },
-    {
-      "attributes": {
-        "authors": [
-          "Ziletti, Angelo",
-          "Kariryaa, Ankit",
-          "Mohamed, Fawzi",
-          "Ghiringhelli, Luca",
-          "Scheffler, Matthias"
-        ],
-        "created_at": "2017-11-13T13:56:41.082Z",
-        "description": "This Notebook allows to retrieve your query results from the NOMAD Archive, and subsequently perform state-of-the-art machine learning analysis on this dataset. Given a user-specified query, the structures of the top-5 space groups (for crystals) or point groups (for molecules) within this dataset are returned, and then a structural-similarity model is built on-the-fly.\n",
-        "editLink": "/notebook-edit/data/shared/tutorialsNew/custom-analytics-example/custom-analytics-example.bkr",
-        "featured": true,
-        "isPublic": true,
-        "labels": {
-          "application_keyword": [
-            "Query usage"
-          ],
-          "application_section": [
-            "Crystal structure prediction"
-          ],
-          "category": [
-            "Tutorial"
-          ],
-          "data_analytics_method": [
-            "SOAP",
-            "Global Similarity",
-            "Glosim",
-            "Kernel Principal-Component Analysis",
-            "Kernel PCA",
-            "MultiDimensional Scaling",
-            "MDS"
-          ],
-          "language": [
-            "python",
-            "javascript"
-          ],
-          "platform": [
-            "beaker"
-          ],
-          "visualization": [
-            "NOMAD viewer"
-          ]
-        },
-        "logicalPath": "/data/shared/tutorialsNew/custom-analytics-example/custom-analytics-example.bkr",
-        "title": "On-the-fly data analysis for the NOMAD Archive",
-        "top_of_list": false,
-        "updated_at": "2017-11-13T13:56:41.082Z",
-        "user_update": "2018-01-31",
-        "username": "tutorialsNew"
-      },
-      "id": "/custom-analytics-example/custom-analytics-example.demoinfo.yaml",
-      "type": "demos"
-    },
-    {
-      "attributes": {
-        "authors": [
-          "Ziletti, Angelo",
-          "Kumar, Devinder",
-          "Scheffler, Matthias",
-          "Ghiringhelli, Luca"
-        ],
-        "created_at": "2019-01-23T11:56:28.881Z",
-        "description": "In this notebook, we use a machine learning-based approach to automatically classify structures by crystal symmetry; first, we represent crystals by a diffraction image, then use a neural network for classification. The notebook allows to reproduce the main results of: A. Ziletti, D. Kumar, M. Scheffler and L. M. Ghiringhelli, Nature Communications 9, 2775 (2018)",
-        "editLink": "/beaker/cM/start/home/beaker/tutorials/insightful_class_deep_learning_nature_comm2018.bkr?image=analytics-toolkit.nomad-coe.eu:5509/ziletti/face-of-crystals-2017:v2.0.3-squashed",
-        "featured": true,
-        "isPublic": true,
-        "labels": {
-          "application_keyword": [
-            "Crystals",
-            "Structure"
-          ],
-          "application_section": [
-            "Structure classification",
-            "Solids"
-          ],
-          "category": [
-            "Demo"
-          ],
-          "data_analytics_method": [
-            "Neural networks",
-            "Deep learning"
-          ],
-          "language": [
-            "python",
-            "javascript"
-          ],
-          "platform": [
-            "beaker"
-          ]
-        },
-        "logicalPath": "/beaker/cM/start/home/beaker/tutorials/insightful_class_deep_learning_nature_comm2018.bkr?image=analytics-toolkit.nomad-coe.eu:5509/ziletti/face-of-crystals-2017:v2.0.3-squashed",
-        "title": "Insightful classification of crystal structures using deep learning",
-        "top_of_list": false,
-        "updated_at": "2019-01-23T11:56:28.881Z",
-        "user_update": "2019-01-23",
-        "username": "tutorialsNew"
-      },
-      "id": "",
-      "type": "demos"
-    }
-  ]
-}
diff --git a/tools/read_metainfos.py b/tools/read_metainfos.py
deleted file mode 100644
index 8bfe0bf771785e0eb8b47bfb6e7cf18714b64d96..0000000000000000000000000000000000000000
--- a/tools/read_metainfos.py
+++ /dev/null
@@ -1,16 +0,0 @@
-import json
-from pathlib import Path
-
-if __name__ == '__main__':
-    path = Path('../notebook/tutorials/')
-
-    folders = (p for p in path.iterdir() if p.is_dir())
-
-    demos = []
-    for folder in folders:
-        metainfo_file = folder / 'metainfo.json'
-        if metainfo_file.exists():
-            with open(str(metainfo_file)) as file:
-                demos.append(json.load(file))
-
-    print(json.dumps({'data': demos}, indent=2))
diff --git a/tools/split_metainfos.py b/tools/split_metainfos.py
deleted file mode 100644
index 209e53cb2f39fd2b42b3f71fc953c2aadf59ec5f..0000000000000000000000000000000000000000
--- a/tools/split_metainfos.py
+++ /dev/null
@@ -1,9 +0,0 @@
-import json
-
-if __name__ == '__main__':
-    with open('metainfo/demos.json') as file:
-        infos = json.load(file)
-
-    for ind, info in enumerate(infos['data']):
-        with open(f'metainfo/demo_{ind}.json', 'w') as file:
-            json.dump(info['attributes'], file, indent=2)