RestraintLib 2022.6.1

Add file

Restraints Libraries

RestraintLib API

Programs can use RestraintLib's API to calculate restraints programmatically without interacting with this web page. To see the format of the requests, check the API documentation.


The server generates external scripts with bond length and angle restraints for DNA and RNA oligonucleotides, for the phosphodiester (C-O-PO2-O-C) and monoester (C-O-PO3) groups, nitrogenous bases: adenine, guanine, thymine, uracil, cytosine, isocytosine, isoguanine, and ribose or 2’-deoxyribose sugar rings submitted as PDB files. The output restraint file is compatible with Refmac5, SHELXL and phenix.refine.

Please, upload a PDB file.

You may also want to standardize the placement of your macromolecule in the unit cell using ACHESYM

How to use the restraints? (Refmac)

When using the CCP4i GUI, in the Run Refmac5 find the Use Prosmart option and select input existing restraints file from the dropdown menu. After that, a Prosmart restraints in should appear, where you should provide the path to the downloaded restraints file. To control the weights of the applied restraints, use the input fields in the External restraints section.

When supplying a Refmac parameter file through the command line, provide the following lines at the end of the script:

EXTERNAL WEIGHT SCALE distance {external_distance}
EXTERNAL WEIGHT GMWT {external_gmwt}
# External script file:

{external_distance} is the weight given to bond distance restraints [number],
{external_angle} is the wheight given to bond angle restraints [number],
{external_gmwt} is the Geman–McClure robust estimation function parameter [number],
{external_file} is the path to the downloaded restraints file [text]

How to use the restraints? (Phenix)

When using the GUI, in phenix.refine go to the Configure → Input data tab, click Add file and select the restraint file downloaded from this website. The file should appear as phil in the Format column and Parameter file in the Data type column.

When using phenix.refine from the command line, pass the downloaded file name to the phil_file parameter from the gui parameter list (Phenix documentation).

To control the weight of the applied restraints, use the wxc_scale or wxc parameters (Phenix documentation).

How to use the restraints? (Shelxl)

Copy the contents of the downloaded restraints and add it to your Shelx *.ins file. The text should be added after any restraints already present in the file (DFIX and DANG commands) and before atom definitions (most likely preceeded by a RESI command).


All submitted data will be deleted after 96 hours. Each submission gets a unique, random identification number. Accessing the results is only possible with the identification number.


To report errors, bugs, unusual behavior of the program, or to get help, please contact me at


To acknowledge the use of the server, please cite:

M.Kowiel, D.Brzezinski, M.Jaskolski (2016).
Conformation-dependent restraints for polynucleotides: I. clustering of the geometry of the phosphodiester group.
Nucleic Acids Res. 44, 8479–8489. OpenAccess

M.Gilski, J.Zhao, M.Kowiel, D.Brzezinski, D.H.Turner, M.Jaskolski (2019).
Accurate geometrical restraints for Watson–Crick base pairs.
Acta Cryst. B75, 235-245. OpenAccess

M.Kowiel, D.Brzezinski, M. Gilski, M.Jaskolski (2020).
Conformation-dependent restraints for polynucleotides: The sugar moiety.
Nucleic Acids Res. 48, 962–973. OpenAccess