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

Revisions №60892

branch: master 「№60892」
Commited by: Vikram K. Mulligan
GitHub commit link: 「350c90ea002146c3」 「№3593」
Difference from previous tested commit:  code diff
Commit date: 2019-08-23 15:03:26
linux.clang linux.gcc linux.srlz mac.clang
linux.clang.cxx11thread.serialization.python37.PyRosetta4.unit linux.gcc.python36.PyRosetta4.unit mac.PyRosetta.unit build.clean.debug cppcheck 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 ninja graphics static linux.ui mac.ui build.xcode beautification code_quality.clang_analysis serialization integration.mpi integration.release_debug integration.tensorflow integration.thread integration performance profile release.PyRosetta4.MinSizeRel 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 util.apps

Merge pull request #3593 from RosettaCommons/vmullig/bundle_struct_prediction Fragment-free structure prediction When designing proteins, we use _ab initio_ structure prediction as a final validation step. This is useful because it's a test with more false negatives than false positives: if we have 1000 designs, we might throw some away wrongly because Rosetta incorrectly predicts that they don't fold (or doesn't sample close to the designed state), but we tend not to accept a bad design wrongly. Rosetta's _ab initio_ algorithm is, however, dependent on fragments or proteins of known structure. We need an equivalent for heteropolymer design with noncanonical building blocks. When designing with noncanonicals, we can't use fragments: we don't have databases of folded noncanonical heteropolymers of known structure. We already have a solution for cyclic peptides (GeneralizedKIC / simple_cycpep_predict), but I want to be able to validate linear peptides, peptoids, _etc._ So I'm going to try to write a fragment-free structure predictor for linear structures. This is a first attempt at a helix-coil transition-based predictor. The idea is: - Sample random coil regions with a combination of the SmallMover and randomization biased by Ramachandran propensities. - Sample helical regions using parametric generators to alter helix curvature and curvature direction. - Allow nucleation, elongation (with possible merging of helices), and retraction/fraying moves with various probabilities to allow transitions from helix to coil and coil to helix. Allowed moves are shown here: ![samplingmoves](https://user-images.githubusercontent.com/4205776/47827196-b2b40880-dd52-11e8-899e-b30a77d17339.png) This doesn't have to be as good as fragment-based _ab initio_ (since some false negatives are okay, but false positives are not). Nevertheless, I'll try to optimize it first by getting it to predict proteins of known structure, then go on to try to validate my peptoid designs. Tasks: - [x] Add the app. - [x] Add the protocols-level implementation of the app. - [x] Have it do something. - [x] Integration test. - [x] Allow `in:file:fasta` or `sequence_file` for constructing the pose. - [x] Add a RandomizeBBByRamaPrePro mover -- we don't currently have this functionality. - [x] Unit test. - [x] Documentation. - [x] Add a simulated annealing temperature generator. - [x] Add a Monte Carlo move generator. - [x] Tie in to the parametric code to allow sampling helix curvature. - ~~Sensible FoldTree setup: if one or more fixed, folded protein domains are supplied on the command line, at least one should contain the root. (This should be applicable to the case of "enormous loop modeling problems", too: if you have a fixed hairpin with residues A:1-20 and A:481-500, you should be able to model the "middle bit" without either part of the "outside bit" moving.~~ --> For a future pull request. - ~~Generalize the bits that throw red warnings right now because they're hard-coded for proteins right now.~~ --> For a future pull request - [x] Add MPI support. - [x] Move most of the generic code from `SimpleCycpepPredictApplication_MPI` to a base class, and create subclass `HelicalBundlePredictApplication_MPI`. - [x] Check that I didn't break simple_cycpep_predict: **CREATE A SCIENTIFIC TEST FOR THIS BEFORE MERGING THIS PULL REQUEST**. - [x] Add multi-threading support. - [x] Benchmark on Blue Gene/Q. - [x] Tune the parameters for the temperature scheme and the rules for the Monte Carlo moves. - [x] Document the helix definitions file format. - [x] Documentation. --> Documentation is here: https://www.rosettacommons.org/docs/wiki/structure_prediction/helical-bundle-predict (or https://www.rosettacommons.org/docs/latest/structure_prediction/helical-bundle-predict). - [x] Beauty. - [x] Remove added line from VSCode configuration (defining `USEMPI` temporarily). @dougrenfrew @everyday847 @jameseastwood (Here's an early attempt at predicting the structure of one of @cdbahl's helical bundle mini-proteins:) ![attempt2](https://user-images.githubusercontent.com/4205776/47611648-e71c8180-da3f-11e8-8573-5578a6e744d7.gif)