Skip to Content



The web server version can be found here.

(Multi)SETTER is a tool for superposition of multiple RNA structures. It is based on a pairwise RNA superposition algorithm called SETTER. The main idea of MultiSETTER is to build an average structure and to superpose all the input structure onto this average structure. For building the average structure we implemented a modified version of Clustal algorithm known from the sequence domain. The modification consists in replacing the sequence specific parts with their structure analogs. Thus, instead of adding sequences one by one into a resulting multiple sequence alignment as Clustal does, MultiSETTER iteratively merges RNA structures to form a resulting average structure.


MultiSETTER functionality is divided into four modules:

  • Multiple structural superposition module (MSSM). The input to the MSSM is a set of RNA structures in PDB format and their respective secondary structures in the form of 3DNA files. The module builds the average structure and outputs it in the form of a PDB file. Moreover it also creates a Jmol script containing superposition of the input structures and the built average structure. Moreover a serialized version of the average structure is created for later use in, e.g., the BMSSM module (see below)
  • Pairwise structure superposition module (PSSM). The PSSM is basically an implementation of the SETTER algorithm. The PSSM takes a pair of PDB files and their corresponding secondary structures as an input and outputs a Jmol script with the pairwise superposition of the two structures.
  • Batch multiple structural similarity module (BMSSM). The purpose of the BMSSM is to provide an easy way to allow a batch comparison of a set of arbitrary RNA structures with a previously built average structure. BMSSM outputs for each input RNA structure its distance to the average structure. The intended use of this feature is for classification purposes.
  • Batch pairwise structural similarity module (BPSSM). The BPSSM is a supporting module providing a simple way how to do an all to all pairwise structural distance computation. One can get the same functionality by a multiple use of the PSSM module.


  • You can download the binaries of MultiSETTER for both Windows and Linux platform here. The C++  source codes are available here and you can compile it under platform of your choice. The application was developed in Microsoft Visual Studio which explains the directory structure. The Makefile is available in the RNASimilarity\RNASimilarity directory. Platform specific parts are implemented using Boost libraries and parallelization is secured using Intel's Thread Building Blocks. The Makefile requires TBB installed on the computer where the source codes are being compiled, otherwise it won't BUILD.

To see the options MultiSETTER provides just run it without any arguments or with -h or --help option. The possible options are divided into four sections corresponding to the individual modules. The following lines show how to set the parameters. The examples presume that the files are located as in the archives.

The preferred way of parametrizing MultiSETTER is using a XML files where one specifes all the parameters together with the input. Have a look into the in.xml file in the test_data directory. The content is self-explaining (if not, let us know :) ). The type of job can be specified in the task type XML element and you can specify details of the tasks in the following sections.

To run a job specified in a XML file, run:

multisetter -x in.xml

However, if you prefer to set the parameters from the commandline, you can use the following commands.

Building average structure and multiple structure superposition:

multisetter -a -c config --a-input-file ../test_data/ --a-output-file-prefix 02 --a-output-path ../test_data/results

Please note that to successfully run the script you need to replace the path_to_RNA strings in the input file with the correct path. 

Comparing a set of RNA structures with a previously built average structure:

multisetter -l --l-input-file ../test_data/results/02.aver --l-dataset-file ../test_data/

All to all pairwise distance computation using SETTER:

multisetter -t --t-input-file ../test_data/

Pairwise structural superposition using SETTER:

multisetter -p -c config --p-input-pdb1 ../test_data/1ehz.pdb --p-input-3dna1 ../test_data/1ehz.out --p-input-chain1 A --p-input-pdb2 ../test_data/1evv.pdb --p-input-3dna2 ../test_data/1evv.out --p-input-chain2 A --p-output-path ../test_data/results --p-output-file-prefix pair

For correct display of the results in Jmol you might need to change the paths of the PDB files to absolute ones (or you can use absolute paths already when specifying the output-path parameters).

Config file:

The settings of MultiSETTER can be modified using the config file. The list of available parameters and their values follows: 

  • Threads Number of threads to be used (-1 stands for unlimited number of threads)
  • Algo Determines the neighbor joining algorithm. Currently, STANDARD is the only supported value.
  • Merge Determines the two possible ways merging - ALTERNATING, PATTERN (denoted as LEADING in the paper). The recommended value is ALTERNATING.
  • DiverMean Determines the allowed divergence of a GSSU to the mean of the GSSU being aligned to be considered for merging (see the paper for the details). The recommended value is 0.9. 
  • DiverParent Determines the allowed divergence of a merged GSSU to the lead GSSU (see the paper for the details). The recommended value is 2. 
  • Script Tells whether jmol scripts should (1) or should not (0) be part of the output