Showing posts from September, 2021

Streamlining the RosettaScripts Interface: RosettaScripts Type-hinting in VS Code

~  contributed by  Dr. Vikram Mulligan RosettaScripts Type-hinting in VS Code By Dr. Vikram Mulligan, Research Scientist, Flatiron Institute The RosettaScripts scripting language began as a loose XML-like language with informal syntax, with each Rosetta module defining its own XML interface.  This made it difficult to ensure that Rosetta could handle bad inputs correctly: often, typos or nonsensical inputs were simply ignored, and users were not alerted about problems in their scripts.  This was solved by formalizing the XML interface with an XML Schema Definition (XSD), a project led by Dr. Andrew Leaver-Fay a few years back.  We now require any Rosetta module with an XML interface to provide a machine-readable description of the XML interface, permitting automated checking of syntax, unused inputs, etc., and allowing informative error messages. Rosetta now automatically interrogates all of its own modules on startup and constructs a unified XSD for the entire RosettaScripts language.

Streamlining the RosettaScripts Interface: SimpleMetrics in protocols

~  contributed by Dr. Rocco Moretti SimpleMetrics in protocols By Dr. Rocco Moretti, Associate Professor, Meiler Lab, Vanderbilt SimpleMetrics are a flexible way to perform analysis on your structures. They are a much cleaner way of performing such an analysis when compared to the previous approach of commandeering the reporting functionality of RosettaScripts Filters. However, the initial implementation required that any SimpleMetric be accessed through the RunSimpleMetrics mover. This meant that using SimpleMetrics was sometimes more laborious than using an equivalent Filter, due to Filters being accessible directly from the PROTOCOLS section of the RosettaScripts XML. To make SimpleMetrics easier to use, a `metrics` attribute was added to the `Add` tags in the PROTOCOLS section. This way, adding a SimpleMetric report as a stage in the protocol is as easy as adding an additional Mover or Filter. One consideration in this implementation is how to determine the name under which the r

Streamlining the RosettaScripts Interface: Integrated Logic Selection and LogicSelector

~  contributed by Dr. Jared Adolf-Bryfogle and Frances Chu Integrated Logic Selection  By  Dr. Jared Adolf-Bryfogle, Principal Scientist, Protein Design Lab, Institute for Protein  Innovation RosettaScripts has progressed to become one of the main interfaces to the Rosetta Software Suite.  Within RosettaScripts, there are a number of different sections that enable customized protocols.  Two of the newest components are ResidueSelectors and SimpleMetrics .  ResidueSelectors allow one to select a group of residues based on some criteria, while SimpleMetrics allow one to output a variety of metrics for each molecule under consideration, with many of them being per-residue metrics. I introduced SimpleMetrics to make benchmarking and analysis tasks easier.  For simple tasks, a single ResidueSelector is usually sufficient, but for more real-world applications, one usually would need to define large logic strings to get at the residues of interest.  This would be accomplished by individual s