This week-long course is designed to equip you with the foundational knowledge and skills for PyRosetta or C++ Rosetta code development to effectively use and contribute to the Common’s code base and workflows/protocols. This is a revamped version of the original Rosetta Bootcamp that allows participants to choose to complete the hands-on labs with PyRosetta or Rosetta C++.
This course consists of a series of interactive lectures, hands-on coding exercises, and practical mini projects. You can choose to complete your hands-on coding exercises and mini projects in Rosetta C++ or PyRosetta. You will receive guidance from experienced instructors with expertise in PyRosetta, C++ and Rosetta Library development. The course emphasizes hands-on learning, and you will be encouraged to actively participate and collaborate with your peers.
This training is designed for intermediate to advanced users and developers of Rosetta, PyRosetta, or RosettaScripts. Individuals must be computationally savvy, must be able to script and interact with the command line. Participants must have intermediate level expertise in using Rosetta and writing custom scripts in Rosetta Scripts or PyRosetta. Familiarity with Python and basic data visualization and analysis of Rosetta output is a must. The pre-bootcamp homework is designed to bring students on a basic level of understanding of coding concepts which will be deepened during the in-person portion of the Bootcamp.
Through a series of pre-bootcamp homework assignments, we will cover the basics of programming, including writing fundamental functions and classes, as well as applying essential concepts such as inheritance, loops, and syntax. We strongly encourage you to finish the homework assignments so that you have a basic level of proficiency in these areas before the in-person bootcamp starts.
The homework will start on October 3! You will be given a set of homeworks for each of the 4 weeks in October and there is a lot of material to cover. Clear your schedule for October and be ready to dive in. You will not be able to finish your homeworks with all of your other responsibilities going on at the same time, so please be mindful of that.
Also, the homework is designed for you to learn basic python or C++ concepts in your own time. If you have lots of experience, you will be able to do them in your sleep. If you are new to coding in python or C++, you will need extra time to get yourself up to speed. Also, the point of the homework is not to let AI do the work and submit the right answer, but for you to understand the underlying concepts. The best way to do this is to actually struggle through it at least once. If you decide to cheat on your homeworks using the tools available to you, you should understand that the in-person part will be infinitely more difficult for you because we can't wait for students to catch up on the basics during our 14 hour days that are already packed with lots of material to cover. Be mindful of that and welcome to Bootcamp. ;)
Learn how to navigate and utilize essential Git features to develop and manage code efficiently.
Gain an understanding of the Rosetta Library's class hierarchy and explore how to navigate a massive codebase consisting of 3.1 million lines of code. We will delve into the organizational structure and provide an introduction to the key frameworks and constructs that tie the code together.
Define the 3D internal coordinate system for biomolecules and examine and customize how perturbations and atom movements are propagated through a protein.
Develop the ability to write, compile, and debug applications in Rosetta, with the capacity to contribute to the codebase effectively. Learn how to implement changes and enhancements to the codebase.
Understand the importance of testing in software development. Learn how to automate the testing process following Rosetta guidelines and processes. Embrace the concept of TDD by writing test code before creating the actual code.
Utilize Rosetta scripts to interact with the codebase through predefined protocols. Learn how to piece together existing, documented code like assembling Lego blocks. We will also teach you how to create these pieces from scratch.
Explore and apply the landscape of major applications within Rosetta, including Relax, Docking, Packers, and Movers.
Become a valuable community member by learning how to write code that others can use effectively.