The RECON algorithm was developed by Alex Sevy in Jens Meiler lab. Please contact jens@meilerlab.org or alex.sevy@gmail.com with any questions.
Application source code is located at src/apps/public/recon_design/recon.cc. The individual movers that control behavior of the RECON algorithm are found at src/protocols/recon_design/. Protocol captures for published material using the method can be found at https://github.com/sevya/msd_analysis_scripts and https://github.com/sevya/parallelized_RECON_protocol_capture.
For more information on the purpose and scope of the RECON algorithm, please consult the following publications:
The RECON algorithm performs multi-specificity design on a set of protein states. It can be used to improve binding affinity to a variety of targets, or estimate sequence space available to different conformations. Other multistate design methods can be slow and limited in terms of the number of designed residues or number of input states. RECON uses a heuristic to cut down the amount of sequence space needed to find an optimal multistate solution. This means that you can incorporate other movements, such as backbone movements, during design. RECON can run in parallel on multiple processors using MPI to allow large number of states in multistate design simulations.
The algorithm works by allowing each protein state to sample sequence space independently, then encouraging them to converge on a single sequence through the use of sequence constraints. In this way the large sequence space of a design problem can be minimized, by limiting the search space to that which is feasible in the context of any individual state. It is most useful for multi-specificity design, for example designing an antibody against a panel of desired targets to increase its affinity and/or breadth.
The RECON application is very similar to the RosettaScripts application. It takes in an XML script that defines the movers, filters, score functions, etc. to be used during the protocol. Any regular mover can be used in the RECON application. There are also two Movers and one Filter that are RECON-specific and can't be used in an XML through RosettaScripts. These Movers/Filters are described below:
Multistate design mover used in the RECON protocol. MSDMover applies linking constraints to a pose based on the sequence of other input poses, then uses a predefined design mover to run design based on these sequence constraints. These constraints are then removed for the next step of the protocol.
<MSDMover name="(&string)" design_mover="(&string)" post_mover="(&string)" resfiles="(&strings)"
constraint_weight="(1.0 &real)" debug="(false &bool)" />
Multistate design mover used at the end of the RECON protocol. In the RECON protocol multiple states are designed independently with a sequence constraint to encourage convergence on a single solution. At the end FindConsensusSequence is used to choose a single sequence that is optimal for all states. It does this by, at each position, swapping out all possible amino acids that are present on at least one state, measuring the fitness of each candidate amino acid and choosing the best.
<FindConsensusSequence name="(&string)" scorefxn="(talaris2014 &string)"
resfiles="(&strings_comma_separated)" task_operations="(&string)" debug="(false &bool)" />
Filter designed for use in RECON protocol. It measures the fitness of all input states, where fitness is defined as the sum of energy of all states. Fitness can then be used in a Monte Carlo cycle using the GenericMonteCarloMover or simply output to a scorefile.
<FitnessFilter name="(&string)" scorefxn="(talaris2014 &string)" output_to_scorefile="(false &bool)" threshold="(&real)" />
recon.default.linuxgccrelease -database Rosetta/main/database/ -use_input_sc -ex1 -parser:protocol msd_brub.xml -nstruct 100 -out:suffix _msd_rlx -s state_A.pdb state_B.pdb state_C.pdb state_D.pdb state_E.pdb
mpiexec -n 5 recon.mpi.linuxgccrelease -database Rosetta/main/database/ -use_input_sc -ex1 -parser:protocol msd_brub.xml -nstruct 100 -out:suffix _msd_rlx -s state_A.pdb state_B.pdb state_C.pdb state_D.pdb state_E.pdb
resfiles
, make sure they're in the same order as the states as passed in on the command line). "Error: all states must have the same number of designable residues"
, this means the resfiles are defining a different number of designable residues between the states. All input states must have exactly the same number of designable residues, or else you wouldn't be able to correspond between different states. Even if the number of ALLAA
is the same in all your resfiles, you can get different number of designable residues if you're trying to design a disulfide-bonded cysteine, or a residue that doesn't exist. Double check that your resfiles are in the same order as your input PDBs.RECON is unable to perform negative design, i.e. designing a sequence that will maximize energy on a given conformation.