如果你接觸過蛋白質科學,或者對計算生物學或合成生物學有一定了解,那麼你很可能聽說過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

推薦閱讀:

相關文章