- [Install third-party external packages](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/01.01-PyRosetta-Google-Drive-Setup.ipynb#Install-third-party-external-packages)
- [Pip:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/01.01-PyRosetta-Google-Drive-Setup.ipynb#Pip:)
- [Conda:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/01.01-PyRosetta-Google-Drive-Setup.ipynb#Conda:)
- [Available `viewer` objects:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/02.08-Visualization-and-pyrosetta.distributed.viewer.ipynb#Available-`viewer`-objects:)
- [Available `viewer.presets` objects:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/02.08-Visualization-and-pyrosetta.distributed.viewer.ipynb#Available-`viewer.presets`-objects:)
- [`viewer` objects contain docstrings as user documentation:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/02.08-Visualization-and-pyrosetta.distributed.viewer.ipynb#`viewer`-objects-contain-docstrings-as-user-documentation:)
- [`viewer.presets` objects contain docstrings as brief descriptions of each preset visualization](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/02.08-Visualization-and-pyrosetta.distributed.viewer.ipynb#`viewer.presets`-objects-contain-docstrings-as-brief-descriptions-of-each-preset-visualization)
- [Inspect the scores for the `GALigandDock` trajectories:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/08.02-Ligand-Docking-pyrosetta.distributed.ipynb#Inspect-the-scores-for-the-`GALigandDock`-trajectories:)
- [Now that we have performed `GALigandDock`, we can plot the ligand binding energy landscape:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/08.02-Ligand-Docking-pyrosetta.distributed.ipynb#Now-that-we-have-performed-`GALigandDock`,-we-can-plot-the-ligand-binding-energy-landscape:)
- [A1.2 Design using the `N[^P][T]` motif](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/13.02-Glycan-Modeling-and-Design.ipynb#A1.2-Design-using-the-`N[^P][T]`-motif)
- [A2. Adding a man5 glycan:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/13.02-Glycan-Modeling-and-Design.ipynb#A2.-Adding-a-man5-glycan:)
- [A3. Modeling glycans](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/13.02-Glycan-Modeling-and-Design.ipynb#A3.-Modeling-glycans)
- [1. Parallelize script in an interactive session:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.03-GNU-Parallel-Via-Slurm.ipynb#1.-Parallelize-script-in-an-interactive-session:)
- [2. Parallelize script on a high-performance computing cluster with Slurm scheduling (non-interactive submission):](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.03-GNU-Parallel-Via-Slurm.ipynb#2.-Parallelize-script-on-a-high-performance-computing-cluster-with-Slurm-scheduling-(non-interactive-submission):)
- [3. Submit jobs individually to the SLURM scheduler:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.03-GNU-Parallel-Via-Slurm.ipynb#3.-Submit-jobs-individually-to-the-SLURM-scheduler:)
- [We can make use of the `dask` library to parallelize code](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.04-dask.delayed-Via-Slurm.ipynb#We-can-make-use-of-the-`dask`-library-to-parallelize-code)
- [Consider the following example that runs within this Jupyter notebook kernel just fine but could be parallelized:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.04-dask.delayed-Via-Slurm.ipynb#Consider-the-following-example-that-runs-within-this-Jupyter-notebook-kernel-just-fine-but-could-be-parallelized:)
- [1. Import packages](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.06-PyRosettaCluster-Simple-protocol.ipynb#1.-Import-packages)
- [2. Initialize a compute cluster using `dask`](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.06-PyRosettaCluster-Simple-protocol.ipynb#2.-Initialize-a-compute-cluster-using-`dask`)
- [3. Define or import the user-provided PyRosetta protocol(s):](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.06-PyRosettaCluster-Simple-protocol.ipynb#3.-Define-or-import-the-user-provided-PyRosetta-protocol(s):)
- [Let's look at the definition of the user-provided PyRosetta protocol `my_protocol` located in `additional_scripts/my_protocols.py`:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.06-PyRosettaCluster-Simple-protocol.ipynb#Let's-look-at-the-definition-of-the-user-provided-PyRosetta-protocol-`my_protocol`-located-in-`additional_scripts/my_protocols.py`:)
- [4. Define the user-provided keyword argument(s) (i.e. `kwargs`):](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.06-PyRosettaCluster-Simple-protocol.ipynb#4.-Define-the-user-provided-keyword-argument(s)-(i.e.-`kwargs`):)
- [5. Launch the original simulation using the `distribute()` method](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.06-PyRosettaCluster-Simple-protocol.ipynb#5.-Launch-the-original-simulation-using-the-`distribute()`-method)
- [7. Visualize the resultant decoy](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.06-PyRosettaCluster-Simple-protocol.ipynb#7.-Visualize-the-resultant-decoy)
- [Congrats!](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.06-PyRosettaCluster-Simple-protocol.ipynb#Congrats!)
- [1. Import packages](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.07-PyRosettaCluster-Reproduce-simple-protocol.ipynb#1.-Import-packages)
- [2. Initialize a compute cluster using `dask`](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.07-PyRosettaCluster-Reproduce-simple-protocol.ipynb#2.-Initialize-a-compute-cluster-using-`dask`)
- [3. Re-define or import the original user-provided PyRosetta protocol:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.07-PyRosettaCluster-Reproduce-simple-protocol.ipynb#3.-Re-define-or-import-the-original-user-provided-PyRosetta-protocol:)
- [4. Reproduce the original decoy:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.07-PyRosettaCluster-Reproduce-simple-protocol.ipynb#4.-Reproduce-the-original-decoy:)
- [5. Launch the reproduction simulation using `reproduce()`:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.07-PyRosettaCluster-Reproduce-simple-protocol.ipynb#5.-Launch-the-reproduction-simulation-using-`reproduce()`:)
- [6. Visualize the reproduced decoy:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.07-PyRosettaCluster-Reproduce-simple-protocol.ipynb#6.-Visualize-the-reproduced-decoy:)
- [7. Optionally, perform sanity checks to confirm that the reproduced decoy is identical to the original decoy:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.07-PyRosettaCluster-Reproduce-simple-protocol.ipynb#7.-Optionally,-perform-sanity-checks-to-confirm-that-the-reproduced-decoy-is-identical-to-the-original-decoy:)
- [Assert that the sequences are identical:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.07-PyRosettaCluster-Reproduce-simple-protocol.ipynb#Assert-that-the-sequences-are-identical:)
- [Assert that the `total_score`s are identical:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.07-PyRosettaCluster-Reproduce-simple-protocol.ipynb#Assert-that-the-`total_score`s-are-identical:)
- [Assert that the C$_{\alpha}$–C$_{\alpha}$ root-mean-square deviation (RMSD) is `0.0` Å:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.07-PyRosettaCluster-Reproduce-simple-protocol.ipynb#Assert-that-the-C$_{\alpha}$–C$_{\alpha}$-root-mean-square-deviation-(RMSD)-is-`0.0`-Å:)
- [Congrats!](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.07-PyRosettaCluster-Reproduce-simple-protocol.ipynb#Congrats!)
- [1. Import packages](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.08-PyRosettaCluster-Multiple-protocols.ipynb#1.-Import-packages)
- [2. Initialize a compute cluster using `dask`:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.08-PyRosettaCluster-Multiple-protocols.ipynb#2.-Initialize-a-compute-cluster-using-`dask`:)
- [3. Define the user-provided PyRosetta protocols:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.08-PyRosettaCluster-Multiple-protocols.ipynb#3.-Define-the-user-provided-PyRosetta-protocols:)
- [4. Define the user-provided kwargs:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.08-PyRosettaCluster-Multiple-protocols.ipynb#4.-Define-the-user-provided-kwargs:)
- [5. Launch the original simulation using `distribute()`:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.08-PyRosettaCluster-Multiple-protocols.ipynb#5.-Launch-the-original-simulation-using-`distribute()`:)
- [6. Visualize the resultant decoy:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.08-PyRosettaCluster-Multiple-protocols.ipynb#6.-Visualize-the-resultant-decoy:)
- [Congrats!](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.08-PyRosettaCluster-Multiple-protocols.ipynb#Congrats!)
- [1. Import packages](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.09-PyRosettaCluster-Multiple-decoys.ipynb#1.-Import-packages)
- [2. Initialize a compute cluster using `dask`](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.09-PyRosettaCluster-Multiple-decoys.ipynb#2.-Initialize-a-compute-cluster-using-`dask`)
- [3. Define the user-provided PyRosetta protocols that returns multiple `Pose` or `PackedPose` objects:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.09-PyRosettaCluster-Multiple-decoys.ipynb#3.-Define-the-user-provided-PyRosetta-protocols-that-returns-multiple-`Pose`-or-`PackedPose`-objects:)
- [4. Define the user-provided tasks as `kwargs`:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.09-PyRosettaCluster-Multiple-decoys.ipynb#4.-Define-the-user-provided-tasks-as-`kwargs`:)
- [5. Launch the original simulation using `distribute()`:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.09-PyRosettaCluster-Multiple-decoys.ipynb#5.-Launch-the-original-simulation-using-`distribute()`:)
- [6. Visualize the resulting decoys:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.09-PyRosettaCluster-Multiple-decoys.ipynb#6.-Visualize-the-resulting-decoys:)
- [Congrats!](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.09-PyRosettaCluster-Multiple-decoys.ipynb#Congrats!)
- [1. Import packages](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.10-PyRosettaCluster-Ligand-params.ipynb#1.-Import-packages)
- [2. Initialize a compute cluster using `dask`:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.10-PyRosettaCluster-Ligand-params.ipynb#2.-Initialize-a-compute-cluster-using-`dask`:)
- [3. Define ligand `.params` file(s) and initialize PyRosetta with a constant seed:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.10-PyRosettaCluster-Ligand-params.ipynb#3.-Define-ligand-`.params`-file(s)-and-initialize-PyRosetta-with-a-constant-seed:)
- [4. Define the user-provided PyRosetta protocol:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.10-PyRosettaCluster-Ligand-params.ipynb#4.-Define-the-user-provided-PyRosetta-protocol:)
- [5. Launch the original simulation using `distribute()`:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.10-PyRosettaCluster-Ligand-params.ipynb#5.-Launch-the-original-simulation-using-`distribute()`:)
- [6. Visualize the resultant decoy:](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.10-PyRosettaCluster-Ligand-params.ipynb#6.-Visualize-the-resultant-decoy:)
- [Congrats!](http://nbviewer.jupyter.org/github/RosettaCommons/PyRosetta.notebooks/blob/master/notebooks/16.10-PyRosettaCluster-Ligand-params.ipynb#Congrats!)