Chapter 1.0 How to Get Started

1.1 How to Get PyRosetta on Your Personal Computer

1.2 Jupyter Notebooks, Python, and Google Colaboratory

1.3 Frequently Asked Questions/Troubleshooting Tips

Chapter 2.0 Introduction to PyRosetta

2.1 Pose Basics

2.2 Working with Pose residues

2.3 Accessing PyRosetta Documentation

2.4 Getting spatial features from a Pose

2.5 Protein Geometry

2.6 None

2.6 Visualization with the PyMOLMover

2.7 RosettaScripts in PyRosetta

2.8 Visualization and pyrosetta.distributed.viewer

- [Available `viewer` objects:](`viewer`-objects:)
- [Available `viewer.presets` objects:](`viewer.presets`-objects:)
- [`viewer` objects contain docstrings as user documentation:](`viewer`-objects-contain-docstrings-as-user-documentation:)
- [`viewer.presets` objects contain docstrings as brief descriptions of each preset visualization](`viewer.presets`-objects-contain-docstrings-as-brief-descriptions-of-each-preset-visualization)

Chapter 3.0 Rosetta Energy Score Functions

3.1 Score Function Basics

3.2 Practice: Analyzing energy between residues

3.3 Energies and the PyMOL Mover

Chapter 4.0 Introduction to Folding

4.1 Basic Folding Algorithm

4.2 Low-Res Scoring and Fragments

Chapter 5.0 Structure Refinement

5.1 High-Resolution Movers

5.2 Refinement Protocol

Chapter 6.0 Packing & Design

6.1 Side Chain Conformations and Dunbrack Energies

6.2 Packing and Relax

6.3 Protein Design with a Resfile and FastRelax

6.4 Protein Design 2

6.5 HBNet Before Design

6.6 De Novo Parametric Backbone Design

6.7 De Novo Protein Design with PyRosetta

6.8 Point Mutation Scan

Chapter 7.0 Docking

7.1 Fast Fourier Transform Based Docking via ZDOCK

7.2 Docking Moves in Rosetta

Chapter 8.0 Ligand Refinement in PyRosetta (a.k.a. High-Resolution Local Docking) Using the ligand.wts Scorefunction

8.1 Global Ligand Docking using XMLObjects Using the ref2015.wts Scorefunction

8.2 GALigandDock Protocol with pyrosetta.distributed Using the beta_cart.wts Scorefunction

- [Inspect the scores for the `GALigandDock` trajectories:](`GALigandDock`-trajectories:)
- [Now that we have performed `GALigandDock`, we can plot the ligand binding energy landscape:](`GALigandDock`,-we-can-plot-the-ligand-binding-energy-landscape:)

Chapter 10.0 Working With Symmetry

Chapter 11.0 Working With Density

Chapter 12.0 Working With Antibodies

12.1 RosettaAntibody Framework

12.2 RosettaAntibodyDesign

Chapter 13.0 RosettaCarbohydrates

13.1 RosettaCarbohydrates: Trees, Selectors and Movers

13.2 RosettaCarbohydrates: Modeling and Design

    - [A1.2 Design using the `N[^P][T]` motif](`N[^P][T]`-motif)
- [A2. Adding a man5 glycan:](
- [A3. Modeling glycans](

Chapter 14.0 RNA in PyRosetta

Chapter 15.0 Modeling Membrane Proteins

15.1 Setting up a membrane protein in the bilayer

15.2 Predicting the ∆∆G of single point mutations

Chapter 16.0 Running Rosetta in Parallel

16.1 Distributed analysis example: exhaustive ddG PSSM

16.2 Distributed computation example: miniprotein design

16.3 Example of Using PyRosetta with GNU Parallel

- [1. Parallelize script in an interactive session:](
- [2. Parallelize script on a high-performance computing cluster with Slurm scheduling (non-interactive submission):](
- [3. Submit jobs individually to the SLURM scheduler:](

16.4 Examples Using the dask Module

- [We can make use of the `dask` library to parallelize code](`dask`-library-to-parallelize-code)
- [Consider the following example that runs within this Jupyter notebook kernel just fine but could be parallelized:](

16.5 Part I: Parallelized Global Ligand Docking with pyrosetta.distributed

16.6 PyRosettaCluster Tutorial 1A. Simple protocol

- [1. Import packages](
- [2. Initialize a compute cluster using `dask`](`dask`)
- [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/`:]('s-look-at-the-definition-of-the-user-provided-PyRosetta-protocol-`my_protocol`-located-in-`additional_scripts/`:)
- [4. Define the user-provided keyword argument(s) (i.e. `kwargs`):](`kwargs`):)
- [5. Launch the original simulation using the `distribute()` method](`distribute()`-method)
- [7. Visualize the resultant decoy](
- [Congrats!](!)

16.7 PyRosettaCluster Tutorial 1B. Reproduce simple protocol

- [1. Import packages](
- [2. Initialize a compute cluster using `dask`](`dask`)
- [3. Re-define or import the original user-provided PyRosetta protocol:](
- [4. Reproduce the original decoy:](
- [5. Launch the reproduction simulation using `reproduce()`:](`reproduce()`:)
- [6. Visualize the reproduced decoy:](
- [7. Optionally, perform sanity checks to confirm that the reproduced decoy is identical to the original decoy:](,-perform-sanity-checks-to-confirm-that-the-reproduced-decoy-is-identical-to-the-original-decoy:)
    - [Assert that the sequences are identical:](
    - [Assert that the `total_score`s are identical:](`total_score`s-are-identical:)
    - [Assert that the C$_{\alpha}$–C$_{\alpha}$ root-mean-square deviation (RMSD) is `0.0` Å:]($_{\alpha}$–C$_{\alpha}$-root-mean-square-deviation-(RMSD)-is-`0.0`-Å:)
- [Congrats!](!)

16.8 PyRosettaCluster Tutorial 2. Multiple protocols

- [1. Import packages](
- [2. Initialize a compute cluster using `dask`:](`dask`:)
- [3. Define the user-provided PyRosetta protocols:](
- [4. Define the user-provided kwargs:](
- [5. Launch the original simulation using `distribute()`:](`distribute()`:)
- [6. Visualize the resultant decoy:](
- [Congrats!](!)

16.9 PyRosettaCluster Tutorial 3. Multiple decoys

- [1. Import packages](
- [2. Initialize a compute cluster using `dask`](`dask`)
- [3. Define the user-provided PyRosetta protocols that returns multiple `Pose` or `PackedPose` objects:](`Pose`-or-`PackedPose`-objects:)
- [4. Define the user-provided tasks as `kwargs`:](`kwargs`:)
- [5. Launch the original simulation using `distribute()`:](`distribute()`:)
- [6. Visualize the resulting decoys:](
- [Congrats!](!)

16.10 PyRosettaCluster Tutorial 4. Ligand params

- [1. Import packages](
- [2. Initialize a compute cluster using `dask`:](`dask`:)
- [3. Define ligand `.params` file(s) and initialize PyRosetta with a constant seed:](`.params`-file(s)-and-initialize-PyRosetta-with-a-constant-seed:)
- [4. Define the user-provided PyRosetta protocol:](
- [5. Launch the original simulation using `distribute()`:](`distribute()`:)
- [6. Visualize the resultant decoy:](
- [Congrats!](!)

Appendix A. Command Reference

Appendix B. Residue Parameter Files

Appendix C. Cleaning pdb files