You are here

Rosetta Academy

Rosetta Academy

Note to students who are going to Boot Camp - If you want the exercises to be more effective, consider saving them for the Boot Camp!

Rosetta 2014 Boot Camp

Lab and lecture materials from the 2014 Rosetta Boot Camp are available here.

  • Lecture 2: Memory Allocation in C++

    Andrew Leaver-Fay describes the stack and the heap and some of the common problems associated with each. The challenges associated with storing data...
  • Lab 2: Your first Rosetta protocol

    Rebecca Alford describes some of the key classes that are to be used in the first evening lab. The evening labs build on each other over the course of four ...
  • Lecture 3: Introduction to Graphs

    Andrew Leaver-Fay discusses what mathematicians and computer scientists call "graphs." A graph, G = {V,E} is a set of vertices and edges. They are incredibly...
  • Lab 3: Writing Unit Tests

    Rebecca Alford presents on how and why to write unit tests for your code. The lab associated with this lecture is to write a unit test, and the rest of your ...
  • Lecture 4: Rosetta Library Overview 1

    Andrew Leaver-Fay presents an overview of the key classes in the highest libraries: utility, numeric, basic, and core. These include descriptions of molecular ...
  • Lab 4: Kinematic Trees

    Rebecca Alforld presents an introduction to the kinematic system we use in Rosetta: the FoldTree. In this lab, you will create a FoldTree and then use that ...
  • Lecture 5: Classes in C++ 2

    Rebecca Alford presents on some of the subtler details of classes in C++: function overloading, const methods, static methods and static data. She also ...
  • Lab 5: Debugging with GDB

    Andrew Leaver-Fay presents the GNU debugger, gdb, as one of the most powerful tools you have in understanding and fixing problems in the code you write. ...
  • Lecture 6: Rosetta Library Overview 2

    Rocco Moretti continues the tour through the Rosetta code base, discussing the top-most protocols library, protocols.1. The key classes he highlights are the ...
  • Lab 6: Creating a Mover and using the JobDistributor

    Jason Labonte gives an overview of lab 6, which builds on labs 2 and 4. In this lab, you will take the protocol you have been developing and move that code...
  • Lecture 7: Rosetta Library Overview 3

    Andrew Leaver-Fay continues an overview of the Rosetta libraries discussing several Movers you are very likely to use and some frequently-used modules ...
  • Lab 7: Operator Overloading in C++

    Rocco Moretti introduces operator overloading in C++. In C++, operators, like "+" or "=" can be overloaded and given new meaning. In the lab associated ...
  • Lecture 8: More details of Rosetta's core library

    Jason Labonte presents on the structure of the rosetta "database" (which is a directory full of flat text files), and describes portions of the core library not...
  • Lab 8: Loop modelling

    Jason Labonte presents the two most commonly used algorithms for loop modeling used in Rosetta: cyclic coordinate descent (CCD) and kinematic loop ...
  • Lecture 9: Committing code to Rosetta

    Jason Labonte discusses the process you should go through when you are ready to merge your code into the master branch. He covers the coding conventions...
  • Lab 9: Constraining molecular systems

    Rocco Moretti presents the framework for constraining molecular systems in Rosetta. Constraints (what mathematicians would call restraints) alter the energy ...
  • Lecture 10: Geometric Hashing

    Rocco Moretti describes a few very useful algorithms for working with rigid bodies in 3D. The "matcher" solves the problem of finding where a set of active ....

 

Rosetta 2013 Boot Camp

Lab and lecture materials from the 2013 Rosetta Boot Camp are available here.

Following are video recordings of lectures and lab sessions.

  • Lecture 1: C++ 1

    Presentation #1: Matthew O'Meara introduces some preliminary concepts for object-oriented programming. Here he covers * Inheritance * Polymorphism * public /...
  • Lab 1: Git

    Presentation #2: Sam DeLuca gives an introduction to using git as a version control system used in all the labs for this course and now as the version contro...
  • Lecture 2: Memory Allocation in C++

    Presentation #3: Andrew Leaver-Fay introduces the two ways in which data may be allocated in C++: either on the stack, or on the heap. This lecture covers: *...
  • Lab 2: Rosetta Library Structure #1

    Presentation #4: Matthew O'Meara describes some of the most important classes in Rosetta: * Pose * Score Function, and * Mover.
  • Lecture 3: C++ Classes #2

    Presentation #5: Brian Weitzner introduces several important concepts for working with C++ * Function overloading * Const correctness * Static functions.
  • Lab 3: Debugging with GDB

    Presentation #6: Matthew O'Meara introduces the gnu debugger, GDB, which is an invaluable tool in debugging your programms. The associated lab with this requ...
  • Lecture 4: Graphs in Rosetta

    Presentation #7: Andrew Leaver-Fay introduces the computer science concept of a graph. Rosetta relies on graph data structures in many places, and the graph ...
  • Lab 4: Unit Tests

    Presentation #8: Andrew Leaver-Fay introduces CxxTest, the unit test framework used in Rosetta. In the associated lab, you will have to write code to find th...
  • Lecture 5: Rosetta's Library Structure #2

    Presentation #9: Andrew Leaver-Fay describes some of the foundational classes in Rosetta, covering the data structures in libraries: utility, core.1, core.2,...
  • Lab 5: C++ Classes #3

    Presentation #10: Sam deluca introduces some of the finer points in working with C++ including: * Operator overloading * Assignment operators * Shallow vs de...
  • Lecture 6: Rosetta's Library Structure #3

    Presentation #11: Tim Jacobs presents an overview of three central ways in which programmers can control the flexibility their protocols: through the PackerT...
  • Lab 6: FoldTree

    Presentation #12: Brian Weitzner introduces the class Rosetta uses to represent the kinematic structure of a molecule: the FoldTree. The FoldTree describes h...
  • Lecture 7: Rosetta's Library Structure #4

    Presentation #13: Matthew O'Meara presents an overview of the protocols.1 library. This lecture covers Rosetta's powerful, and abstract job distribution logi...
  • Lab 7: Python

    Presentation #14 Andrew Leaver-Fay introduces a powerful programming language, Python. For job control management, and post-processing, Python is a far super...
  • Lecture 8: Rosetta's Library Structure #5

    Presentation #15: Brian Weitzner introduces the protocols.3 library, which contains amongst a myriad of code, Rosetta's relax protocols and its loop modeling...
  • Lab 8: Unix Tools

    Presentation #16: Sam DeLuca introduces some unix utilities that you will undoubtedly need when working with Rosetta.
  • Lecture 9: Scientific Computing

    Presentation #17: Professor Jack Snoeyink provides a broad overview of the challenges and considerations in the field of scientific computing, presented as a...
  • Lab 9: Constraints

    Presentation #18: Tim Jacobs introduces the framework for representing arbitrary constraints into the Rosetta score function. Constraints allow the user or t...
  • Lecture 10: Relational Databases

    Presentation #19: Matthew O'Meara introduces relational databases, the structured query language (SQL), and the schema available in Rosetta for representing ...
  • Lab 10: Rosetta Library Structure #6

    Presentation #20: Andrew Leaver-Fay introduces Rosetta's sidechain optimization module, the packer, and Rosetta's torsion-based minimization routeins. These ...

 

Other Videos

The RosettaCommons YouTube channel is a repository of tutorials and informational videos. Here are some of the other videos there.

  • Protein art

    Vikram Mulligan, PhD, demos protein visualization in PyMol and Blender. In this screen capture, he shows off how to generate and save models in PyMol, how to...