POSIT tutorial

Given receptors, using POSIT is very straightforward. There are two basic ways to input molecules to POSIT.

  • -in - converts input to 3D conformers ( if 3D structures are input, these initial structures are retained )
  • -dbase - takes the input conformations as is (these are normally generated with OMEGA.

For usage of -dbase see POSIT MPI Tutorial.

Given a set of input smiles strings:

> posit -receptor renin/receptors/*.oeb.gz -in renin/all.smi


On Microsoft Windows systems, you need to expand the wildcard:

> posit -receptor renin\receptors\2IL2_b.rec.oeb.gz renin\receptors\2IL2_a.rec.oeb.gz \
      renin\receptors\2IL2_c.rec.oeb.gz renin\receptors\2IKO.rec.oeb.gz \
      renin\receptors\2IKU_a.rec.oeb.gz renin\receptors\2IKU_b.rec.oeb.gz -in renin\all.smi

The following files are output:

  • posit_docked.oeb.gz - contains all successful poses
  • posit_score.txt - contains the scores of all successful poses
  • posit_report.txt - contains the report of the run
  • posit_status.txt - a periodic status file generated during a run
  • posit_settings.param - parameters used in the run

The following files are output only if non-empty:

  • posit_clashed.oeb.gz - contains all poses with good enough probability but clash
  • posit_undocked.oeb.gz - contains all unsuccessful poses

There is more than one reason a pose may be unsuccessful. The most common is that the probability of the predicted binding mode is too low.

To specify the -prefix option to add a prefix to all files output by POSIT or use the -docked_molecule_file option to output a pose file with particular name.

When POSIT is finished, it prints the final status and indicates what new data was added to the results that are output:

> posit -receptor renin/receptors/*.oeb.gz -in renin/all.smi \
   -prefix renin
Sorting by input order
--------Finished docking--------
Run time : 10m 40s (640.6seconds total)
Time per molecule 58.24sec

Molecules read : 11
Molecules processed : 11
Molecules successfully docked : 6
Unsuccessful dockings : 5

  Dock Statistics                                     Count
  ----------------------                              -----
  Successfully Docked                                 6
  Clashed with protein                                5

Docked molecules outputted to renin_docked.oeb.gz
Docked (but clashing) molecules outputted to renin_clashed.oeb.gz
Failed molecules written to: renin_undocked.oeb.gz
Failed molecules log written to: renin_rejected.txt

The following data is attached to SD data of each ligand
  "POSIT::Probability" : docked score (probability of correct pose)
  "POSIT receptor filename" : filename of the receptor the ligand was docked into
  "POSIT receptor title" : title of the receptor the ligand was docked into
  "POSIT::Method" : docking method selected by POSIT
  "Result" : description of the expected result quality (GREAT/GOOD/MEDIOCRE/POOR)

Scores were also outputted to text file : renin_score.txt
POSIT report was saved to file : renin_report.txt

The following files are output by the command above:

  • renin_docked.oeb.gz - the successfully docked structures
  • renin_clashed.oeb.gz - clashing poses with good probability
  • renin_undocked.oeb.gz - all non docked structures
  • renin_score.txt - scores of docked structures
  • renin_rejected.txt - list of rejected structures and status of rejection
  • renin_report.txt - report as seen above
  • renin_status.txt - current status of run, number of molecules processed and so on.
  • renin_settings.param - parameter file used for run

The score file contains the scores and ranking of docked structures (some columns have been removed for brevity):

Title POSIT::Probability POSIT receptor filename POSIT::Method Result
ren1 0.950000 2IKO.rec.oeb.gz SHAPEFIT GREAT
ren2 0.850000 2IKU_b.rec.oeb.gz SHAPEFIT GREAT
ren3 0.890000 2IKU_b.rec.oeb.gz SHAPEFIT GREAT
ren5 0.790000 2IKU_b.rec.oeb.gz SHAPEFIT GREAT
ren7a 0.790000 2IKU_b.rec.oeb.gz SHAPEFIT GREAT
ren10 0.850000 2IL2_c.rec.oeb.gz SHAPEFIT GREAT

The rejected file can be used to identify the status of rejected molecules, for instance “All conformers clashed with protein” indicates that while the probability was good, the protein could not accept the desired pose:

Ligand # Title Status
7 ren8b All conformers clashed with protein
3 ren4 All conformers clashed with protein
10 ren11 All conformers clashed with protein
5 ren6 All conformers clashed with protein
8 ren9 All conformers clashed with protein


While POSIT can take most molecule formats as input, with large datasets it is fastest to use a pre-generated database of OMEGA [Hawkins-2010] generated conformers. It is recommended, above two rotatable bonds, to generate 100 conformers per rotatable bond when running OMEGA:

> omega2 -in renin/all.smi -out all.oeb.gz -rangeIncrement 1 \
   -maxConfRange 200,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500,1600
> posit -receptor renin/receptors/*.oeb.gz -dbase all.oeb.gz \
   -prefix renin

See the posit usage section for more details.

POSIT MPI tutorial

Running POSIT on multiple cores is a simple matter of adding the -mpi_np argument and specifying the number of cores desired. When POSIT is run on a small job as shown above (with 11 molecules and 6) receptors, using a large number of cores is overkill.

> posit -mpi_np 3 -receptor renin/receptors/*.oeb.gz -dbase all.oeb.gz \
     -prefix renin
POSIT running under MPI for a small number of molecules.

POSIT performance varying the number of cores against a small lead-optimization example.

As seen in figure Posit Performance, running with 3 cores gives a large boost in the run-time and adding another is only marginally faster. Note that running under two cores is not recommended as one core is always the master so, in effect, this is the slowest way to run POSIT.

Also note that using OMEGA conformations as input is the fastest way to run POSIT.