Rosetta 3.3
Documentation for InterfaceAnalyzer application
Steven Lewis, P. Ben Stranges


Last updated 4/7/11 by Steven Lewis. The PI is Brian Kuhlman,

Code and Demo

InterfaceAnalyzer has a suite of integration test/demos at test/integration/tests/InterfaceAnalyzer. The application resides at src/apps/public/analysis/, and its mover at src/protocols/anchored_design/InterfaceAnalyzerMover.*


No references are directly associated with this protocol. It was used with Documentation for AnchoredDesign application (see that app's documentation) and CAPRI21 interface descrimination.


This application combines a set of tools to, you guessed it, analyze interfaces. It calculates binding energies, buried interface surface areas, and other useful interface metrics. The bulk of the code is a Mover intended to be used at the tail end of interface modeling protocols; it considers that situation to be its primary client. This application is a front-end directly onto that Mover; it is considered a secondary purpose.


This code does not purposefully modify the input; instead it scores it using interface-related metrics and reports the scores.

How the interface is detected when packing the interface

For the purposes of packing, the PackerTask is set up like so:

None of these operations (except the resfile) affect the choice of what residues are at the interface.

The interface is detected via InterfaceNeighborDefinitionCalculator for two-chain interfaces. The interface is detected via InterGroupNeighborsCalculator for the multichain constructor. It serves basically the same purpose, but can detect interfaces between groups of chains. The set of residues allowed to pack from either of these calculators is logical-ANDed with the set allowed to pack from the resfile (if present); whatever both says can pack forms the interface for the purposes of repacking.


This code does not directly support ddG's of binding, but you can get that effect by running it a few times with pre-mutated structures. Any metric not listed in this file can't be directly calculated.

The -fixedchains option is not tested beyond three chains. It will probably work but use it with care.

There is no way to output the intermediate separated chains when using the separated packing options - you are free to poke around in the code and place dump_pdb statements if you want them.


The two major modes are for two-chain and multichain interfaces. For two-chain interfaces, you need to do nothing. For interfaces involving more than two chains, you can tell the code which chains are in which group, to define the interface. You can only get an interface between two groups.

Another variable that might count as a "mode" is tracer vs. PDB output. For this standalone executeable, printing results to the screen (and not bothering to output "result" PDBs matching the input) is desired (and defaulted). When InterfaceAnalyzerMover is used as part of a protocol it is more common to prefer the latter.

Input Files


Describe the options your protocol uses.

General Rosetta/JD2 options are accepted: in:file:s, in:file:l, in:file:silent for input; -database for the database, etc.


Expected Outputs

InterfaceAnalyzer generates a ton of data about your input structure. The following are fields in the scorefile or pdb (if -tracer_data_print is false) that will be added by this application.

The following is output to either tracer or the output pdb (depending on the -tracer_data_print option), but (as of this writing) cannot be sent to a scorefile:

The following are fields that appear in the tracer output if -tracer_data_print is true:

Post Processing

This application is part of your post processing for other executeables; there is really no post-processing to do for itself.

New things since last release

This is the first release.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines