Each filter definition has the following format in the FILTERS block:

<FILTERS>
<SomeFilterName name="&string" confidence="(1 &Real)" other_option=""/>
</FILTERS>

where "SomeFilterName" belongs to a predefined set of possible filters that the parser recognizes and are listed below, name is a unique identifier for this mover definition and then any number of parameters that the filter needs to be defined.

Filters can be run on arbitrary SimpleMetrics, which will eventually replace some aspects of the Filter system. See the special SimpleMetricFilter for using arbitrary metrics for filtering.

If confidence is 1.0, then the filter is evaluated as in predicate logic (T/F). If the value is less than 0.999, then the filter is evaluated as fuzzy, so that it will return True in (1.0 - confidence) fraction of times it is probed. This should be useful for cases in which experimental data are ambiguous or uncertain.

## Predefined Filters

Simple filter which are available without explicitly defining them.

Filter Description
TrueFilter Always passes.
FalseFilter Never passes.

## Special Filters

Filters which are useful for combining, modifying or working with other filters and movers.

Filter Description
CompoundStatement Uses previously defined filters with logical operations to construct a compound filter.
CombinedValue Weighted sum of multiple filters.
CalculatorFilter Combine multiple filters with a mathematical expression.
ReplicateFilter Repeat a filter multiple times and average.
Boltzmann Boltzmann weighted sum of positive/negative filters.
MoveBeforeFilter Apply a mover before applying the filter.
Operator Apply a fuzzy logic operation to a set of filters.
Sigmoid Transform a filter's value according to a sigmoid function.
IfThenFilter Evaluate to a value contingent on the true/false value of other filters.
ContingentFilter A special filter that allows movers to set its value (pass/fail).
PoseComment Test for the existence or the value of a comment in the pose.
Range Returns true if the value of a given filter is in a given range.

## General Filters

Filter Description
SimpleMetricFilter Filter based on any arbitrary SimpleMetric

### Basic Filters

Filter Description
ResidueCount Filter based on the total number of residues.
NetCharge Filter based on simple sum of protein charge.

### Energy/Score

Filter Description
ScoreType Filter based on a particular score term.
TaskAwareScoreType (Formerly AverageInterfaceEnergy) Filter on score of "packable" residues.
BindingStrain Filter on energetic strain in a bound monomer.
ConstraintScore Filter that generates a score from a set of constraints generated by ConstraintGenerators
Delta Compute difference from native of filter value.
EnergyPerResidue Filter on energy of specific selection (residue(s), interface, protein).
ReadPoseExtraScoreFilter Extract score previously stored in the pose.
Residue Interaction Energy Filter on energy of specific residue in the context of an interface or pose.
ResidueSetChainEnergy Filter on energy of residue set (either in chain or selection).
ScorePoseSegmentFromResidueSelectorFilter Obtain the score of a requested section of a Pose through a ResidueSelector.

### Distance

Filter Description
ResidueDistance Filter based on the distance between two residues.
AtomicContact Are any atoms on two residues within a cutoff distance?
AtomicContactCount Count number of carbon-carbon contacts.
AtomicDistance Filter based on the distance between two atoms.
TerminusDistance Distance in sequence from either terminus to interface.

### Sequence analysis

Filter Description
LongestContinuousPolarSegment Filter based on length of longest stretch of polar amino acid residues.
LongestContinuousApolarSegment Filter based on length of longest stretch of apolar amino acid residues.
SequenceDistance Filter based on the number of mutations between pose sequence and sequence stored in comments in pose.

### Alignment analysis

Filter Description
AlignmentAAFinder Scans through an alignment, tests all possible amino acids at each position, and generates a file of passing amino acids.
AlignmentGapInserter Scans through an alignment and inserts gaps where positions in the alignment are not representative of the chemical environment of the pose sequence.

### Geometry

Filter Description
AngleToVector Filter on angle between two atoms on the first residue of a chain and a given vector.
Torsion Filter based on the value of a dihedral.
HelixPairing Filter structures based on the geometry of helix pairings.
SSMotifFinder Filter structures based on the geometry of loop stems.
SecondaryStructure Filter structures based on secondary structure.
SecondaryStructureCount Count number of a single secondary structure element.
SecondaryStructureHasResidue Count fraction of secondary structure element positions containing specific residue.
HelixKink Vaguely, filter based on helix topology.
Geometry Bond geometry and omega angle constraints
HSSTriplet Evaluate the given helix-strand-strand triplets.
PreProlineFilter Check for bad torsions in residues before prolines
LoopAnalyzerFilter Check for bad loop backbone geometries

### Packing/Connectivity

Filter Description
CavityVolume Always returns true, but calculates intra-protein cavity volume.
AverageDegree Count number of residues within a distance of another selection of residues.
PackStat Compute packing statistics.
Holes Identify voids (holes) in packing
InterfaceHoles Identify voids at protein-protein interfaces.
NeighborType Search for residue type within a radius of a target residue.
ResInInterface Filter based on the total number of residues in the interface.
ShapeComplementarity Filter on shape complementarity of interface.
SSShapeComplementarity (SecondaryStructureShapeComplementarity) Filter on secondary structure shape complementarity.
SpecificResiduesNearInterface Filter on specific residues near interface.

### Burial

Filter Description
TotalSasa Filter based on the total solvent accessible surface area of the pose.
Sasa Filter based on the solvent accessible surface area of an interface.
ResidueBurial Number of residues within interaction distance across interface of target residue.
BuriedSurfaceArea Computes the buried surface area for a pose or selection, with an option to consider hydrophobic residues only.
ExposedHydrophobics Computes the SASA for each hydrophobic residue.

### Comparison

Filter Description
RelativePose Compute a filter's value relative to a different pose's structure.
Rmsd Filter based on the C-alpha RMSD to a reference structure.
SidechainRmsd Compute RMSD for a single sidechain.
IRmsd Filter based on backbone RMSD over residues in the interface.
RmsdFromResidueSelectorFilter Similar to the Rmsd. It allows to provide ResidueSelectors for both the query and reference poses.
SequenceRecovery Calculates the fraction sequence recovery of a pose compared to a reference pose.

### Bonding

Filter Description
ChainBreak Filter on number of chain breaks in pose.
HbondsToResidue Filter on number of h-bonding partners to a residue.
SimpleHbondsToAtom Filter on number of h-bonding partners to an atom(s) with significantly simpler logic than HbondsToAtom.
HbondsToAtom Filter on number of h-bonding partners to an atom(s).
BuriedUnsatHbonds Filter on maximum number of buried unsatisfied h-bonds.
BuriedUnsatHbonds2 Filter on number of unsatisfied h-bonds at interfaces (different algorithm from filter above, currently devel only).
OversaturatedHbondAcceptorFilter Filter on number of hydrogen bond acceptors that are receiving hydrogen bonds from more than the allowed number of donors.
DisulfideFilter Filter based on the presence of a disulfide across an interface.
AveragePathLength Compute shortest graph path length where residues are nodes and covalent bonds are edges.
DisulfideEntropy Compute the change in configurational entropy due to disulfide bond formation.

## Report Filters

These filters are used primarily for the reports they generate in the log and/or score and silent files, more so than their ability to end a run.

Filter Description
BundleReporter Report the helical bundle parameters and energy of a parametrically-generated pose.
DesignableResidues Report which residues are designable.
Expiry Filter based on length of simulation (in seconds).
FileExist Does a file exist on disk?
FileRemove Remove a file from disk.
RelativeSegmentFilter Reports the numbers of residues that align with a segment on source pose.
Report This filter reports the value of another filter with the current job name.
RotamerBoltzmannWeight Reports the Boltzmann probability for the occurrence of a rotamer.
RotamerBoltzmannWeight2 Reports the Boltzmann probability for the occurrence of the specific rotamers in a given residue subset. Multiple methods for computing probability and scoring are available.
StemFinder Compare PDBs to template to identify stems for splicing segments.
AlaScan Reports ddG of alanine scanning.
DdGScan Reports ddG of alanine scanning on specific residues. This filter used to be named "TaskAwareAlaScanFilter".
FilterScan Scan all mutations allowed by task_operations and test against a filter.
Time Report how long a sequence of movers/filters takes.
PeptideDeriver Derive linear peptide contributing most to binding energy.
PoseInfo Report basic information about the pose to the tracer.
SaveResfileToDisk Save resfile to output directory.
SSPrediction Generate secondary structure predictions from sequence.
ChainCountFilter Count the number of chains in a Pose.

## Special Application Filters

### Binding

Filter Description
Ddg Filter based on the binding energy.
InterfaceBindingEnergyDensityFilter Filter based on ddG dived by SASA (using the respective filters).
InterfaceHydrophobicResidueContacts Filter based on the number of hydrophobic residues on the target that have at least a certain hydrophobic ddG.

### Ligand docking and enzyme design

Filter Description
DSasa Filter on delta SASA for bound/unbound ligand.
DiffAtomBurial Compares the DSasa of two specified atoms and checks to see if one is greater or less than other.
LigInterfaceEnergy Filter based on binding energy of a ligand.
EnzScore Calculates scores of a pose taking into account (or not) enzdes style cst_energy.
RepackWithoutLigand Calculates delta_energy or RMSD of protein residues in a protein-ligand interface when the ligand is removed and the interface repacked.

### Ligand design

Filter Description
HeavyAtom Filter based on the number of heavy atoms in a residue.
CompleteConnections Filter based on unfulfilled connections.

### Hotspot Design

Filter Description
StubScore Filter based on if the scaffold is 'feeling' any of the hotspot stub constraints.

### Backbone Design

Filter Description
Foldability Rebuilds a given segment of an input pose a specified number of times using fragment-based assembly.
FragQual Compare an input pose to a set of fragments.

### Cyclic Peptide Design

Filter Description
CycpepSymmetryFilter Determines whether a cyclic peptide backbone has a desired cyclic symmetry, and passes if and only if it does. Works with c2, c3, c4, etc. symmetry, as well as with c2/m, c4/m, c6/m, etc. symmetry.