PositionScan mutates one amino acid to the other 20, or to selected ones and repairs the neighbour residues. The minimal PDBFile configuration file is:


It can be run from the command line:

FoldX --command=PositionScan --pdb=PS.pdb

The way it operates is: first it mutates the selected position to Ala and annotates all neighbour residues; then it mutates the WT residue to itself, and then the neighbours to themselves followed each time by the WT residue to itself. In this way we ensure that when we mutate we will not move any residue that has not been moved in the WT reference. Once this is done, the new WT reference is mutated at the selected position to the target amino acids. To prevent problems, neighbour side chains are only optimized when creating the WT reference after self- mutation, but not when making the individual mutants unless we select a new rotamer for the neighbour.

The format for specifying mutants is LC43a (residue, chain, number, mutation), were at mutation you can have:

  • a 20 amino acids
  • d 24 amino acids (Includes phosphorylated Tyr, Ser and Thr and hydroxyl Proline)
  • h {"GLY", "ALA", "LEU", "VAL", "ILE","THR", "SER", "CYS", "MET", "LYS", "TRP", "TYR", "PHE", "HIS"}
  • c {"ARG", "LYS", "GLU", "ASP", "HIS"} p {"ARG", "LYS", "GLU", "ASP", "HIS", "TRP", "TYR","THR", "SER", "GLN", "ASN"}
  • n......4 bases, it mutates any base to the other three and itself.
  • or any amino acid in one letter-code, i.e. LC43G

You can put as many as you want as long as you put a comma as a spacer including positions parameter in the config file. Example:


In this case FoldX will independently mutate Leu43 of chain C to the 20 standard amino acids. Lys55 of chain C to the hydrophobic aminoacids. Glu 60 of chain C to the polar amino acids and Trp70 of chain C to Tyr.

FoldX uses output-file as a tag to label different outputs from different commands in batch runs. After running PositionScan you'll get one file to look at. Given output-file="TAG" the output files is:

  • PS_TAG_scanning_output -> PositionScan output file, if DDG of mutation is smaller than 0.05 Kcal/mol it wont be included on the output file

If you don't set output-file, TAG will be the pdbId of the first pdb on the batch.

Inside this file you will have first the DDG of the new WT reference upon mutation. You should not be surprised if you find that mutating a residue to itself result in better energy: this is because the neighbourhood of the position was not optimized.

Important. If you are working with a polyalanine ligand for example that you have created by deleting the sidechains found in a crystal structure you can activate the option read_dihedrals=true; Then the command will look for a file called Dihedrals. In this file you should have the rotamer angles of the original side chains. The code will read them and ensure that when an Ala residue is mutated to the original X-ray side chain the original rotamer is considered. Example:


Where this is a Pro in chain L at pdb number 1001 with Chi1 and Chi2 dihedral angles of 35.77 and -34.42, respectively.