Video Tutorials
===============

Below is a list of video tutorials made by `Andrew Tarzia`__, which
provide a thorough introduction to :mod:`.stk`. More videos can be found
here__.

__ https://github.com/andrewtarzia
__ https://youtube.com/@andrewtarzia1790

Basics of *stk*
---------------

`Video 1`__ is an overview of the 2021 publication covering the
capability of :mod:`.stk` and the docs of :mod:`.stk`. The
Jupyter notebook is available here__.

__ https://www.youtube.com/watch?v=mPr9D7nCQ84&list=PLIWYdPQ9hLzVngMF8NOkiApMtgc_ZwZgO&index=1
__ https://github.com/andrewtarzia/stk-examples/tree/main/notebooks_from_videos

Functional Groups in *stk*
--------------------------

`Video 2`__ is an overview of defining :class:`.FunctionalGroup`
instances in :mod:`.stk`. It includes an example of the versatility of
:mod:`.stk` for unique problems. The Jupyter notebook is available
here__.

__ https://www.youtube.com/watch?v=IaLIN7jXyKQ&list=PLIWYdPQ9hLzVngMF8NOkiApMtgc_ZwZgO&index=2
__ https://github.com/andrewtarzia/stk-examples/tree/main/notebooks_from_videos

Cage Building
-------------

`Video 3`__ is an overview of organic and metal-organic cage
construction in :mod:`.stk`. This example covers how :mod:`.stk`
handles isomerism and the concept of hierarchical construction. The
Jupyter notebook is available here__.

__ https://www.youtube.com/watch?v=sc1Kf6vzTSA&list=PLIWYdPQ9hLzVngMF8NOkiApMtgc_ZwZgO&index=3
__ https://github.com/andrewtarzia/stk-examples/tree/main/notebooks_from_videos

Hierarchical Construction with *stk*
------------------------------------

`Video 4`__ expands on the use of hierarchical construction in
:mod:`.stk`. It includes an implementation of the example from the
2021 publication and the construction of a rotaxane/cage hybrid!
The Jupyter notebbok is available here__.

__ https://www.youtube.com/watch?v=WB9oAqA8m4o&list=PLIWYdPQ9hLzVngMF8NOkiApMtgc_ZwZgO&index=4
__ https://github.com/andrewtarzia/stk-examples/tree/main/notebooks_from_videos

Using *stko* with *stk*
-----------------------

`Video 5`__ shows the usage of the stko__ package to optimize and
calculate the properties of :mod:`.stk` molecules. The Jupyter
notebook is available here__.

__ https://www.youtube.com/watch?v=vvmS43dVPe4&list=PLIWYdPQ9hLzVngMF8NOkiApMtgc_ZwZgO&index=5
__ https://github.com/JelfsMaterialsGroup/stko
__ https://github.com/andrewtarzia/stk-examples/tree/main/notebooks_from_videos

Databases and *stk-vis* in *stk*
--------------------------------

`Video 6`__ is a short introduction to databasing and the use of
*StkVis* with :mod:`.stk` molecules! The Jupyter notebook is
available here__.

__ https://www.youtube.com/watch?v=ESfmmLpHVmE&list=PLIWYdPQ9hLzVngMF8NOkiApMtgc_ZwZgO&index=6
__ https://github.com/andrewtarzia/stk-examples/tree/main/notebooks_from_videos

Host-Guest Conformers with *stk*
--------------------------------

`Video 7`__ shows an example of the generation of :mod:`.stk`
host-guest complexes using the software SpinDry__. The Jupyter
notebook is available here__.

__ https://www.youtube.com/watch?v=1BBhPeIRV_E&list=PLIWYdPQ9hLzVngMF8NOkiApMtgc_ZwZgO&index=7
__ https://github.com/andrewtarzia/SpinDry
__ https://github.com/andrewtarzia/stk-examples/tree/main/notebooks_from_videos


Swapping Hosts and Guests in Complexes
--------------------------------------

`The new video`__ shows an example of loading an existing host-guest
complex into :mod:`.stk`, extracting the different molecules
(with :mod:`networkx`), and then building new complexes from that.
The code is available here__.

__ https://youtu.be/J29eoc9CZ98?si=vOEH45GPp_W0f5k4
__ https://github.com/andrewtarzia/stk-examples/blob/main/replace_guest/replace_guest.py


Processing *stk* building blocks before construction
----------------------------------------------------

`This video`__ shows the use of the new :mod:`bbprepared` library__
that helps to process automatically generated :mod:`stk` BuildingBlock
conformers to be better fit for construction.

__ https://youtu.be/dbQwhlpf5Jc?si=7l9Y_ISEmFlY2FtV
__ https://github.com/andrewtarzia/bbprepared

