「view this page in B3 βῆτα server」

Revisions №61704

branch: master 「№61704」
Commited by: Labonte
GitHub commit link: 「9544bff08d9f722e」 「№5421」
Difference from previous tested commit:  code diff
Commit date: 2021-07-13 12:55:59
linux.clang linux.gcc linux.srlz mac.clang
debug
release
unit
PyRosetta4.notebook gcc-9.gcc.python37.PyRosetta4.unit linux.clang.cxx11thread.serialization.python37.PyRosetta4.unit linux.gcc.python36.PyRosetta4.unit mac.PyRosetta.unit build.clean.debug alpine.gcc.build.debug clang-10.clang.cxx11thread.mpi.serialization.tensorflow.build.debug gcc-10.gcc.build.debug gcc-9.gcc.build.debug mysql postgres linux.clang.python36.build.debug linux.zeromq.debug mpi mpi.serialization linux.icc.build.debug OpenCL mac.clang.python36.build.debug build.header build.levels build.ninja_debug graphics static beautification code_quality.clang_analysis code_quality.clang_tidy code_quality.cppcheck code_quality.merge_size serialization code_quality.submodule_regression integration.mpi integration.release_debug integration.tensorflow integration.thread integration performance profile release.source linux.clang.score linux.gcc.score mac.clang.score linux.scripts.pyrosetta scripts.rosetta.parse scripts.rosetta.validate scripts.rosetta.verify linux.clang.unit.release linux.gcc.unit.release mac.clang.unit.release gcc-10.gcc.unit gcc-9.gcc.unit util.apps windows.build.debug windows.build.release

Merge pull request #5421 from RosettaCommons/JWLabonte/sugars/bidirectional_linkages Carbohydrates: Enabling Bidirectional Glycosidic Linkages This merge introduces "bidirectional glycosidic linkages" into Rosetta. Most sugar linkages connect an oxygen _not_ attached to the anomeric carbon of one sugar to the anomeric carbon of the "child" sugar. Such linkages are designated with notation such as β-D-Glcp-(1→4)-β-D-Glcp, where C1 is the anomeric carbon and the child residue comes before the parent residue, (since it is considered a substituent to the main group, the parent. Yes, sugar sequences run "backwards" relative to protein ones.) However, some disaccharides do not have a free hemiacetal group. That is, they are attached from the anomeric hydroxy group of the parent to the anomeric carbon of the child. The notation for such a linkage uses a bidirectional arrow, like in sucrose: α-D-Glcp-(1↔2)-β-D-Fruf. (One could also write β-D-Fruf-(2↔1)-α-D-Glcp, and, in fact, this is the preferred IUPAC name, because of reasons of arbitrary "group priorities". (See: https://www.qmul.ac.uk/sbcs/iupac/2carb/36.html.) However, this naming is dumb, I declare, because it ignores the biochemical fact that it is the fructose's hydroxyl that is the nucleophile in natural biosyntheses of this disaccharide, and IUPAC allows this so-called "sequential method" for oligo- and polysaccharides: https://www.qmul.ac.uk/sbcs/iupac/2carb/37.html.) Besides this naming ambiguity, which already mucks up the abyssal nomenclature of sugars in the PDB, there is an issue with main-chain length. "Normal" sugars in Rosetta were designed such that the main chain of a residue always starts at the anomeric carbon and proceeds to the linkage oxygen. However, if the linkage oxygen is off the anomeric carbon, this gives a too-short main chain for Rosetta to be able to handle, _e.g.,_ C2-O2-UPPER for the furanose residue above. A further problem involves patching. The fructose residue of sucrose can only be a lower terminus; since its anomeric hydoxyl was the nucleophile used to form the linkage, it cannot also have been the leaving group to accept attack from a previous residue. My solution is to make saccharide residues for such linkages `LOWER_TERMINUS` variants in their `.params` files and to build their main chains from one atom previous to their anomeric carbon. For ketoses, this is would be no big deal, but it is more challenging/annoying for aldoses, which have an anomeric carbon of C1. Thus, I use the virtual ring atom as the first atom for both cases, which requires some minor tweaking of rules for `Pose` creation.

Labonte 3 years
I have fixed the broken PyRosetta4.notebook test, but the change needs to be approved and merged into master.