如果你接触过蛋白质科学,或者对计算生物学或合成生物学有一定了解,那么你很可能听说过David Baker的大名,在他还喜欢陪大家一起玩蛋白建模的时候,几乎每年他都是冠军,后来他不陪我们一起玩了,AlphaFold才得了冠军,最近(其实也不近了),大佬搞了一些东西想做蛋白质从头设计,那么本篇就带大家一起看看大佬写出来的软体怎么用以及 如何想办法追上大佬的脚步(划掉) 吧!


这部手册的基本思路(如何使用我)

  • Rosetta入门 这一部分,我记录了Rosetta能够解决的生物问题及其使用的抽样策略,主要包括:如何将你的问题转化为Rosetta可以理解的生物问题?Rosetta可以解决哪些生物问题?如何分析Rosetta给出的结果?我需要哪些生物物理学知识(以使用Rosetta)?
  • 随后,在接下来的四个部分中,将分别将 Rosetta建模 、 Docking 、 蛋白质改造和设计 以及 使用特殊的抽样模型 的简要原理及方法(使用的命令),你可以直接跳转到特定部分,使用已经标注好的命令来执行你的任务
  • 在最后一部分,我将记录一些来自Rosetta社区的使用案例或者最新的开发进展。

Rosetta入门(基础知识)

Rosetta的基本架构和官方文档地址:

Rosetta官方文档:从这里开始了解Rosetta的开发者们如何介绍他们的工作

rosettacommons.org/docs

简单来说,我们下载到本地的Rosetta文件实际上是一个文件夹,这个文件夹中包含了Rosetta运行所需要的生物物理学资料库、所有的Rosetta方法的程序以及一些其他的配置文件,当我们使用Rosetta时,只需要按顺序进行以下几个步骤

  1. 明确自己要解决的生物学问题,了解对应的Rosetta Protocol甚至自行编写Protocol;
  2. 准备好我们所需要操作的Input文件:比如蛋白质结构的PDB文件,相关的参数列表;
  3. 查看对应的Protocol文档,明确该Protocol的原理、参数和命令格式;
  4. 运行你的任务,等待结果,然后去看Rosetta官方文档中关于结果分析的攻略;
  5. 部分Protocol会提供详尽的结果,而大部分则需要你自行分析结果,大部分时候你需要指定恰当的聚类中心和距离进行聚类;
  6. 如果你的结果还需要进一步完善,不妨回到第一步重新进行下一轮。

因此,你首先需要做的就是了解Rosetta能够解决的生物学问题——如图所示,Rosetta可以完成下图(蛋白质计算生物学)中几乎所有的内容,只是,这些方法Protocol被独立地存放在Rosetta的方法库中,需要你对你的课题有完善且清晰的架构后再去使用。

相对比地,如果说Rosetta是蛋白质设计领域最值得推荐的工具库,那么Schoedinger就是药物设计领域最值得推荐的工具库,只不过前者开源免费不易上手,后者简单易上手但收费——这两种软体或者其他的你所擅长使用的 Bioinformatics 的软体都可以互为补充,只要你能够熟练地掌握他们之间互通的各种文件格式作为桥梁(比如PDB、SDF、Mol2)——同样,这更加需要实验者清楚地认识到建立一个框架然后按照需求去使用对应的领域中最好的工具或编写符合自己需求的工具,而不是简单Follow一种工具包。

下面是Rosetta为我们提供的所有工具包的介绍:


Rosetta能够解决的生物学问题:

基本Rosetta组件:

Protein Structure Prediction

De Novo Modeling 从头建模

  • Ab initio Modeling Tutorial
  • Tutorial on protein folding using the Broker
  • Ab initio

Comparative Modeling (Homology Modeling) 同源建模

  • Comparative Modeling Tutorial
  • Comparative Modeling (potentially out of date)
  • Comparative Modeling via RosettaScripts (uses RosettaScripts)

Specialized Protocols

  • Symmetric folding and docking of homooligomeric proteins.
  • Homology modeling of antibody variable fragments.
  • Ab initio modeling of membrane proteins.

Protein–Protein Docking

Docking Prepare:

  • preparing structures
  • pre-packed

Docking:

  • docking protocol
  • relax protocol

Protein - Protein Docking整体策略:

  • introductory tutorialon protein-protein docking

同源寡聚体:

  • Symmetric Docking
  • symmetry file

蛋白质-肽 Docking:

  • protein–peptide docking

Protein–Ligand Docking:

  • RosettaLigand
  • RosettaLigand via RosettaScripts
  • Docking Approach using Ray Casting (DARC)

Protein Design:

生成自定义的Rosetta脚本:Rosetta scripting interfaces

关于残基文件(准备好的蛋白质才能用于蛋白质设计):resfiles

蛋白质重设计:

优化Sidechain:fixed backbone design

优化Sidechain以优化疏水表面: fixed backbone design can be run with consideration of hydrophobic surface patches

其他应用:

  • scanning for stabilizing point mutations,
  • specificity prediction and library design with sequence tolerance
  • multistate design of different functions in different contexts
  • RosettaRemodel is a generalized framework for flexible backbone design
  • More RosettaRemodel documentation
  • improving solubility and reversibility of folding with surface charge
  • improving hydrophobic packing by void identification and packing

Protein Interface Design

Anchored Design Peptide Design

Enzyme Design

Enzyme Design

Protein Loop Modeling

Modeling Loops in Regions of Low Electron Density

loops from density and 用于输入细化晶体学数据 here

Modeling Loops in Regions of Low Homology or with No Secondary Structure

最快速但不精准的方法:CCD cyclic coordinate descent

最广为接受的:NGK next-generation KIC and KIC with fragments

最慢速的:stepwise loop modeling:for proteins and RNA

See the Kortemme Lab benchmark server for a comparison.

特殊的蛋白质结构:FloppyTaidl

Nucleic Acids modeling

ERRASER for RNA

解析晶体结构和核磁结构

晶体结构:

For explicit refinement of crystallography data, see here.

mr_protocols

核磁结构:

Chemical shift files 处理文件

CS-ROSETTA 处理结构

Sample X组件:

见附录1;


接下来的内容是关于Rosetta的具体使用及一个小小的使用实例,结合使用实例我们将介绍Rosetta的工具调用,结果分析和生物物理学基础:

Rosetta使用-在线Server、本地安装及配置:

Rosetta有多种使用方式,包括在线的Server、及本地安装的Py与命令行模式的Rosetta,你可以从这里了解它们:

rosettacommons.org/soft

rosettacommons.org/soft

你可以从这里直接注册学术版用户并下载Rosetta:

rosettacommons.org/soft

下载后,可以从这里按照建议安装:

rosettacommons.org/docs

在Ubuntu系统下,假如你下载的是编译后的文件(大约13G),则直接使用即可,若是编译前的文件(大约3G),你只需要解压下载到的文件,随后进入Rosetta/main/source目录下,运行命令:./scons.py -j2 bin (注意这里的-j2指的是用两个核)即可安装Rosetta,随后,记得在bashrc中添加你的Rosetta文件夹的路径,这样会为后面的工作节省很多时间。

Rosetta——入门示例:如何进行蛋白质的稳定性突变扫描?

Rosetta本身可以作为一个黑箱来使用,但是正如它的官方文档中所阐述的那样,如果你仅仅将Rosetta作为一个黑盒来使用,那对于你的科学研究将是一种莫大的伤害。然而,本手册的目的却看起来与之相悖,因此需要著重强调的是,这份手册可以作为你使用Rosetta的入门参考和接触蛋白质设计领域的起点,但绝不应该成为你使用Rosetta的终点。

使用Rosetta进行生物物理学问题的分析思路大概如下图所示:

  1. 首先你要有一个结构,这个结构的可信度越高越好,当然,你可以使用Rosetta根据电子云密度图、蛋白质序列信息等来生成这个结构;
  2. 你要选择能够帮助你解决问题的Rosetta方法,以及针对不同Rosetta方法所采用的结果分析的方法(一般来说,结果需要使用者自行分析);
  3. 计算资源——你需要充足的计算机资源,Rosetta是针对超级计算机编写的,当然它也可以适用于不同的尺度,不过充足的计算资源会让你更快得到结果。

在本次实例中,我们将使用一个简单的Rosetta方法来进行介绍。

对於单一Rosetta任务,你需要给出:

  1. Input文件,通常是蛋白质结构;
  2. 命令,其中包括调用的Protocol的位置、各种参数以及一些其他的内容;

只有两点,如此简单。

那么,对于home目录下我们保存的一个pdb文件,使用Rosetta的蛋白稳定性改造扫描的Protocol,我们应当按照这样的流程来完成整个分析过程:

1:准备好要使用的结构文件,最好是存放在一个特定目录下;

因此,我们将这个文件放到home目录下的一个叫Rosetta_task的文件夹下,这个文件夹将成为本手册所使用的规范化文件夹,假定每次任务时都要清空这个文件夹再放入我们要使用的各种文件,同时结果也会输出到这个文件夹,input文件命名为in_n,结果文件命名为out_n,n为序号。那么此时,我们的蛋白文件路径为:~/Rosetta_task/in_1.pdb

2:打开对应Protocol的文档,查看相关信息,尤其是Protocol的适用目标、命令的参数信息、范例、原理等;

打开相应文档:rosettacommons.org/docs

了解到关键信息:

input文件命令:-s 给出要进行的结构列表,pdb格式;-l 给出文本文件包含所有要进行的结构的文件名,一行一个;

-database 指定path/to/rosetta/main/database;

指定任务设置:

-double_mutant_scan 双突变

-mutants_list <file> 只做指定的特殊突变

-output_mutant_structures 输出突变后的结构

-DDG_cutoff 设定仅输出ddG优于此限制的突变

(其他信息略)

3:确认要使用的代码,记录下来并到终端运行。

我们使用的代码是(此时在Rosetta目录下):

./main/source/bin/pmut_scan_parallel.linuxgccrelease -database ./database -s ~/Rosetta_task/in_1.pdb -ex1 -ex2 -extrachi_cutoff 1 -use_input_sc -ignore_unrecognized_res -no_his_his_pairE -multi_cool_annealer 10 -mute basic core > ~/Rosetta_task/out_1

  1. 指定方法的路径,是一个目录;
  2. 指定Rosetta的资料库的位置;
  3. 指定蛋白结构文件的位置;
  4. 指定任务的生物物理学相关参数;
  5. 结果输出到对应的路径下,并创建一个文本记录;

4:查看结果文件,进行分析

这次任务输出的结果是这样的:

mutation mutation_PDB_numbering average_ddG average_total_energy

A-P55S A-P64S -64.671 305.99

A-P55R A-P64R -63.541 307.12

A-P55H A-P64H -63.462 307.19

A-P55T A-P64T -63.232 307.42

A-P55K A-P64K -62.909 307.75

A-P55N A-P64N -62.753 307.9

A-P55Q A-P64Q -62.628 308.03

……

很显然,我们需要对结果进行排序并选出更好的,因此,我们可以用Excel打开此文本,并指定空格为分列符,随后进行排序即可。


欢迎关注我们的专栏,获取更多干货内容!孢子学院的生物学

喵大侠:【孢子学院】专栏目录索引与投稿须知

喵大侠:关于文献调研:检索、分析、阅读与总结

月生南浦:植物代谢工程助力萜类药物合成:胁迫因子、基因工程与全局调控

喵大侠:知识树:分子生物学基础知识要点——从基因组到生命体

喵大侠:「知乎知识库」— 朊病毒

喵大侠:【推荐】Microsoft Flow:多种任务管理、云盘以及办公软体之间的桥梁


你还可以参考以下内容了解如何更进一步使用Rosetta:

rosettacommons.org/docs

rosettacommons.org/docs

rosettacommons.org/docs

rosettacommons.org/docs

Rosetta-建模:

Rosetta-Docking:

Rosetta-蛋白质改造与设计:

Rosetta-特殊抽样模型:

Rosetta-社区专题摘录:

附录1 SampleX 组件

Structure determination via fragment substitution

  • AbscriptLoopCloserCM
  • handles loop closure in ab initio relax circumstances
  • AbscriptMover

Structure generation

  • BackboneGridSampler
  • BuildSheet
  • BundleGridSampler
  • PerturbBundle
  • PerturbBundleHelix
  • MakeBundle
  • MakeBundleHelix
  • MakePolyX
  • BackboneSampler
  • FitSimpleHelix
  • InsertPoseIntoPoseMover pose combination
  • build_Ala_pose
  • SetupForSymmetry Necessary before doing anything else symmetrically
  • AddHydrogens adds and optimizes missing hydrogens
  • SymmetricAddMembraneMover
  • GrowPeptides
  • From electron density:
  • IdealizeHelices
  • RecomputeDensityMap
  • CartesianSampler

Residue Insertion and Deletion

  • AddChain
  • AnchoredGraftMover
  • CCDEndsGraftMover
  • CutOutDomain
  • DeleteRegionMover
  • InsertPoseIntoPoseMover
  • KeepRegionMover
  • MotifGraft
  • ReplaceRegionMover
  • Splice
  • SwitchChainOrder

Structure optimization

  • IdealizeMover
  • Replace every residue with a version with bond lengths and angles from the database. Add constraints to maintain original hydrogen bonds. Then, minimize every side-chain and backbone dihedral (except proline phi) using dfpmin.
  • FinalMinimizer
  • SaneMinMover
  • TaskAwareMinMover
  • Symmetrizer
  • Functionally an optimization mover; will take a pose with sufficiently small deviations from symmetry and resolve them.
  • TaskAwareSymMinMover
  • SymMinMover
  • minimize with symmetry
  • LocalRelax
  • FastRelax
  • Repeatedly repack sidechains and minimize sidechains and backbone while ramping the repulsive weight up and down. Respects resfiles, movemaps, and task operations.
  • RepackMinimize Like a single cycle of relax, with a constant repulsive weight.
  • MinPackMover
  • EnzRepackMinimize
  • MinMover
  • MinimizationRefiner
  • NormalModeMinimizer

Ensemble generation

  • FastRelax
  • Backrub
  • ParallelTempering
  • CanonicalSampling
  • BBGaussian
  • GenericSimulatedAnnealer
  • GeneralizedKIC

Backbone degrees of freedom

Backrub

BackrubDD

BackrubSidechain

ShortBackrubMover

  • A particular form of backbone movement intended to coordinate with maintaining particular side chain positions.
  • Small Make small perturbations to a backbone degree of freedom
  • Shear Make small perturbations to one dihedral of a residue and contravarying perturbations to the other dihedral, to avoid a "lever arm effect"
  • SetTorsion
  • Either set a torsion to a value or perturb a torsion by a value (with the perturb flag)
  • MinimizeBackbone
  • Just minimize the backbone
  • RandomOmegaFlipMover Flip a random omega angle; most useful for peptoids
  • BackboneTorsionPerturbation
  • BackboneTorsionSampler
  • BBGaussian

Sidechain degrees of freedom

  • SetChiMover
  • SymRotamerTrialsMover
  • PackRotamersMover
  • RotamerTrialsMinMover
  • RotamerTrialsMover
  • RotamerTrialsRefiner
  • Sidechain
  • SidechainMC
  • RepackTrial
  • RepackingRefiner
  • BoltzmannRotamerMover
  • PackRotamersMoverPartGreedyMover
  • Prepack
  • SymPackRotamersMover
  • PerturbRotamerSidechain
  • DnaInterfacePacker
  • PerturbChiSidechain

Any conformational degree of freedom

  • RandomTorsionMover
  • Perturbs a random torsion selected from a movemap

Loop conformational sampling

  • AnchoredGraftMover
  • a composite mover that does a lot of loop modeling followed by repacking to graft in residues
  • KicMover
  • LegacyKicSampler
  • SmallMinCCDTrial
  • ShearMinCCDTrial
  • LoopBuilder
  • LoopCM
  • LoopCreationMover
  • LoopFinder
  • LoopHash
  • LoopHashDiversifier
  • LoopHashLoopClosureMover
  • The LoopHash algorithms constitute a very rapid way to draw on loop conformations from fragment libraries that could achieve a given closure
  • LoopLengthChange
  • LoopModeler
  • LoopMoverFromCommandLine
  • LoopMover_Perturb_CCD
  • LoopMover_Perturb_KIC
  • LoopMover_Perturb_QuickCCD
  • LoopMover_Perturb_QuickCCD_Moves
  • LoopMover_Refine_Backrub
  • LoopMover_Refine_CCD
  • LoopMover_Refine_KIC
  • LoopMover_SlidingWindow
  • LoopProtocol
  • LoopRefineInnerCycleContainer
  • LoopRelaxMover
  • LoopRemodel
  • LoophashLoopInserter
  • LoopmodelWrapper
  • CCDEndsGraftMover
  • CCDLoopCloser
  • CCDLoopClosureMover
  • DefineMovableLoops
  • GeneralizedKIC
  • An enormous, intricate system that largely operates on its own to perform kinematic loop closure on an arbitrary sequence of atoms.

Docking

DARC app

  • Via a ray casting algorithm particularly fast on GPUs

FlexPepDock

  • Concurrently samples backbone degrees of freedom on the peptide

SymDockProtocol

  • Symmetric oligomer docking

RigidBodyTransMover

  • manually manipulate the relative position of two bodies across a jump
  • RigidBodyPerturbNoCenter
  • UnbiasedRigidBodyPerturbNoCenter
  • UniformRigidBodyCM
  • Docking
  • DockingInitialPerturbation
  • DockingProtocol
  • DnaInterfaceMinMover
  • SymFoldandDockRbTrialMover
  • HighResDocker
  • DockSetupMover
  • DockWithHotspotMover

Chemical connectivity

  • ForceDisulfides
  • Given a list of residue pairs (for example, disulfides), repack residue shells around them but do not change the CYS-type residues themselves.
  • DisulfideInsertion
  • Mutates two residue positions to CYS:disulfide, link them conformationally, and add constraints to have good disulfide distance, angle, and dihedral to the pose. Intended for adding a disulfide to short potentially macrocyclic peptides.
  • DisulfideMover
  • Given two residue positions, mutate both to CYS:disulfide and link them conformationally; do no repacking or minimization
  • Disulfidize
  • Tries every possible pair of residues in a pose to try to introduce one or more new disulfides as long as they score well

Design

  • FastDesign
  • Controlling amino acid composition during design
  • CoupledMover
  • FastRelax mover that does design during repacking
  • RemodelMover
  • Extremely diverse function: can do design, repacking, complete backbone remodeling, disulfide construction, and so forth
  • enzyme design
  • EnzdesRemodelMover
  • PredesignPerturbMover
  • DesignMinimizeHbondsMover
  • GreedyOptMutationMover
  • ParetoOptMutationMover
  • MutateResidue
  • RandomMutation
  • ConsensusDesignMover
  • AntibodyDesignMover
  • AntibodyDesignProtocol
  • DesignProteinBackboneAroundDNA
  • MatDesGreedyOptMutationMover

FlxbbDesign

  • Can be given a blueprint file to extrapolate into a movemap; does design, can do some relaxation; converts your pose to alanine before designing
  • DnaInterfaceMultiStateDesign

NcbbDockDesign

  • docking and design of noncanonical backbones (peptidomimetics)
  • LigandDesign
  • Not design movers per se, but they bias the amino acid composition for a sequence and thus can contribute to a design protocol.
  • SetAACompositionPotential
  • FavorNativeResidue
  • FavorNonNativeResidue
  • FavorSequenceProfile
  • FavorSymmetricSequence
  • FindConsensusSequence

Analysis

  • InterfaceAnalyzerMover
  • ComputeLigandRDF
  • InterfaceScoreCalculator
  • MetricRecorder
  • LoadVarSolDistSasaCalculatorMover
  • LoadZnCoordNumHbondCalculatorMover

Symmetric interfaces

  • SymRotamerTrialsMover
  • SymPackRotamersMover

SymDockProtocol

  • Symmetric oligomer docking

Symmetrizer

  • Functionally an optimization mover; will take a pose with sufficiently small deviations from symmetry and resolve them.

TaskAwareSymMinMover

SymMinMover

  • minimize with symmetry
  • DetectSymmetry
  • GenericSymmetricSampler
  • fold and dock
  • SymFoldandDockMoveRbJumpMover
  • SymFoldandDockSlideTrialMover
  • SymFoldandDockRbTrialMover

Molecular dynamics codes

  • CartesianMD
  • HamiltonianExchange

Peptidomimetics

  • NcbbDockDesign
  • OopCreatorMover
  • OopDockDesign

Antibody Modeling and Design

  • AntibodyDesignMover
  • AntibodyDesignModeler
  • AntibodyDesignProtocol
  • CDRDihedralConstraintMover
  • ParatopeSiteConstraintMover
  • ParatopeEpitopeSiteConstraintMover

推荐阅读:

相关文章